jsp_mysql_HTTP状态500 - 内部服务器错误

时间:2015-04-19 22:29:29

标签: jsp

这是我从mysql数据库中删除数据的代码,我收到了这个错误。

<%@page import='java.sql.*'%>    
<% Class.forName("com.mysql.jdbc.Driver"); %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
         <%! 
        public class student{
        String URL="jdbc:mysql://localhost:3306/project";
       String USERNAME="root";
       String PASSWORD="xxxx";
       Connection con=null;
       PreparedStatement select,deleteA=null;
       ResultSet resultSet=null;

       public student(){               
           try{
           con=DriverManager.getConnection(URL,USERNAME,PASSWORD);           
           select=con.prepareStatement("select id,first_name,last_name from student");
            deleteA=con.prepareStatement("delete from student where id = ? ");             
           }
           catch(SQLException e)
           {
               e.printStackTrace();               
           }                         
       }
       public ResultSet getstudent(){
       try{           
       resultSet=select.executeQuery();           
       }catch(SQLException e)
       {
           e.printStackTrace();
       }
       return resultSet;
       }  

       public int deleteA(Integer id)
        {
        int result=0;
        try{
       deleteA.setInt(1, id);
        result=deleteA.executeUpdate();            
    }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
        return result;
        }
        }  
        %>
        <%
        int result=0;
        student std=new student();
        ResultSet stds=std.getstudent();
        Integer sid=new Integer(0);
        if(request.getParameter("submit")!=null){
        sid=Integer.parseInt(request.getParameter("std"));
        result=std.deleteA(sid);            
        }            
        %>
        <form name="myform" action="delete.jsp" method="POST">
            <table border="0">                    
               <tbody>
                    <tr>
                        <td>name:</td>
                        <td><select name="student">
                                <% while(stds.next()){%>
                                <option value="<%= stds.getInt("id")%>"> <%= stds.getString("first_name")%> <%= stds.getString("last_name")%></option>
                            <% } %>
                            </select></td>
                    </tr>
                </tbody>
            </table>

            <input type="submit" value="submit" name="submit" />                
        </form>
    </body>
</html>

在我选择名称后尝试提交..这给了我这个错误

  

HTTP状态500 - 内部服务器错误

     

输入例外报告

     

messageInternal Server Error

     

description服务器遇到阻止它的内部错误   完成此请求。

     

例外

     

org.apache.jasper.JasperException:java.lang.NumberFormatException:   null根本原因

     

java.lang.NumberFormatException:null note完整的堆栈跟踪   GlassFish中提供了异常及其根本原因   服务器开源版4.1日志。

1 个答案:

答案 0 :(得分:0)

您正在将std参数解析为整数,但可能是null。您应该在使用它之前检查此参数是否为null,而不仅仅是submit参数。