为什么我需要一个HttpSession来获取ServletContext?

时间:2011-10-21 08:53:45

标签: java httpsession servlets

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

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

修改

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

3 个答案:

答案 0 :(得分:8)

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

修改

servlet 3.0 开始,

HttpServletRequestServletRequest继承getServletContext(),所以看起来你必须传递一个上下文以及请求和响应对象你必须使用3.0之前的版本。

答案 1 :(得分:3)

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

答案 2 :(得分:1)

您的servlet类有一个getServletContext()方法,您无需转到该请求。

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