标签:png 怎么 绑定 没有 而在 不用 pat cal 说明
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页面是不需要传入数据的。
如何处理这个问题:当然是传入相应的数据了,注意用request对象传数据时,requset对象 域空间中的数据只能存活于一个请求中,那么
就可能需要多次setAttribute()和多次getAttribute()
你也可以自己测试,如果你想跳到相应的页面,则直接在浏览器中访问看是否可以访问到,访问出错,那肯定就说明该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在我的数据库中是没有的,结果浏览器页面就这样一直空白
Servlet.service() for servlet [jsp] in context ....错误
标签:png 怎么 绑定 没有 而在 不用 pat cal 说明
原文地址:https://www.cnblogs.com/zhaolei1996/p/10700795.html