2014-12-10 3 views
0

Это мой первый сервлет, я делаю все книги, но получил 404 Ошибка.Ошибка 404 в развертывании моего первого сервлета

Я использую Tomcat 7.0.56 и Windows 7, я был настроен на все переменные среды.

Вот мой сервлет:

@WebServlet("/FirstServlet/PersonalServlet") 
public class PersonalServlet extends HttpServlet { 

public void doGet(HttpServletRequest request, HttpServletResponse response) 
throws IOException, ServletException { 

    response.setContentType("text/HTML"); 
    PrintWriter out = response.getWriter(); 
    out.println("<HTML>"); 
    out.println("<HEAD>"); 
    out.println("<TITLE>Simple Servlet</TITLE>"); 
    out.println("</HEAD>"); 
    out.println("<BODY>"); 
    out.println("<BR><BR><BR>"); 

    String clientName = request.getParameter("firstName"); 
    out.println("<H1> A Simple Servlet for "); 
    out.println(clientName + "</H1></CENTER>"); 
    out.println("</BODY>"); 
    out.println("</HTML>"); 
    out.flush(); 
    } 
} 

Это мой Hello.html в C:\tomcat\webapps\FirstServlet\Hello.html

<html> 
<head> 
    <title></title> 
</head> 
<body> 
<form method=GET action="PersonalServlet"> 
    Enter Your first name: 

    <input type="text" name="firstName" value=""> 
    <br> <br> 
    <input type="submit" value="submit"> 

</form> 

</body> 
</html> 

И вот мой web.xml в C:\tomcat\webapps\FirstServlet\WEB-INF:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app xmlns=" http://java.sun.com/xml/ns/javaee " 
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance " 
xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd " 
version="3.0"> 

    <servlet> 
     <servlet-name>PersonalServlet</servlet-name> 
     <servlet-class>PersonalServlet</servlet-class> 
    </servlet> 


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

</web-app> 

Мой кот имеет настройки успешно,

Но когда я пытаюсь http://127.0.0.1:8080/FirstServlet/PersonalServlet

http://127.0.0.1:8080/FirstServlet/ Или

Я получил эту ошибку.

Я поставил класс сервлета в C:\tomcat\webapps\FirstServlet\WEB-INF\classes

ответ

0
  1. Если вы используете аннотацию @WebServlet, вам не нужно использовать конфигурацию xml. В этом случае конфигурация из web.xml перезаписывает конфигурацию аннотаций.
  2. Итак, теперь, когда используется конфигурация из web.xml, вы должны получить доступ к сервлету по URL-адресу PersonalServlet, указанному в url-образце.
  3. Кроме того, вы должны предоставить полностью квалифицированное имя в элементе класса сервлета.
+0

Я хочу использовать '@WebServlet ("/FirstServlet/PersonalServlet ")', потому что это просто, должен ли я полностью удалить 'web.xml', или просто удалить' 'и' <сервлет-сопоставление> 'теги? –

+0

@ user3808021 Вы можете удалить его полностью, если вам это не понадобится ни для чего другого. В противном случае - удалите теги, да. – mkrakhin

+0

Извините, что это значит: '@WebServlet ("/PersonalServlet ")'? –

0

Дайте полное имя класса здесь ..

Внутри web.xml

<servlet-class>**Fully qualified class name**</servlet-class> 

Почему вы используете как XML и аннотаций, удалить

@WebServlet("/FirstServlet/PersonalServlet") 

с вашего класса ..

+0

Какова ваша средняя? –

+0

полное имя класса. Название пакета и имя класса. например, если у вас есть класс, размещенный в пакете com.test.servlet, то указанный выше синтаксис будет com.test.servlet.PersonalServlet User27854

+0

Я хочу использовать '@WebServlet ("/FirstServlet/PersonalServlet ")', потому что это просто, должен ли я полностью удалить 'web.xml', или просто удалить теги '' и '? –

-1

Вот как это должно выглядеть следующим образом:

<web-app> 
    <servlet> 
     <servlet-name>PersonalServlet</servlet-name> 
     <servlet-class>PersonalServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>PersonalServlet</servlet-name> 
     <url-pattern>/PersonalServlet/*</url-pattern> 
    </servlet-mapping> 

</web-app> 
Смежные вопросы