如何从Vaadin 14应用程序中访问`ServletContext`?

问题描述 投票:0回答:1

我问的是与How to access ServletContext from within a Vaadin 7 app?相同的问题,但对于Vaadin 14。

在Vaadin 7中,Vaadin提供了简单方便的调用:

ServletContext

Vaadin 14中的ServletContext servletContext = VaadinServlet.getCurrent().getServletContext(); 上不再存在该特定调用。

➥Vaadin API中的其他地方是否有等效项?

我的最终目标是使用键值“属性”集合来保留对我的应用范围内对象的引用。

servlets vaadin vaadin-flow
1个回答
0
投票

这可能不是最好的方法,但似乎对我有用。

VaadinServlet类,扩展了VaadinServlet,提供了VaadinServletService。该方法返回一个VaadinServletService对象。为此,我们可以调用com.vaadin.flow.server.VaadinService返回所需的com.vaadin.flow.server.VaadinService

getCurrentServletRequest()

您可以从那里使用键值“属性”集合。使用getCurrentServletRequest()对象作为键,并以javax.servlet.http.HttpServletRequest作为值,查看javax.servlet.http.HttpServletRequestjavax.servlet.ServletRequest.getServletContextjavax.servlet.ServletRequest.getServletContext方法。

保存。

javax.servlet.ServletContext

正在检索。 [属性]的键值集合将值保留为javax.servlet.ServletContext,因此我们必须强制转换为预期的类/接口。

ServletContext servletContext = 
        VaadinServletService            // com.vaadin.flow.server.VaadinServletService
        .getCurrentServletRequest()     // Returns a javax.servlet.http.HttpServletRequest
        .getServletContext()            // Returns a `javax.servlet.ServletContext`. 
;
© www.soinside.com 2019 - 2024. All rights reserved.