在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法

  今天遇到了一个在servlet的service方法中获取ServletContext对象出现java.lang.NullPointerException(空指针)异常,代码如下:

//获取ServletContext对象
 ServletContext servletContext = this.getServletContext();

  这个问题很奇怪,也是第一次遇到,因为以前在servlet的doGet/doPost方法中要获取ServletContext对象时都是这样写的,也没有出现过java.lang.NullPointerException(空指针)异常,上网查了一下出现这个异常的原因:原来是我重写了init(ServletConfig)方法,但重写的init方法内部没有调用super.init(config);就是这导致了错误!父类的 init(ServletConfig)有处理获取ServletContext对象的引用,在doGet/doPost/service方法方法中才能够通过 getServletContext()方法获取到SeverletContext对象!重写了Servlet的init方法后一定要记得调用父类的init方法,否则在service/doGet/doPost方法中使用getServletContext()方法获取ServletContext对象时就会出现java.lang.NullPointerException异常

public void init(ServletConfig config) throws ServletException{
    //重写了Servlet的init方法后一定要记得调用父类的init方法,否则在service/doGet/doPost方法中使用getServletContext()方法获取ServletContext对象时就会出现java.lang.NullPointerException异常
  super.init(config);
}

还有一篇介绍 getServletContext()空指针异常的原因 和 Servlet的init方法

防止序列化,可以实现防止转换为json数据,与excludProperties效果相同。把配置文件硬编码到j程序中,若更改它java文件需要重新编译成class,重新进入内存,创新进入虚拟机。用@Json注解方式不灵活。

@JSON(serialize=false)
    public String getPhone() {
        return phone;
    }

在struts.xml配置文件中返回json数据

<action name="jsonAction" class="com.gmx.action.JsonAction">
            <result name="hello" type="json">
                <param name="excludeProperties">
                    user\.age
                </param>
                <!--注意这里的param标签必须包含在result标签内部,否则无效。手残,研究了1小时结果是这个原因,诶。。。。-->
            </result>
            <!-- 这里的json是我们扩展的type -->
        </action>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值