JavaServlet表单和数据库

JavaServlet表单和数据库,java,sql,database,servlets,Java,Sql,Database,Servlets,大家好,当我运行包含表单的servlet并单击submit时,我得到以下错误,我在代码中找不到错误,但显然存在错误,否则,当我单击submit时,以下错误不应出现 sql应该是当用户id存在时,您可以创建“实验室” The server encountered an internal error () that prevented it from fulfilling this request. exception java.lang.NumberFormatException: null

大家好,当我运行包含表单的servlet并单击submit时,我得到以下错误,我在代码中找不到错误,但显然存在错误,否则,当我单击submit时,以下错误不应出现

sql应该是当用户id存在时,您可以创建“实验室”

The server encountered an internal error () that prevented it from fulfilling this request.

exception 

java.lang.NumberFormatException: null
    java.lang.Integer.parseInt(Unknown Source)
    java.lang.Integer.parseInt(Unknown Source)
    CreateLab.doPost(CreateLab.java:72)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

import java.io.IOException;


import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class CreateLab
 */
@WebServlet("/CreateLab")
public class CreateLab extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public CreateLab() {
        super();
        // TODO Auto-generated constructor stub
    }
     int id;
     int capacity; 
     String day = ""; 
     String time = ""; 
     String room = ""; 
     int subject_id;
     int user_id;

    public void init() {
      try {
          Class.forName("com.mysql.jdbc.Driver");
          Connection con =
            DriverManager.getConnection("jdbc:mysql://localhost:3306/wae","root","");
        System.out.println("JDBC driver loaded"); 
      } 
      catch (ClassNotFoundException e) {
        System.out.println(e.toString()); 
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
    } 

    /**Process the HTTP Get request*/ 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws 
  ServletException,IOException {  
      sendPageHeader(response); 
      sendRegistrationForm(request, response, false); 
      sendPageFooter(response); 
    } 

    /**Process the HTTP Post request*/ 
    public void doPost(HttpServletRequest request, 
      HttpServletResponse response) 
      throws ServletException, IOException {
      sendPageHeader(response); 

      capacity = Integer.parseInt(request.getParameter("capacity"));
      id = Integer.parseInt(request.getParameter("id")); 
      day = request.getParameter("day"); 
      time = request.getParameter("time"); 
      room = request.getParameter("room"); 
      user_id = Integer.parseInt(request.getParameter("user_id")); 
      subject_id = Integer.parseInt(request.getParameter("subject_id")); 


      boolean error = false; 
      String message = null; 
      try {
          Class.forName("com.mysql.jdbc.Driver");
          Connection con = 
            DriverManager.getConnection("jdbc:mysql://localhost:3306/wae","root","");
        System.out.println("got connection"); 
        System.out.println(id);
        Statement s = con.createStatement(); 

        String sql = "SELECT id FROM user" + 
                " WHERE id='" + user_id + "'";  
        ResultSet rs = s.executeQuery(sql); 
        if (rs.next()) {
          rs.close(); 
           sql = "INSERT INTO lab" + 
                  " (capacity, day, time, room, subject_id, user_id)" + 
                  " VALUES" + 
                  " (" +  capacity + "','" + 
                     " '"  +  day + "'," + 
                     " '"  +  time + "'," + 
                     " '"  + room + "','" + subject_id + "','" + user_id + "')"; 

          System.out.println(sql);
          int i = s.executeUpdate(sql); 
          if (i==1) {
            message = "Successfully a new lab class."; 
          } 
        } 
          s.close(); 
          con.close(); 
        } 
        catch (SQLException e) {
          message = "Error." + e.toString(); 
          error = true; 
        } 
        catch (Exception e) {
          message = "Error." + e.toString(); 
          error = true; 
        } 
        if (message!=null) {
          PrintWriter out = response.getWriter(); 
          out.println("<B>" + message + "</B><BR>"); 
          out.println("<HR><BR>"); 
        } 
        if (error==true) 
          sendRegistrationForm(request, response, true); 
        else 
          sendRegistrationForm(request, response, false); 
        sendPageFooter(response); 
      } 

      /** 
       * Send the HTML page header, including the title 
       * and the <BODY> tag 
       */ 
      private void sendPageHeader(HttpServletResponse response) 
        throws ServletException, IOException {
        response.setContentType("text/html"); 
        PrintWriter out = response.getWriter(); 
        out.println("<HTML>"); 
        out.println("<HEAD>"); 
        out.println("<TITLE>Create Lab Page</TITLE>"); 
        out.println("</HEAD>"); 
        out.println("<BODY>"); 
        out.println("<CENTER>"); 
      } 

      /** 
       * Send the HTML page footer, i.e. the </BODY> 
       * and the </HTML> 
       */ 
      private void sendPageFooter(HttpServletResponse response) 
        throws ServletException, IOException {
        PrintWriter out = response.getWriter(); 
        out.println("</CENTER>"); 
        out.println("</BODY>"); 
        out.println("</HTML>"); 
      }   
      /**Send the form where the user can type in 
       * the details for a new user 
       */ 
      private void sendRegistrationForm(HttpServletRequest request, 
        HttpServletResponse response, boolean displayPreviousValues) 
        throws ServletException, IOException {

        PrintWriter out = response.getWriter(); 
        out.println("<BR><H2>Create A Lab</H2>"); 
        out.println("<BR>Please enter the lab details."); 
        out.println("<BR>"); 
        out.println("<BR><FORM METHOD=POST>"); 
        out.println("<TABLE>"); 
        out.println("<TR>"); 
        out.println("<TD>Class Capacity</TD>"); 
        out.print("<TD><INPUT TYPE=TEXT Name=capacity"); 

        if (displayPreviousValues) 
          out.print(" VALUE=\"" + capacity + "\""); 

        out.println("></TD>"); 
        out.println("</TR>"); 
        out.println("<TR>"); 
        out.println("<TD>Day</TD>"); 
        out.print("<TD><INPUT TYPE=TEXT Name=day"); 

        if (displayPreviousValues) 
          out.print(" VALUE=\"" + day + "\""); 

        out.println("></TD>"); 
        out.println("</TR>"); 
        out.println("<TR>"); 
        out.println("<TD>Time</TD>"); 
        out.print("<TD><INPUT TYPE=TEXT Name=time"); 

        if (displayPreviousValues) 
          out.print(" VALUE=\"" + time + "\""); 

        out.println("></TD>"); 
        out.println("</TR>"); 
        out.println("<TR>"); 
        out.println("<TD>Room</TD>"); 
        out.print("<TD><INPUT TYPE=TEXT Name=room");
        if (displayPreviousValues) 
            out.print(" VALUE=\"" + room + "\"");
        out.println("></TD>");
        out.println("</TR>");
        out.println("<TR>");
        out.println("<TD>subject_id</TD>");
        out.print("<TD><INPUT TYPE=TEXT Name=subject_id");
        if (displayPreviousValues) 
            out.print(" VALUE=\"" + subject_id + "\"");
        out.println("></TD>");
        out.println("</TR>");
        out.println("<TR>");
        out.println("<TD>user_id</TD>");
        out.print("<TD><INPUT TYPE=TEXT Name=user_id");
        out.println("></TD>");
        out.println("</TR>");

        if (displayPreviousValues) 
        out.print(" VALUE=\"" + user_id + "\""); 
        out.println("</TD>"); 
        out.println("</TR>");

        out.println("<TR>"); 
        out.println("<TD><INPUT TYPE=RESET></TD>"); 
        out.println("<TD><INPUT TYPE=SUBMIT></TD>"); 
        out.println("</TR>"); 
        out.println("</TABLE>"); 
        out.println("</FORM>"); 
        out.println("<BR>"); 
        out.println("<BR>"); 
      }
      }
服务器遇到一个内部错误(),使其无法完成此请求。
例外情况
java.lang.NumberFormatException:null
java.lang.Integer.parseInt(未知源)
java.lang.Integer.parseInt(未知源)
doPost(CreateLab.java:72)
javaservlet.http.HttpServlet.service(HttpServlet.java:641)
javaservlet.http.HttpServlet.service(HttpServlet.java:722)
导入java.io.IOException;
导入java.io.PrintWriter;
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.sql.Statement;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
/**
*Servlet实现类CreateLab
*/
@WebServlet(“/CreateLab”)
公共类CreateLab扩展了HttpServlet{
私有静态最终长serialVersionUID=1L;
/**
*@参见HttpServlet#HttpServlet()
*/
公共CreateLab(){
超级();
//TODO自动生成的构造函数存根
}
int-id;
国际能力;
字符串日期=”;
字符串时间=”;
弦室=”;
int subject_id;
int用户标识;
公共void init(){
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
连接con=
getConnection(“jdbc:mysql://localhost:3306/wae“,”根“,”);
System.out.println(“加载了JDBC驱动程序”);
} 
catch(classnotfounde异常){
System.out.println(例如toString());
}捕获(SQLE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
} 
} 
/**处理HTTP Get请求*/
公共void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出
ServletException,IOException{
sendPageHeader(响应);
sendRegistrationForm(请求、响应、错误);
sendPageFooter(响应);
} 
/**处理HTTP Post请求*/
public void doPost(HttpServletRequest请求,
HttpServletResponse(响应)
抛出ServletException、IOException{
sendPageHeader(响应);
capacity=Integer.parseInt(request.getParameter(“capacity”);
id=Integer.parseInt(request.getParameter(“id”);
day=request.getParameter(“day”);
时间=request.getParameter(“时间”);
房间=request.getParameter(“房间”);
user\u id=Integer.parseInt(request.getParameter(“user\u id”);
subject\u id=Integer.parseInt(request.getParameter(“subject\u id”);
布尔错误=假;
字符串消息=null;
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
连接con=
getConnection(“jdbc:mysql://localhost:3306/wae“,”根“,”);
System.out.println(“获得连接”);
系统输出打印项次(id);
语句s=con.createStatement();
String sql=“从用户选择id”+
“其中id=”+user_id+”;
结果集rs=s.executeQuery(sql);
如果(rs.next()){
rs.close();
sql=“插入实验室”+
“(容量、日期、时间、房间、受试者id、用户id)”+
“价值观”+
(“+容量+”,“+
“““+day+”,“+
“““+time+”,“+
“““+room+”、“+subject_id+”、“+user_id+”)”;
System.out.println(sql);
int i=s.executeUpdate(sql);
如果(i==1){
message=“已成功创建新的实验类。”;
} 
} 
s、 close();
con.close();
} 
捕获(SQLE异常){
message=“Error.”+e.toString();
错误=真;
} 
捕获(例外e){
message=“Error.”+e.toString();
错误=真;
} 
如果(消息!=null){
PrintWriter out=response.getWriter();
out.println(“+message+”
”); out.println(“

”); } 如果(错误==true) sendRegistrationForm(请求、响应、true); 其他的 sendRegistrationForm(请求、响应、错误); sendPageFooter(响应); } /** *发送HTML页面标题,包括标题 *标签呢 */ 私有void sendPageHeader(HttpServletResponse) 抛出ServletException、IOException{ response.setContentType(“text/html”); PrintWriter out=response.getWriter(); out.println(“”); out.println(“”); out.println(“创建实验室页面”); out.println(“”); out.println(“”); out.println(“”); } /** *发送HTML页面页脚,即 *和 */ 私有void sendPageFooter(HttpServletResponse) 抛出ServletException、IOException{ PrintWriter out=response.getWriter(); out.println(“”); out.println(“”); out.println(“”); } /**发送用户可以输入的表单 *新用户的详细信息 */ 私有void sendRegistrationForm(HttpServletRequest请求, HttpServletResponse,布尔值) 抛出ServletException、IOException{ PrintWriter out=response.getWriter(); out.println(“创建实验室”); out.println(“
请输入实验室详细信息。”);
capacity = Integer.parseInt(request.getParameter("capacity"));

id = Integer.parseInt(request.getParameter("id"));
String str = request.getParameter("capacity");
if(str!=null && str.length > 0){
   capacity = Integer.parseInt(str);
}
str = request.getParameter("id");
if(str!=null && str.length > 0){
   id = Integer.parseInt(str);
}
str = request.getParameter("user_id");
if(str!=null && str.length > 0){
   user_id = Integer.parseInt(str);
}
str = request.getParameter("subject_id");
if(str!=null && str.length > 0){
   subject_id = Integer.parseInt(str);
}
public int getIntParameter(String strParamval){
    int nRetVal=0;
    try{
            nRetVal=Integer.parseInt(strParamVal);
        }catch(NumberFormatException nfe){
            return 0;
        }
        return nRetVal;
}
     String id =request.getParameter("id");
       try {
    if(!id.isEmpty()) {
      Integer.parseInt(id);
     }
         }
       catch(NFE ex) {
         ex.printStrackTrace();
      } 
     String id= request.getParameter("id")
    try {
    if(!id.isEmpty() && id!=null) {
      Integer.parseInt();
     }
         }
       catch(NFE ex) {
         ex.printStrackTrace();
      } 
user_id = Integer.parseInt(request.getParameter("user_id"));
request.getParameter("user_id")
public int getIntParameter(String strParamval){

        int nRetVal=0;
        if((strParamval != null) && (!strParamval.matches("\\d*")))
            return nRetVal;
        try{
            nRetVal = Integer.parseInt(strParamval);
        }catch(NumberFormatException nfe){
        }
        return nRetVal;
    }
capacity = getIntParameter(request.getParameter("capacity"));
id = getIntParameter(request.getParameter("id")); 
user_id = getIntParameter(request.getParameter("user_id")); 
subject_id = getIntParameter(request.getParameter("subject_id")); 
capacity = Integer.parseInt(request.getParameter("capacity"));
id = Integer.parseInt(request.getParameter("id")); 
user_id = Integer.parseInt(request.getParameter("user_id")); 
subject_id = Integer.parseInt(request.getParameter("subject_id"));