JSP servlet映射

时间:2012-08-29 16:40:31

标签: jsp java-ee-6 servlet-3.0 url-mapping

通过引入Servlet 3.0,我们可以使用annotations将servlet映射到URL模式,并在web.xml中省略映射。

我想知道是否有一些intstructions或特殊标签允许在页面代码中将jsp映射到URL而不在web.xml中声明servlet

1 个答案:

答案 0 :(得分:5)

没有这样的设施。

最好的办法是在/WEB-INF中隐藏JSP(以便它永远不会被URL直接请求),只需创建一个转发到该JSP并最终将其映射到所需URL模式的servlet 。这很容易:

@WebServlet("/foo")
public class FooServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("/WEB-INF/foo.jsp").forward(request, response);
    }

}

这样/WEB-INF/foo.jsp中的JSP可由http://localhost:8080/context/foo使用。您可以使用front controller pattern将其进一步抽象为一堆JSP的单个servlet。