6

在 Java Servlet API 中,获取 Servlet 的唯一方法ServletContext是通过HttpSession( Javadoc ) 的实例。

如果我不想创建会话而只需要 servlet 上下文怎么办?换句话说,为什么类中没有getServletContext()方法HttpServletRequest

编辑

我知道我可以ServletContext从 servlet 本身获取,因为它在初始化期间接收它。HttpServletRequest但是,即使它链接到一个 servlet ,我也无法从一个单独的地方得到它。那么如果我有一个请求,但没有引用任何 servlet 怎么办?

4

3 回答 3

8

getServletContext()是其中的一部分,GenericServlet它是父类,HttpServlet因此您应该能够在您的 servlet 实现中调用它。

编辑:

HttpServletRequest继承getServletContext()servlet 3.0ServletRequest ,因此如果您必须使用 3.0 之前的版本,您似乎必须将上下文与请求和响应对象一起传递。

于 2011-10-21T09:04:27.947 回答
3

只是每个处理请求的实体(服务器、过滤器、页面)都有自己的getServletContext(或init()

于 2011-10-21T09:01:22.247 回答
1

你的 servlet 类有一个 getServletContext() 方法,你不需要去请求。

这是有道理的,servlet 本身具有容器提供的上下文,这与任何特定请求无关。

于 2011-10-21T09:02:22.717 回答