2015-05-07 9 views
1

Попытка отправить jsp на сервлет. Ошибка при отображении web.xml.Карта JSP на сервлет

У меня есть

index.jsp

<form method="POST" action="Validate"> 
    <input type="submit" value="Submit" /> 
</form> 

web.xml

<servlet> 
    <servlet-name>validate</servlet-name> 
    <servlet-class>com.test.Validate</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>validate</servlet-name> 
    <url-pattern>/Validate</url-pattern> 
    </servlet-mapping> 

структура папок

enter image description here

Однако, когда я пытаюсь запустить на сервере для index.jsp, я получаю ошибку "server cannot be started"

Ошибка идет, когда отображение сервлета удаляется из web.xml

Validate.java

package com.test; 

import java.io.IOException; 
import java.io.PrintWriter; 

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 Validate 
*/ 
@WebServlet(description="validation", urlPatterns={"/Validate"}) 
public class Validate extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public Validate() { 
     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(); 
     response.setContentType("text/html"); 
     System.out.println("validate called"); 
    } 

Он работает, когда я запускаю в качестве сервера на Validate.java

Однако, когда я запускаю сервер на index.jsp и нажимаю submit. Он перенаправляет на http://localhost:8080/TestApp/Validate и ничего на консоль.

+1

Не могли бы вы поделиться кодом 'Validate.java'? –

+0

Добавлено Validate.java – user544079

+0

Вы делаете HTTP POST, когда вы нажимаете submit, но у вас нет реализации метода doPost в вашем сервлет. – Crx

ответ

1

Проблема в том, что вы используете как сопоставление аннотаций, так и web.xml, поэтому вам лучше удалить один из них, чтобы заставить ваш код работать. Я считаю, что аннотация лучше.

@WebServlet(description="validation", urlPatterns={"/Validate"}) 
Смежные вопросы