Struts2和Servlet共用时获取ServletContext对象的问题
2014-02-07 11:28
288 查看
在开发项目时经常需要获取ServletContext对象。每个应用都会有一个ServletContext对象,当容器分布在多个虚拟机上时,web应用在每个虚拟机上都拥有一个ServletContext实例,详细请问度娘。使用ServletContext对象时可将所需要的全局参数放入其中setAttribute(String name,Object obj),并在需要时取出getAttribute(String name)。同时它还可以获取很多系统参数,是经常用到的对象。
最近的一个项目中既用到了serlvet,又用到了struts2,结果在部署时获取ServletContext提示空指针异常(NullPointerException),解决后总结了一下。
如果是项目已部署并且正常运行之后在处理请求的过程中需要,通过以下方法获取:
[align=left]ServletContext application = ServletActionContext.getServletContext();
[/align]
如果是在项目部署时HttpServlet子类中要service中的方法(该方法需要获取ServletContext对象中参数),再使用该方法时就会提示空指针异常(NullPointerException),是因为struts2还未启动导致无法获取。最后解决方法是在需要ServletContext对象的service中添加静态变量:
[align=left] private ServletContext application = null;
[/align]
并且创建构造方法:
public ServiceTest(ServletContext application){
[align=left] super();
[/align]
[align=left] this.application = application;
[/align]
[align=left] }
[/align]
同时在HttpServlet子类中使用新创建的构造方法,因为HttpServlet中有getServletContext()方法,可以获取到ServletContext对象。
最近的一个项目中既用到了serlvet,又用到了struts2,结果在部署时获取ServletContext提示空指针异常(NullPointerException),解决后总结了一下。
如果是项目已部署并且正常运行之后在处理请求的过程中需要,通过以下方法获取:
[align=left]ServletContext application = ServletActionContext.getServletContext();
[/align]
如果是在项目部署时HttpServlet子类中要service中的方法(该方法需要获取ServletContext对象中参数),再使用该方法时就会提示空指针异常(NullPointerException),是因为struts2还未启动导致无法获取。最后解决方法是在需要ServletContext对象的service中添加静态变量:
[align=left] private ServletContext application = null;
[/align]
并且创建构造方法:
public ServiceTest(ServletContext application){
[align=left] super();
[/align]
[align=left] this.application = application;
[/align]
[align=left] }
[/align]
同时在HttpServlet子类中使用新创建的构造方法,因为HttpServlet中有getServletContext()方法,可以获取到ServletContext对象。
相关文章推荐
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
- (18)servletContext应用:获取web应用的初始化参数、实现servlet转发、利用servletContext对象读取资源文件
- Struts2的Action中获取HttpServletRequest对象
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)
- Struts2对常用Servlet对象的获取
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
- 日常问题记录--jsp页面获取struts2对象时为空的原因
- struts2 如何获取servlet对象
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
- 在Struts2访问 HttpServletRequest、HttpSession、ServletContext三个域对象
- Struts2初学 Struts2在Action获取内置对象request,session,application(即ServletContext)
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
- servlet初始化时无法获取ServletContext对象
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
- struts2如何访问HttpServletRequest、HttpSession、ServletContext三个域对象?
- ServletContext对象(1)、Servlet重命名问题
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
- Struts2获取servlet的内置对象和struts2的通配符