web工程login时提示空指针异常
在论坛中查找相关内容有一位和我的错误几乎相似http://bbs.csdn.net/topics/390028891
但是我的按照给出解决步骤进行修改之后还是有问题
console上错误信息:
2013-1-28 11:21:14 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.check_jsp._jspService(check_jsp.java:72)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
check.jsp源代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>验证页面</title>
</head>
<body>
<%
String name=(String)request.getParameter("username");
String password=(String)request.getParameter("password");
String repassword=(String)request.getParameter("repassword");
String sex=(String)request.getParameter("sex");
String work=(String)request.getParameter("work");
String[] love=(String[])request.getParameterValues("love");
String show=(String)request.getParameter("show");
String strLove="";
for(int i=0;i<love.length;i++)
{
if(strLove.trim().equals(""))
{
strLove=strLove+"'"+love[i].toString()+"'";
}
else{
strLove=strLove+","+love[i].toString()+"'";
}
}
%>
<font size="4" color="blue">您的信息是 </font><br>
用户名:<%=name %><br>
密码:<%=password %><br>
确认密码:<%=repassword %><br>
性别:<%=sex %><br>
职业:<%=work %><br>
爱好:<%=strLove %><br>
个人说明:<%=show %><br>
</body>
</html>
sign.html源代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title>sign.html</title>
</head>
<body>
<center>
<form action="check.jsp" method="post">
<table>
<tr>
<td align="right">
用户名:
</td>
<td align="left">
<input type="text" name="username"/>
</td>
</tr>
<tr>
<td align="right">
密码:
</td>
<td align="left">
<input type="password" name="password"/>
</td>
</tr>
<tr>
<td align="right">
确认密码:
</td>
<td align="left">
<input type="password" name="password"/>
</td>
</tr>
<tr>
<td align="right">
性别:
</td>
<td align="left">
<input type="radio" name="sex" value="male" checked/>男
<input type="radio" name="sex" value="famale" />女
</td>
</tr>
<tr>
<td align="right">
职业:
</td>
<td align="left">
<select size="1" name="work">
<option selected="selected">学生</option>
<option>职员</option>
<option>军人</option>
<option>经理</option>
<option>自由人</option>
</select>
</td>
</tr>
<tr>
<td align="right">
个人爱好
</td>
<td align="left">
<input type="checkbox" love="love1" value=""/>电脑网络
<input type="checkbox" love="love2" value=""/>影视娱乐
<input type="checkbox" love="love3" value=""/>棋牌娱乐
<input type="checkbox" love="love4" value=""/>读书读报
<input type="checkbox" love="love5" value=""/>美酒佳肴
<input type="checkbox" love="love6" value=""/>绘画书法
</td>
</tr>
<tr>
<td align="right">
个人说明:
</td>
<td align="left">
<textarea rows="show" rows="15" cols="40"></textarea>
</td>
</tr>
<tr>
<td align="right">
<input type="submit" value="提交"/>
</td>
<td align="right">
<input type="reset" value="重置" />
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
在sign.html中已经将checkbox中的name属性进行了修改,但是在跳转的时候还是提示500
希望各位前辈能给我解答,谢谢
java login html
[解决办法]
check_jsp.java:72
你具体看看tomcat目录下的work文件夹下的check_jsp.java的72行是什么,
然后再自己分析下空指针异常,应该不难。。。
[解决办法]
<%
String name=(String)request.getParameter("username");
String password=(String)request.getParameter("password");
String repassword=(String)request.getParameter("repassword");
String sex=(String)request.getParameter("sex");
String work=(String)request.getParameter("work");
String[] love=(String[])request.getParameterValues("love");
String show=(String)request.getParameter("show");
String strLove="";
for(int i=0;i<love.length;i++)
{
if(strLove.trim().equals(""))
{
strLove=strLove+"'"+love[i].toString()+"'";
}
else{
strLove=strLove+","+love[i].toString()+"'";
}
}
%>
设置断点、调试一下这一段代码、看看具体是哪一行出的问题!!!
严重怀疑for(int i=0;i<love.length;i++)这个循环有问题
应该先判断love是否为null在行循环!
还有就是无论是getParameterValues还是getParameter都没有必要在前面(String[])或者(String)这样强制转换、因为getParameter返回的就是String类型!getParameterValues返回的就是String[]!
