<%
 Connection con;
 Statement stmt;
 ResultSet rest;
 
String driverName="com.mysql.jdbc.Driver";
String userName="root";
String userPasswd="123456";
String dbName="dbmessage";
String tableName="messagetable";
try{
   Class.forName("org.gjt.mm.mysql.Driver").newInstance();
   con=DriverManager.getConnection("jdbc:mysql://localhost/dbmessage","root","123456"); 
   stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
  
   String name=new String(request.getParameter("name"));
   String email=new String(request.getParameter("email"));
   String doc=new String(request.getParameter("doc"));
   String url=new String(request.getParameter("url")); 
   if(name.equals("") || email.equals("")|| doc.equals("")||url.equals(""))
{response.sendRedirect("mysqlinsert.jsp");}
else{
String sql="insert into messagetable (name,email,doc,url) values('"+name+"','"+email+"','"+doc+"','"+url+"')";
stmt.executeUpdate(sql);
out.print("successful");
}
stmt.close();
con.close();
}catch(java.sql.SQLException e)
   {
     out.println(e.toString());
   }
 %>
为什么总是提示HTTP Status 500 - 错误??
root cause java.lang.NullPointerException
java.lang.String.<init>(String.java:144)
org.apache.jsp.mysqlinsert_jsp._jspService(mysqlinsert_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)~~本人初学者,请求高人指点!!万分感激!

解决方案 »

  1.   

    java.lang.NullPointerException空指针了……检查赋值。
    还有以下的判断方式有待提高,最好"".equals(name)if(name.equals("") || email.equals("")|| doc.equals("")||url.equals(""))
      

  2.   

    String sql="insert into messagetable (name,email,doc,url) values('"+name+"','"+email+"','"+doc+"','"+url+"')";
    执行时可能出错了吧
      

  3.   

    String name=new String(request.getParameter("name"));
    把new String去掉,其它3个也一样。
      

  4.   

    如果new String(null), 你认为会不会出错呢,
    而且request.getParameter本来返回 的就是String对象,可以不用new的。
    如果不new而直接 去
    if(name.equals("") || email.equals("")|| doc.equals("")||url.equals(""))
    {response.sendRedirect("mysqlinsert.jsp");}
    也有可能出错,因为name如果 为空的话,执行equals时也会出错 建议以后可以这样写"".equals(name),这是个好习惯
    开发中推荐使用一些封装好的工具类,比如StringUtils.defaultIfEmpty(request.getParameter("name"),"defaultValue")
      

  5.   

    从上到下,一个一个地用print输出试试
      

  6.   

    String name=request.getParameter("name");
    String email=request.getParameter("email");
    String doc=request.getParameter("doc");
    String url=request.getParameter("url");
      

  7.   

    String name=new String(request.getParameter("name"));
    String email=new String(request.getParameter("email"));
    String doc=new String(request.getParameter("doc"));
    String url=new String(request.getParameter("url"));和楼上的一样  看看 这里 获取的值是否正确
      

  8.   

    首先,你这个是嵌套在jsp页面里面的,要查看到底是哪行出错很麻烦~建议用servlet。