介绍Servlet 3.0我们可以使用 annotations 将 servlet 映射到 URL 模式并省略 web.xml 中的映射。
我想知道是否有一些指令或特殊标记允许将 jsp 映射到页面代码中的 URL,而无需在 web.xml 中声明 servlet
请您参考如下方法:
没有这样的设施。
你能做的最好的事情就是将 JSP 隐藏在 /WEB-INF
中(这样它就永远不能通过 URL 直接请求),然后创建一个转发到该 JSP 的 servlet 并最终映射它位于所需的 URL 模式上。这相当简单:
@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。 .