`

getServletContext() NullPointerException分析

阅读更多

在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方法。

分享到:
评论
1 楼 lb0125 2011-12-07  
刚试,没用!

相关推荐

    getServletContext()空指针异常的原因

    getServletContext()空指针异常的原因getServletContext()空指针异常的原因getServletContext()空指针异常的原因getServletContext()空指针异常的原因getServletContext()空指针异常的原因

    Struts Updownload 源码

    String realPath=ServletActionContext.getServletContext().getRealPath("/"+this.getPath()+"/"+fileName); System.out.println(realPath); return ServletActionContext.getServletContext()....

    springboot 用监听器统计在线人数案例分析

    本文通过对Spring Boot用监听器统计在线人数案例的分析,详细介绍了实现该功能的步骤和注意事项。 首先,要实现该功能,我们需要创建一个实现了HttpSessionListener接口的监听器类。在Spring Boot中,可以通过在...

    ServletContext与ServletConfig的深度分析

    ### ServletContext与ServletConfig的深度分析 #### 一、概述 在Java Web开发中,`ServletContext`和`ServletConfig`是非常重要的两个接口,它们分别代表了应用级别的共享环境和单个Servlet的配置信息。理解这两个...

    Request中getContextPath、getServletPath、getRequestURI、request.getRealPath的区别.doc

    #### 二、具体分析 ##### 1. getContextPath() - **定义**:`getContextPath()`方法返回当前请求的上下文路径(Context Path),即Web应用程序的名称。 - **应用场景**:当需要在Web应用内部进行资源定位或者构建...

    学生信息管理系统

    Object oCount getServletContext getAttribute "count" ; if oCount null { getServletContext setAttribute "count" 1 ; }else{ getServletContext setAttribute &...

    javaWEB总结(4): ServletContext对象

    介绍 ServletContext对象的一些重要方法的示例代码

    JAVA监听器 绝对有用

    这里通过`event.getServletContext().getInitParameter()`获取配置参数,并创建一个`ServerSocketStart`实例,监听指定端口。 2. **销毁方法** (`contextDestroyed`): 该方法在Web应用卸载时被调用。在这个例子中,...

    ServletContext介绍及用法.docx

    - `getServletContext().getInitParameter(String name)`: 通过参数名获取初始化参数的值。 - `getServletContext().getInitParameterNames()`: 获取所有初始化参数的名称列表。 **2.2 实现步骤** 1. 在`web.xml`...

    基于springboot的便利店信息管理系统 源码+数据库(毕业设计)

    基于Vue.js和SpringBoot的便利店信息管理系统是一个高效、易用的解决方案,旨在为便利店的日常运营提供全面支持。该系统分为用户前台和管理后台两个部分,分别满足不同用户角色的需求。管理员和员工均可通过该系统...

    spring源代码解析

    而一般的启动过程,Spring会使用一个默认的实现,XmlWebApplicationContext – 这个上下文实现作为在web容器中的根上下文容器被建立起来,具体的建立过程在下面我们会详细分析。 Java代码 public class ...

    JSP监听器用法分析.docx

    this.application = arg0.getServletContext(); application.setAttribute("users", new ArrayList()); } public void sessionDestroyed(HttpSessionEvent arg0) { List<String> users = (List) application....

    javaweb 做图片水印,水印图片到目录图片上去

    String planeImage = request.getSession().getServletContext().getRealPath("/image").replace("\\", "/")+"/"+"symark.png"; //获取目标图片的路径String targetPic = request.getSession().getServletContext()....

    wex框架初始化完全解析.doc

    在本文中,我们将对 Webx 框架的初始化进行全面的分析,探索其内部的工作机制和结构。 首先,让我们来看一下 Webx 框架的入口点:WebxControllerServlet。这是一个继承自 HttpServlet 的 Servlet,它是整个系统的...

    SpringMVC中ervletContextListener的使用

    sce.getServletContext().setAttribute(ContextLoader.CONFIG_LOCATION_PARAM, context); ContextLoader.initWebApplicationContext(sce.getServletContext(), context); } @Override public void ...

    JAVA获取各种路径总结

    - 方法:`request.getSession().getServletContext().getRealPath(request.getRequestURI())` - 通过`getServletContext().getRealPath()` 可以获取指定路径的真实文件系统路径。 - **当前Web应用的绝对路径** -...

    关于java和web工程项目中各种路径的获取总结借鉴.pdf

    这段代码中的`getServletContext()`方法返回了当前Servlet上下文,即整个Web应用的上下文。接着调用`getRealPath("/")`方法来获取Web应用在服务器上的真实路径。 2. **通过`ServletContext`对象获取路径** 如果...

    ServLetContext基础

    ServLetContext 解决的问题:不同的用户使用相同的数据 就是不同的用户,访问...ServletContext sc1=this.getServletConfig().getServletContext(); ServletContext sc2=req.getSession().getServletContext(); 注意

    Java获取服务器IP及端口的方法实例分析

    - `ServletContext`是整个Web应用的共享上下文,可以通过`HttpSession.getServletContext()`, `PageContext.getServletContext()`, 或 `ServletConfig.getServletContext()`来获取。 5. **URL和端口的处理**: - ...

    java监听器学习 统计在线人数

    sce.getServletContext().setAttribute("onlineCount", 0); } @Override public void contextDestroyed(ServletContextEvent sce) { sce.getServletContext().removeAttribute("onlineCount"); } } ``` 接...

Global site tag (gtag.js) - Google Analytics