我正在拼命尝试从HTML操作表单执行Servlet并收到以下错误消息:
HTTP状态404 - / WSE_Web / QueryServlet
输入:状态报告
消息: / WSE_Web / QueryServlet
description:请求的资源(/ WSE_Web / QueryServlet)不可用。
我在这里查看了几个问题和教程,但我找不到我所缺少的东西(我对Servlets和Web Programming也不是很熟悉)。
我正在使用Eclipse和Tomcat 7.0.12。
我的行动表格:
我的Servlet课程:
package servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.*;
import javax.servlet.http.*;
@WebServlet("/QueryServlet")
public class QueryServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");
}
}
我的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" metadata-complete="true" version="3.0">
<display-name>WSE_Web</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
项目结构:
答案 0 :(得分:0)
如果您的应用程序上下文为/WSE_Web
,那么您的应用程序是正确的并且可以正常运行。
但如果/WSE_Web
不是您的应用程序上下文,请将url-pattern更改为:
@WebServlet("/WSE_Web/QueryServlet")
确保您也可以使用web.xml文件:
<web-app>
...
<servlet>
<servlet-name>QueryServlet</servlet-name>
<servlet-class>servlet.QueryServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>QueryServlet</servlet-name>
<url-pattern>/QueryServlet</url-pattern>
</servlet-mapping>
</web-app>
答案 1 :(得分:0)
确保你有合适的HTML:
<input type='text' name='query' size='96'/><!-- your missing the `/` at the end -->
<input type='submit' name='subButton' value='Search!'/><!-- your missing the `/` at the end -->
同时将方法值更改为get
,因为您只覆盖doGet()
<form method='get' action='QueryServlet'>
...
</form>