2

我正在 tomcat 7.0.37 和 eclipse 3.7 上开发一个示例 servlet。我目前的问题是让它可运行:(

//...imports and so on...

@WebServlet(value="/Hello")
public class AdminServlet extends HttpServlet
{
    private static final long serialVersionUID = -1139419481702036147L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        super.doGet(req, resp);

        PrintWriter writer = resp.getWriter();
        writer.write("HelloWorld");
        writer.close();
    }
}

当我调用 URL 时,"http://localhost:8080/{webappname}/Hello"一个窗口变为“状态 404 - 资源不可用”。有什么问题吗?

就像在大多数 Servlet 3.0 示例中一样 :(

4

4 回答 4

1

以下是一些原因:

  • 确保您的 Servlet 容器支持 Servlet 3.0。他们中的大多数应该支持,
  • 确保您的 web.xml 版本为 3.0。对于 web.xml 版本 < 3.0,注释可能不会得到处理。
  • 确保 metadata-complete 属性为 false。如果为真,则注释可能不会被处理。
于 2013-03-29T09:14:18.020 回答
0

创建{webappname}.war,将其放入webapps目录并重新启动服务器。

于 2013-03-29T09:14:25.623 回答
0

我发现了我的问题:我不得不删除“super().doGet();”

于 2013-03-29T10:25:10.870 回答
0

问题是您没有将 servlet 映射到正确的 url 模式。servlet 名称应该映射到 URl 模式。但是在你的代码中它还没有完成。

要使用注释正确执行此操作,请参阅以下内容。

@WebServlet( name="AdminServlet", displayName="Admin Servlet", urlPatterns ={"/Hello","*.do"})
public class AdminServlet
于 2013-03-29T09:23:16.207 回答