我的html没有提交给servlet

时间:2014-09-24 19:56:35

标签: html servlets

我已经编写了这段代码,但是当我在服务器上运行时,表单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>

我是新手程序员

1 个答案:

答案 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"之前添加您的应用名称,
    (如果您使用JSP,您可以动态获取应用程序的名称,例如通过EL(表达式语言)action="${pageContext.request.contextPath}/reg"