2013-05-22 6 views
10

Dans mon jsp si je l'appelle <form action="/sampleServlet" method="get" name="form1">, je reçois l'exception suivante:<form action = "/ SampleServlet" me donner exception

http erreur 404 - SampleServlet n'est pas found.I mis SampleServlet dans web Le fichier .xml et le modèle d'URL sont également définis sur/sampleServlet. Pourquoi je reçois 404 (servlet non trouvé.)?

Pourquoi?

Répondre

32

Lorsque vous utilisez une URL en HTML, sans interlignage/ils sont relatifs à l'URL actuelle (c'est-à-dire la page affichée). Avec leader/ils sont liés à la racine du site:

<form action="/context-path/sampleServlet"> 

ou

<form action="sampleServlet"> 

fera ce que vous voulez.

Je vous suggère d'ajouter dynamiquement le contexte dans le chemin de l'action. Exemple (en JSP):

<form action="${pageContext.request.contextPath}/sampleServlet"> 

Avec cela, vous aurez jamais à changer le chemin, par exemple, si vous déplacez votre fichier ou copiez votre code, ou renommer votre contexte!

+0

merci you..it a travaillé .. – user2365917

+0

Vous êtes les bienvenus –

+0

Cela me donne une erreur 404 avec l'URL suivante: http://127.0.0.1:8888/${pageContext.request.contextPath}/fileUpload – anon58192932

4

peut vous aider à

configuration servlet

<servlet> 
    <servlet-name>sampleServlet</servlet-name> 
    <servlet-class>test.sampleServlet</servlet-class> 
    </servlet> 
<servlet-mapping> 
    <servlet-name>sampleServlet</servlet-name> 
    <url-pattern>/sampleServlet/</url-pattern> 
    </servlet-mapping> 

code Servlet:

package test; 

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 


public class sampleServlet extends HttpServlet{ 

    public void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws IOException{ 
     PrintWriter out = response.getWriter(); 
     out.println("<html>"); 
     out.println("<body>"); 
     out.println("<h1>Hello Servlet Get</h1>"); 
     out.println("</body>"); 
     out.println("</html>"); 
    } 
} 

code JSP:

<html> 
    <body> 
    <form action="/sampleServlet/" method="GET"> 
     <input type="submit" value="Submit form "/> 
    </form> 
    </body> 
</html> 

vous pouvez cliquer sur le bouton d'envoi et après vous pouvez voir servlet à mettre

1

Il suffit d'utiliser l'action = « SampleServlet »

Il travaillera pour vous.

Questions connexes