JavaServlet表单和数据库
大家好,当我运行包含表单的servlet并单击submit时,我得到以下错误,我在代码中找不到错误,但显然存在错误,否则,当我单击submit时,以下错误不应出现 sql应该是当用户id存在时,您可以创建“实验室”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
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"));