2014-09-24 68 views
0

我写过这段代码,但是当我在服务器上运行它时,onsubmit表单没有提供任何反应。 我在使用TOMCAT服务器的Eclipse IDE中进行编码。 我不知道是什么问题.....我的html没有提交到servlet

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

像我说的我是一个新手在这.....纠正我,如果我错了 – user3725251 2014-09-24 20:09:48

+0

明白了.....它说服务器类型:状态报告 message/reg description请求的资源不可用。 – user3725251 2014-09-24 20:17:31

+0

你可以帮忙,如果你可以解决它 – user3725251 2014-09-24 20:23:14

回答

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(Expression Language)action="${pageContext.request.contextPath}/reg"
+0

谢谢你的帮助 – user3725251 2014-09-24 20:20:57

+0

@ user3725251不客气:) – JEENoob 2014-09-24 20:23:37

+0

你有什么好的资源,你可以推荐我从@JEENoob学习 – user3725251 2014-09-24 20:30:32