在Servlet里调用getServletContext() 方法的时候,出现空指针异常。
分析了一下问题原因,因为每个web应用的Servlet都继承自HttpServlet类,HttpServlet又继承自GenericServlet,看了一下getServletContext()源码
public ServletContext getServletContext() {
return getServletConfig().getServletContext();
}
public ServletConfig getServletConfig() {
return config;
}
可以看到getServletConfig方法返回config
public void init(ServletConfig config) throws ServletException {
this.config = config;
this.init();
}
这个config是在Servlet装载之后第一次请求调用init方法传过来的,里面封装了一些servlet的配置信息。现在就看这个全局的config为什么是null。
原来是因为我在自己的Servlet立面重写了init方法,而又没有调用父类的init方法
解决方法:1,在子类里面调用父类的init方法,把config传过去。
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
2.就是不要自己重写init方法。
分享到:
相关推荐
getServletContext()空指针异常的原因getServletContext()空指针异常的原因getServletContext()空指针异常的原因getServletContext()空指针异常的原因getServletContext()空指针异常的原因
String realPath=ServletActionContext.getServletContext().getRealPath("/"+this.getPath()+"/"+fileName); System.out.println(realPath); return ServletActionContext.getServletContext()....
本文通过对Spring Boot用监听器统计在线人数案例的分析,详细介绍了实现该功能的步骤和注意事项。 首先,要实现该功能,我们需要创建一个实现了HttpSessionListener接口的监听器类。在Spring Boot中,可以通过在...
### ServletContext与ServletConfig的深度分析 #### 一、概述 在Java Web开发中,`ServletContext`和`ServletConfig`是非常重要的两个接口,它们分别代表了应用级别的共享环境和单个Servlet的配置信息。理解这两个...
#### 二、具体分析 ##### 1. getContextPath() - **定义**:`getContextPath()`方法返回当前请求的上下文路径(Context Path),即Web应用程序的名称。 - **应用场景**:当需要在Web应用内部进行资源定位或者构建...
Object oCount getServletContext getAttribute "count" ; if oCount null { getServletContext setAttribute "count" 1 ; }else{ getServletContext setAttribute &...
介绍 ServletContext对象的一些重要方法的示例代码
这里通过`event.getServletContext().getInitParameter()`获取配置参数,并创建一个`ServerSocketStart`实例,监听指定端口。 2. **销毁方法** (`contextDestroyed`): 该方法在Web应用卸载时被调用。在这个例子中,...
- `getServletContext().getInitParameter(String name)`: 通过参数名获取初始化参数的值。 - `getServletContext().getInitParameterNames()`: 获取所有初始化参数的名称列表。 **2.2 实现步骤** 1. 在`web.xml`...
基于Vue.js和SpringBoot的便利店信息管理系统是一个高效、易用的解决方案,旨在为便利店的日常运营提供全面支持。该系统分为用户前台和管理后台两个部分,分别满足不同用户角色的需求。管理员和员工均可通过该系统...
而一般的启动过程,Spring会使用一个默认的实现,XmlWebApplicationContext – 这个上下文实现作为在web容器中的根上下文容器被建立起来,具体的建立过程在下面我们会详细分析。 Java代码 public class ...
this.application = arg0.getServletContext(); application.setAttribute("users", new ArrayList()); } public void sessionDestroyed(HttpSessionEvent arg0) { List<String> users = (List) application....
String planeImage = request.getSession().getServletContext().getRealPath("/image").replace("\\", "/")+"/"+"symark.png"; //获取目标图片的路径String targetPic = request.getSession().getServletContext()....
在本文中,我们将对 Webx 框架的初始化进行全面的分析,探索其内部的工作机制和结构。 首先,让我们来看一下 Webx 框架的入口点:WebxControllerServlet。这是一个继承自 HttpServlet 的 Servlet,它是整个系统的...
sce.getServletContext().setAttribute(ContextLoader.CONFIG_LOCATION_PARAM, context); ContextLoader.initWebApplicationContext(sce.getServletContext(), context); } @Override public void ...
- 方法:`request.getSession().getServletContext().getRealPath(request.getRequestURI())` - 通过`getServletContext().getRealPath()` 可以获取指定路径的真实文件系统路径。 - **当前Web应用的绝对路径** -...
这段代码中的`getServletContext()`方法返回了当前Servlet上下文,即整个Web应用的上下文。接着调用`getRealPath("/")`方法来获取Web应用在服务器上的真实路径。 2. **通过`ServletContext`对象获取路径** 如果...
ServLetContext 解决的问题:不同的用户使用相同的数据 就是不同的用户,访问...ServletContext sc1=this.getServletConfig().getServletContext(); ServletContext sc2=req.getSession().getServletContext(); 注意
- `ServletContext`是整个Web应用的共享上下文,可以通过`HttpSession.getServletContext()`, `PageContext.getServletContext()`, 或 `ServletConfig.getServletContext()`来获取。 5. **URL和端口的处理**: - ...
sce.getServletContext().setAttribute("onlineCount", 0); } @Override public void contextDestroyed(ServletContextEvent sce) { sce.getServletContext().removeAttribute("onlineCount"); } } ``` 接...