ServletContext 通过servlet filter listner struts2四种方式获取

来源:互联网 发布:从零开始学习编程 编辑:程序博客网 时间:2024/05/17 20:09
ServletContext 更倾向于一个Web应用的全局范围,而session则只是在于保存用户和服务器之间交互

的一个来回完整性。
一个Web服务只有一个ServletContext搜索,一般都是存放一些全局信息,或者获取一些全局信息,

比如getResourcePaths,而Session却有多个,因为毕竟Session只是当用户请求服务器的时候,服务

器为了保持与用户之间的联系而采用的,当一个用户请求来到后台服务器,服务器会看这个请求是否有

Session Id,如果没有则会生成一个ID,然后把ID返回给前台,接下来前台继续请求后台服务器的时候

,这个ID会继续回传给后台服务器,这样一来后台服务器就能认识这个请求了。

servlet 获取ServletContext
//编写的servlet类继承抽象类HttpServlet
public class LoginServlet extends HttpServlet{
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
ServletContext sc1 = req.getSession().getServletContext();
ServletContext sc2 =this.getServletContext();
                                System.out.println(sc1);  
                                System.out.println(sc2);  //sc1和sc2是同一对象
}
}
filter 获取ServletContext
//编写的filter类实现Filter接口
//看init方法和doFilter方法获取ServletContext
public class TestFilter implements Filter {
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain chain) throws IOException, ServletException {
System.out.println("doFilter invoked!");
                                HttpServletRequest req =(HttpServletRequest)arg0;
System.out.println(req.getServletContext());
chain.doFilter(arg0, arg1);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
                    System.out.println("filter, "+filterConfig.getServletContext());
}
}
//监听器获取ServletContext
//编写的监听器类必须实现接口ServletContextListener
//看方法contextInitialized中获取ServletContext
public class TestListener implements ServletContextListener{
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("listener, "+arg0.getServletContext());
}
}
//struts2获取ServletContext
//编写的Action类,需继承ActionSupport类
public class UploadAction extends ActionSupport {
public String execute() throws Exception {
                  ServletContext sc = ServletActionContext.getServletContext();
                  }
}

原创粉丝点击