如何从Servlet2.5中的ServletRequest获取Servlet上下文? [英] How to get the Servlet Context from ServletRequest in Servlet 2.5?

查看:23
本文介绍了如何从Servlet2.5中的ServletRequest获取Servlet上下文?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是Tomcat6,它使用Servlet2.5。Servlet3.0中的ServletRequestAPI中提供了一个方法,该方法给出了与ServletRequest相关联的ServletContext对象的句柄。是否有办法在使用Servlet 2.5 API时从ServletRequest获取ServletContext对象?

推荐答案

您可以通过HttpSession#getServletContext()获取。

ServletContext context = request.getSession().getServletContext();

但是,这可能会在不需要的时候创建不必要的会话。

但是,当您已经位于HttpServlet类的实例中时,只需使用继承的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();
    // ...
}

这篇关于如何从Servlet2.5中的ServletRequest获取Servlet上下文?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆