【问题标题】:I have a problem of null pointer Exception in servlet [closed]我在servlet中遇到空指针异常的问题[关闭]
【发布时间】:2010-10-18 11:18:27
【问题描述】:

大家好

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

代码 一个.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)

谢谢

【问题讨论】:

  • 这不是完整的代码。

标签: jsp servlets


【解决方案1】:

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

在你的 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()

【讨论】:

    【解决方案2】:

    当未选中复选框时,复选框的请求参数(在您的情况下)“同意”不存在,即 request.getParameter("agree") 将返回 null。

    如果你将 request.getParameter("agree") 赋值给某个 String 变量,然后在这个 String 上调用一个方法,你会得到一个 NullPointerException。

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

    简单

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-19
      • 2020-12-09
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 2012-08-15
      • 1970-01-01
      相关资源
      最近更新 更多