zoukankan      html  css  js  c++  java
  • Servlet.service() for servlet [jsp] in context ....错误

    Servlet.service() for servlet [jsp] in context with path [/mvcTest] threw exception [java.lang.NullPointerException] with root cause
    java.lang.NullPointerException这是在用tomcat写一个小应用时遇到的错误,在网上看了很多没看明白,最终试错n次后发现了问题,

    其实这个问题(我遇到的那种情况,可能这个报错不止我遇到的这种情况导致)的根本原因是:.jsp页面代码导致的,因为为了实现

    前端和后台的交互,在有些jsp代码中需要后台传入相应的数据到该jsp中,所以jsp代码中就有了接收的代码段,而当我们想跳转到该

    jsp页面时却没有传入相应的数据就会报上面所示的错误:空指针(因为后端没有参数传入时那么jsp中的参数就是一个空值,而

    空值是不能进行很多操作的)。我们有时直接跳到jsp页面成功是因为该jsp页面是不需要传入数据的。

    如何处理这个问题:当然是传入相应的数据了,注意用request对象传数据时,requset对象  域空间中的数据只能存活于一个请求中,

    那么就可能需要多次setAttribute()和多次getAttribute()

    当然如果在jsp页面中对 用到传入参数的相关代码块做判断也是可以的,即满足相应的条件时再执行该代码块

    即在jsp页面端时判断时要加上判断接收到的数据是否为null,不为空的话再执行含有参数的代码块;

    你也可以自己测试,如果你想跳到相应的页面,则直接在浏览器中访问看是否可以访问到,访问出错,那肯定就说明该jsp页面是不能直接

    访问的,可能需要传入参数,当然前提是你的代码要是正确的;

    说到这里你明白的话就不必往下看了,下面是我遇到的场景

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    当然导致这个问题的原因可能不止我下面所说的这一种。下面我先说一下我出错时的应用场景:

    我用一个servlet来管理所有的操作(简单的增删改查),其中需要查询 和 注册(增)的内容是通过表单提交的,而删除和修改

    (应用中是通过id)是通过与记录绑定来实现是删除那条记录的,下面是具体的一个效果

    当然进行编辑操作时需要跳转到另外一个页面(modify.jsp)因为编辑是和对象绑定的在前端是这样来写的:

    这句话的作用是:点击编辑时跳到 servlet中去执行modify方法,在servlet配置时我将<url-pattern>这一项配置为 *udo,而在dopost方法中我做了一些出来,

    截取方法名,利用反射通过方法名来调用具体的方法(这个地方可以不用纠结,当然后面我会在其他文章中另外说这个问题),modify()方法中,我跳转到了modify.jsp页面,并且携带上了记录的id信息,所以在写modify.jsp代码的时候,肯定就会出现接收id的相关信息,直接看运行吧

    首先看我通过正确的方法访问到该页面:主要看浏览器的地址栏,传入了id,当然这里id是先传给servlet,servlet中的方法再转发到相应的modify.jsp页面去的,

    转发的话地址栏是不会改变的,所以地址栏没有变为localhost:8080/mvcTest/modify.jsp?id=5;对这个地方不理解得话可以看一下转发与重定向的区别。

    再看一下我直接访问modify.jsp页面,看到这里你可能会想我直接在url上传值过去可以访问吗?

    答案当然可以:例如可以这样:localhost:8080/mvcTest/modify.jsp?id=10;但是可能会造成其他的问题,我这里是修改,如果我传入

    的id数据库中没有怎么办,我还是去测试一下:

    直接传id的截图:id=100在我的数据库中是没有的,结果浏览器页面就这样一直空白

    心有多大,天有多高,一起奋斗!!
  • 相关阅读:
    学习记录
    cxf client端借口类型找不到问题
    zookeeper dubbo 问题解决录
    unkow jdbc driver : http://maven.apache.org
    推荐eclipse插件Properties Editor
    WPS for Linux,系统缺失字体
    Android 联系人字母排序(仿微信)
    Android之ORMLite实现数据持久化的简单使用
    设计模式之多例模式
    设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/zhaolei1996/p/10700795.html
Copyright © 2011-2022 走看看