我已经编写了这段代码,但是当我在服务器上运行时,表单onsubmit没有提供任何反应。 我使用TOMCAT服务器在Eclipse IDE中编码。 我不知道问题是什么.....
Servlet代码
package webpackage;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mypackage.Connecting;
//import com.sun.corba.se.pept.transport.Connection;
/**
* Servlet implementation class Registration
*/
@WebServlet(name = "reg", urlPatterns = { "/reg" })
public class Registration extends HttpServlet {
private static final long serialVersionUID = 1L;
public static Connection con=null;
/**
* @see HttpServlet#HttpServlet()
*/
public Registration() {
super();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
try{
String username = request.getParameter("user");
String email = request.getParameter("email");
String institute = request.getParameter("institute");
String pass1 = request.getParameter("pass1");
String pass2 = request.getParameter("pass2");
pw.println(username);
pw.println(email);
pw.println(institute);
pw.println(pass1);
pw.println(pass2);
con= Connecting.getConn();
pw.println(con);
PreparedStatement pst = con.prepareStatement("insert into Validate_login values(?,?)");
pst.setString(1,"112hhsh");
pst.setString(2,pass1);
int i = pst.executeUpdate();
PreparedStatement pst1=con.prepareStatement("insert into User_info values(?,?,?,?)");
pst1.setString(1,"112hhsh");
pst1.setString(2,username);
pst1.setString(3,institute);
pst1.setString(4,email);
i=pst1.executeUpdate();
System.out.println(i);
if(i!=0){
pw.println("<br>Record has been inserted");
}
else{
pw.println("failed to insert the data");
}
}
catch (Exception e){
pw.println(e);
}
}
}
Html代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Register</title>
</head>
<body>
<form action="/reg" method="post">
Username:<input type="text" name="user"><br>
Email:<input type="text" name="email"><br>
Institute:<input type="text" name="institute"><br>
Password:<input type="text" name="pass1"><br>
Confirm Password:<input type="text" name="pass2"><br>
<input type="button" name="btn1" value="OK"><br>
</form>
</body>
</html>
xml代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Sample</display-name>
<welcome-file-list>
<welcome-file>register.html</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>reg</servlet-name>
<servlet-class>webpackage.Registration</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>reg</servlet-name>
<url-pattern>/reg</url-pattern>
</servlet-mapping>
</web-app>
我是新手程序员
答案 0 :(得分:0)
正如BalusC已经指出的那样,你不应该使用
<input type="button" name="btn1" value="OK">
但
<input type="submit" name="btn1" value="OK">
同样在您的action="/reg"
/
中,不代表项目结构的根,但更像是服务器结构,因此action="/reg"
将代表
http://server.addres/reg
但你很可能希望它代表
http://server.addres/web-app-name/reg
所以也许把它改成
action="reg"
代表与您的表单位于同一位置的reg
action="/web-app-name/reg"
之前添加您的应用名称,action="${pageContext.request.contextPath}/reg"
)