Я пытаюсь сделать свой первый сервлет для запуска в eclipse для j2ee с tomcat 7.0, но я не могу понять, что я делаю неправильно. Я запускаю весь проект следующим образом: Щелкните правой кнопкой мыши мой проект-> Запустить как-> Запустить на сервере, файл index.html появится мне в браузере, но когда я нажму «Продолжить», он покажет мне это сообщение:Как сделать мой первый сервлет работы?
HTTP Status 404 -/PDPJ_L5/привет - The запрошенный ресурс (/ PDPJ_L5/привет) это не доступно.
Я подозреваю, что проблема связана с атрибутом действия из тега формы или файла веб-дескриптора. Пожалуйста, объясните мне, что я делаю неправильно и как отремонтировать мой проект. Благодарю.
Вот мой проект (PDPJ_L5) структура каталогов:
PDPJ_L5
- JAX-WS Web Services
- Дескриптор развертывания: PDPJ_L5
- Java Resources: ЦСИ, который содержит сервлеты пакет с моим сервлетом Hello.java
- Ресурс JavaScript
- сборки
- META-INF
- WEB-INF с Lib папки, мой index.html и web.xml
В index.html Содержание:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Some title</title>
</head>
<body>
<H1 ALIGN="CENTER">Choose your option:</H1>
<form action="http://localhost:8080/PDPJ_L5/hello" method="GET">
<center>
<INPUT TYPE="RADIO" NAME="group" VALUE="one">ONE<BR>
<INPUT TYPE="RADIO" NAME="group" VALUE="two">TWO<BR><BR>
<INPUT TYPE="SUBMIT" VALUE="Continue">
</center>
</form>
</body>
</html>
Вот Hello.java сервлет:
package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Hello
*/
public class Hello extends HttpServlet
{
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Hello()
{
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HEAD><TITLE>Success</HEAD><BODY>");
out.println("<h1> It works </h1>");
out.println("</BODY>");
out.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doGet(request, response);
}
}
И файл web.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-application_2_3.dtd">
<web-app>
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>servlets.Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
Я удивлен по умолчанию web.xml Eclipse создал точки для Servlet 2.3 * http: //java.sun.com/dtd/web-application_2_3.dtd*? Mine имеет * web-app_2_5.xsd * – JoseK
@Jose: Большая вероятность того, что он читает сильно устаревший учебник/книгу, доказанный наличием с 1998 года устаревшего тега '