如何在Servlet 2.5中从ServletRequest获取Servlet上下文?
我正在使用使用Servlet 2.5的Tomcat 6。 Servlet 3.0中提供了ServletRequest
API中的一个方法,该方法提供了与ServletRequest
相关的ServletContext
对象的句柄。 在使用Servlet 2.5 API时,有没有办法从ServletRequest
获取ServletContext
对象?
你可以通过HttpSession#getServletContext()
来获取它。
ServletContext context = request.getSession().getServletContext();
然而,这可能会在不需要时创build会话。
但是当您已经坐在HttpServlet
类的实例中时,只需使用inheritance的GenericServlet#getServletContext()
方法即可。
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext context = getServletContext(); // ... }
或者当您已经坐在Filter
接口的实例中时,只需使用FilterConfig#getServletContext()
。
private FilterConfig config; @Override public void init(FilterConfig config) { this.config = config; } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { ServletContext context = config.getServletContext(); // ... }