2010-10-18 31 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 

}