Servlet 3.0 API - 注册servlet

时间:2013-03-29 09:06:47

标签: java servlets servlet-3.0

我正在开发tomcat 7.0.37&的示例servlet。日食3.7。我目前的问题是让它可以运行:(

//...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();
    }
}

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

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

4 个答案:

答案 0 :(得分:1)

以下是一些原因:

  • 确保您的Servlet容器支持Servlet 3.0。他们中的大多数人应该支持,
  • 确保您的web.xml具有3.0版。对于web.xml版本< 3.0,注释可能无法处理。
  • 确保metadata-complete属性为false。如果为true,则可能无法处理注释。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

要正确使用注释,请参阅以下内容。

@WebServlet( name="AdminServlet", displayName="Admin Servlet", urlPatterns ={"/Hello","*.do"})
public class AdminServlet

答案 3 :(得分:0)

我发现了我的问题:我必须删除“super()。doGet();”