2013-05-22 3 views
10

В моем JSP, если я позвоню <form action="/sampleServlet" method="get" name="form1">, я получаю следующее исключение:<форма действия = "/ sampleServlet" дает мне исключение

HTTP 404 ошибка - sampleServlet не found.I установить sampleServlet в сети .xml и url-pattern также установлены в/sampleServlet.

Почему я получаю 404 (не найден сервлет.)?

ответ

32

Когда вы используете URL-адрес в HTML, без указания/они относятся к текущему URL-адресу (т.е. отображаемая текущая страница). С ведущими/они относительно корня сайта:

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

или

<form action="sampleServlet"> 

будет делать то, что вы хотите.

Я предлагаю вам динамически добавлять контекст в путь действия. Пример (в JSP):

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

При этом вы никогда не будете иметь, чтобы изменить путь, к примеру, если вы переместите файл или скопировать код, или переименовать контекст!

+0

спасибо you..it работал .. – user2365917

+0

Вы можете –

+0

Это дает мне ошибку 404 со следующим URL: http://127.0.0.1:8888/${pageContext.request.contextPath}/fileUpload – anon58192932

4

может помочь вам

конфигурации сервлета

<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> 

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>"); 
    } 
} 

JSP код:

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

вы можете нажать на кнопку отправки и после того, как вы можете видеть сервлет из положить

1

Просто используйте действие = «sampleServlet»

Это будет работать для вас.

Смежные вопросы