2017-07-16 73 views
0

我是servlet編程的新手。我檢查了有關Http 404錯誤的其他各種鏈接,但沒有任何幫助。所以我在這裏發佈我的代碼。「HTTP狀態404請求的資源不可用」

我在WebContent/文件夾form1.htmlform2.htmlform3.html了3種HTML形式,所有這些形式都相同的URL模式,因爲在相同的HTTP會話中訪問三種不同的形式。

form1.html

<html> 
 
<head> 
 
<title>Adhar Registration Form</title> 
 
</head> 
 
<body style="background-color:orange"> 
 
<h1>FORM 1</h1> 
 
<form action="./reg" method="get"> 
 

 
<table> 
 
<tr><td>NAME:</td><td><input type="text" name="id"/></td></tr> 
 
<tr><td>F_NAME:</td><td><input type="text" name="name"/></td></tr> 
 
<tr><td>M_NAME:</td><td><input type="text" name="email"/></td></tr> 
 

 
<tr><td><input type="submit" name= "NEXT"> </td></tr> 
 
</table> 
 
<input type="hidden" name="fno" value="1"> 
 

 
</form> 
 

 
</body> 
 
</html>

form2.html

<html> 
 
<head> 
 
<title>Adhar Registration Form</title> 
 
</head> 
 
<body style="background-color:orange"> 
 
<h1>FORM 2</h1> 
 

 
<form action="./reg" method="get"> 
 

 
<table> 
 
<tr><td>CONTACT:</td><td><input type="text" name="id"/></td></tr> 
 
<tr><td>EMAIL:</td><td><input type="text" name="name"/></td></tr> 
 
<tr><td>ADDRESS:</td><td><textarea rows ="10" cols="5" name="address"></textarea></td></tr> 
 

 
<tr><td><input type="submit" name= "NEXT"> </td></tr> 
 
</table> 
 
<input type="hidden" name="fno" value="2"> 
 

 
</form> 
 

 
</body> 
 
</html>

<html> 
 
<head> 
 

 
<title>Adhar Registration Form</title> 
 
</head> 
 
<body style="background-color:orange"> 
 
<h1>FORM 3</h1> 
 
<form action="./reg" method="get"> 
 

 
<table> 
 
<tr><td>QUALIFICATION:</td><td><input type="text" name="id"/></td></tr> 
 
<tr><td>PAN NO:</td><td><input type="text" name="name"/></td></tr> 
 

 
<tr><td><input type="submit" name= "Register"> </td></tr> 
 
</table> 
 
<input type="hidden" name="fno" value="3"> 
 

 
</form> 
 
</body> 
 
</html>

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 
 
    <display-name>Adhar</display-name> 
 
    <welcome-file-list> 
 
    <welcome-file>form1.html</welcome-file> 
 
    </welcome-file-list> 
 
    
 
    <servlet> 
 
    <servlet-name>login</servlet-name> 
 
    <servlet-class>container.RegistrationServlet</servlet-class> 
 
</servlet> 
 
<servlet-mapping> 
 
    <servlet-name>login</servlet-name> 
 
    <url-pattern>/reg</url-pattern> 
 
</servlet-mapping> 
 
</web-app>

RegistrationServlet.java

package container; 

import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
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 javax.servlet.http.HttpSession; 

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

    public static final String URL = "jdbc:mysql://localhost/db"; 
    public static final String USER = "root"; 
    public static final String PASSWORD = "12345"; 
    public static final String DRIVER_CLASS = "com.mysql.jdbc.Driver"; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public RegistrationServlet() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
     PrintWriter out = response.getWriter(); 

     HttpSession hs = request.getSession(); 
     String fno = request.getParameter("fno"); 

     if(fno.equals("1")){ 
      String name = request.getParameter("name"); 
      String f_name = request.getParameter("f_name"); 
      String m_name = request.getParameter("m_name"); 

      hs.setAttribute("name", name); 
      hs.setAttribute("f_name", f_name); 
      hs.setAttribute("m_name", m_name); 

      response.sendRedirect("./Form2.html"); 
     } 
     if(fno.equals("2")){ 

      String contact = request.getParameter("contact"); 
      String email = request.getParameter("email"); 
      String address = request.getParameter("address"); 

      hs.setAttribute("contact", contact); 
      hs.setAttribute("email", email); 
      hs.setAttribute("address", address); 

      response.sendRedirect("./Form3.html"); 
     } 
     if(fno.equals("3")){ 

      String qual = request.getParameter("qual"); 
      String pan = request.getParameter("pan"); 

      String name = (String)hs.getAttribute("name"); 
      String f_name = (String)hs.getAttribute("f_name"); 
      String m_name = (String)hs.getAttribute("m_name"); 

      String contact = (String)hs.getAttribute("contact"); 
      String email = (String)hs.getAttribute("email"); 
      String address = (String)hs.getAttribute("address"); 

      try { 
       Class.forName(DRIVER_CLASS); 
       System.out.println("Loaded the driver"); 

       Connection con = DriverManager.getConnection(URL,USER,PASSWORD); 
       PreparedStatement ps = con.prepareStatement("INSERT into adharReg values(?,?,?,?,?,?,?,?)"); 

       ps.setString(1, name); 
       ps.setString(2, f_name); 
       ps.setString(3, m_name); 
       ps.setString(4, contact); 
       ps.setString(5, email); 
       ps.setString(6, address); 
       ps.setString(7, qual); 
       ps.setString(8, pan); 

       int i = ps.executeUpdate(); 

       if(i!=0){ 
        out.println("<h1>REGISTRATION SUCCESS</h1>"); 
       } 
       else{ 
        out.println("<h1>REGISTRATION FAILED</h1>"); 
       } 

      } catch (Exception e) { 
       // TODO: handle exception 
       out.println("<h1>REGISTRATION FAILED" + e.getMessage() + " </h1>"); 
      } 

     } 
    } 

} 

我使用Tomcat服務器8.0。我檢查了這個Link和我的tomcat服務器具有完全相同的設置。對於任何可能出現的錯誤,都遵循this link,但是,我不知道爲什麼我收到Http 404錯誤的確切原因。幫我解釋爲什麼我得到這個錯誤。

謝謝。

回答

0

此問題是由web.xml配置和WebServlet註釋之間的衝突引起的。 web.xml是一個名爲login的servlet,它的目標是/ reg url,但在RegistrationServlet中也有一個聲明,通過@WebServlet註釋引用同一個url/reg。

一個可能的解決方案是從web.xml中刪除servlet聲明,這意味着web.xml內容應該是這樣的。

web。xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 
    <display-name>Adhar</display-name> 
    <welcome-file-list> 
    <welcome-file>form1.html</welcome-file> 
    </welcome-file-list> 

</web-app> 

只讓Servlet通過註釋聲明。希望這可以幫助。

0

檢查web.xml存在於WEB-INF文件夾中。

,並使用servlet映射到web.xml中

並註冊該servlet在web.xml中,而不是像這樣:

<servlet> 
<servlet-name>yourServlet</servlet-name> 
<servlet-class>com.example.YourServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
<servlet-name>yourServlet</servlet-name> 
<url-pattern>/servlet</url-pattern> 
</servlet-mapping> 

更多的是指波紋管鏈接: -

http://www.beingjavaguys.com/2013/08/jsp-servlet-hello-world-example.html

https://www.javatpoint.com/servlet-with-annotation

+0

嗨'web.xml'僅在WEB-INF文件夾內創建。你也可以看到上面的web.xml文件具有相同的servlet註冊格式。 – karthi13

+0

在'reg'之前刪除'。/'。試試這個:' – Sharma

+0

<?xml version =「1.0」encoding =「UTF-8」?> 在web.xml中使用這個: Sharma

相關問題