Tomcat 7.0:请求的资源(Servlet)不可用

时间:2014-12-22 16:15:13

标签: java tomcat servlets


我正在拼命尝试从HTML操作表单执行Servlet并收到以下错误消息:

  

HTTP状态404 - / WSE_Web / QueryServlet

     

输入:状态报告

     

消息: / WSE_Web / QueryServlet

     

description:请求的资源(/ WSE_Web / QueryServlet)不可用。

我在这里查看了几个问题和教程,但我找不到我所缺少的东西(我对Servlets和Web Programming也不是很熟悉)。
我正在使用Eclipse和Tomcat 7.0.12。

我的行动表格:

enter image description here

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

项目结构:

enter image description here

2 个答案:

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