【发布时间】:2012-08-29 16:40:30
【问题描述】:
随着Servlet 3.0 的引入,我们可以使用annotations 将servlet 映射到URL 模式,并在web.xml 中省略映射。
我想知道是否有一些指令或特殊标签允许在页面代码中将 jsp 映射到 URL 而无需在 web.xml 中声明 servlet
【问题讨论】:
标签: jsp java-ee-6 servlet-3.0 url-mapping
随着Servlet 3.0 的引入,我们可以使用annotations 将servlet 映射到URL 模式,并在web.xml 中省略映射。
我想知道是否有一些指令或特殊标签允许在页面代码中将 jsp 映射到 URL 而无需在 web.xml 中声明 servlet
【问题讨论】:
标签: jsp java-ee-6 servlet-3.0 url-mapping
没有这样的设施。
您可以做的最好的事情是将 JSP 隐藏在 /WEB-INF 中(这样它就永远不会被 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。
【讨论】: