2017-08-25 1 views
0

Erreur 404 en cliquant sur le bouton Soumettre sur le formulaire. Erreur d'obtention (La ressource demandée n'est pas disponible.) Pour le mappage d'URL http://localhost:8080/HelloWorld/HelloServlet. J'ai essayé la référence aussi, Servlet returns "HTTP Status 404 The requested resource (/servlet) is not available" mais cela ne semble pas fonctionner.Erreur de servlet 404 lors de l'obtention de la requête lors de la soumission du formulaire

1, index, html

<!DOCTYPE html> 
    <html> 
    <head> 
    <meta charset="ISO-8859-1"> 
    <title>Insert title here</title> 
    </head> 
    <body> 
     <form action="HelloServlet"> 
     <input type="submit" value="HIT"> 
     </form> 
    </body> 
    </html> 

2. HelloServlet

 package com.example.aman; 

     import java.io.IOException; 
     import javax.servlet.ServletConfig; 
     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 HelloServlet 
     */ 
     @WebServlet("/HelloServlet") 
     public class HelloServlet extends HttpServlet { 
     private static final long serialVersionUID = 1L; 

     /** 
     * Default constructor. 
     */ 
     public HelloServlet() { 
     // TODO Auto-generated constructor stub 
     } 

     /** 
     * @see Servlet#init(ServletConfig) 
     */ 
     public void init(ServletConfig config) throws ServletException { 
     // TODO Auto-generated method stub 
     System.out.println("DIVESH"); 
     } 

     /** 
     * @see HttpServlet#doGet(HttpServletRequest request, 
     HttpServletResponse response) 
     */ 
     protected void doGet(HttpServletRequest request, HttpServletResponse 
     response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
     response.getWriter().append("Served at: 
     ").append(request.getContextPath()); 
     response.getWriter().println("DIVESH"); 
     } 

     /** 
     * @see HttpServlet#doPost(HttpServletRequest request, 
     HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
     doGet(request, response); 
    } 

} 

3. web.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" 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>HelloWorld</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

Répondre

0

http://localhost:8080/HelloWorld/HelloServlet.

Tout de suite cela me dit quel est le problème. Vous essayez d'accéder à une servlet depuis le même répertoire de dossiers. C'est ce qui se passe si vous n'êtes pas prudent avec votre relative URLS

Dans votre formulaire, modifiez le mappage d'URL à ceci:

<form action="/HelloServlet"> 
     <input type="submit" value="HIT"> 
     </form> 

Ou si cela ne fonctionne pas, faites ceci:

<form action="../HelloServlet"> 
     <input type="submit" value="HIT"> 
     </form> 

Ajout d'un / au chemin le rend absolute.

L'ajout de ../ le fait passer au parent du répertoire en cours.

Espérons que cela aide.