【发布时间】:2017-08-10 15:59:18
【问题描述】:
我有一个在 Tomcat 中运行的简单 Java Web 应用程序。
在其中,FrontController.java servlet 有映射@WebServlet("/controller/*")。因此,为了触发 servlet,我需要我的每个 url 都以 /controller/ 开头。我需要能够在页面上显示图像图像存储在容器外部,以便我将它们写入OutputStream)。但是,如果我将我的 src url 写成 ${pageContext.request.contextPath}images/picture.jpg,那么生成的 url 显然是 localhost:8080/rootFolder/images/picture.jpg 而不是 localhost:8080/rootFolder/controller/images/picture.jpg。
要加载这些文件,我可以在每个 ${pageContext.request.contextPath} 之后手动添加 controller/,这很糟糕,或者我可以按照此处找到的建议 append dispathcer servlet mapping to url 并将行 request.setAttribute("frontControllerMapping", "controller/"); 添加到每个处理请求然后编码 URL 的方法像这样${pageContext.request.contextPath}${frontControllerMapping}images/picture.jpg 更好。
我的问题是如何将控制器映射添加到必须由 servlet 处理的每个 url 以及如何正确执行?第二个选项是正确的方法吗?
【问题讨论】:
标签: java jsp tomcat servlets front-controller