2010-10-18 27 views
-1

嗨,全部我有空指针的问题在servlet中的异常

我有一个servlet中的空指针异常的问题。 如果我不选择这个复选框并提交表单,那么我有一个带复选框的表单a.jsp,然后在a.servlet中发生空指针异常。 我如何处理这个异常

代码 a.jsp

<table border='0' width='50%' cellspacing='0' cellpadding='0' ><form name=form1 method=post action=aservlet > 
<input type=hidden name=todo value=post> 

<tr bgcolor='#ffffff'><td align=center > 
<font face='verdana' size='2'><b>Sex</b><input type=radio name=sex value='male'>Male </font> 
<input type=radio name=sex value='female'><font face='verdana' size='2'>Female</font></td></tr> 

<tr><td align=center bgcolor='#f1f1f1'> 
<font face='verdana' size='2'><input type=checkbox name=agree >I agree to terms and conditions </font> 
</td></tr> 

<tr bgcolor='#ffffff'><td align=center > 
<input type=submit value=Submit> 
<input type=reset value=Reset> 
</td></tr> 
</form></table> 

aservlet.java

import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.SQLException; 
import java.sql.Statement; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 


public class Admin extends HttpServlet { 
     public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException 
      { 
      response.setContentType("text/html"); 
      PrintWriter out = response.getWriter(); 
request.getParameter ("agree"); 
}} 

例外:

例外

显示java.lang.NullPointerException com.centralvisa.servlets.Admin.doPost(Admin.java:26) javax.servlet.http.HttpServlet.service(HttpServlet.java:637) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

感谢

+0

请添加一些代码... – Tobias 2010-10-18 11:20:25

+0

这不是完整的代码。 – BalusC 2010-10-18 11:32:20

回答

0

的信息很少。可能你正在访问参数而不检查它是否被发送。

尝试用你的servlet是这样的:

boolean checked=false; 
if(request.getParameter("checkbox")!=null && 
    request.getParameter("checkbox").equals("checkbox_value_for_true")) { 
    //your code for the checkbox value 
    checked=true; 
} 
//the rest of your code use the var checked and not the request.getParameter() 
0

如果未选中复选框,对于复选框的请求参数,(在你的情况下),“同意”不存在即的request.getParameter(“同意”)将返回null。

如果您分配的request.getParameter(“同意”)一些字符串变量,然后叫上这个字符串的方法,你会得到一个NullPointerException。

解决方案是在分配参数值之前检查空值。

只需

if (request.getParameter("agree") != null){ 
    // do stuff 

}