HI,全部
我在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 :(得分:0)
如果未选中复选框,则复选框的请求参数(在您的情况下)“同意”不存在,即 request.getParameter(“agree”)将返回null。
如果你将request.getParameter(“agree”)分配给某个String变量,然后在这个String上调用一个方法,你将得到一个NullPointerException。
解决方案是在分配参数值之前检查null。
简单地
if (request.getParameter("agree") != null ){
// do stuff
}
答案 1 :(得分: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()