【发布时间】:2012-09-08 09:58:41
【问题描述】:
使用 MVC,当我从控制器 servlet 将响应返回到我的 jsp 页面时,URI 仍然是 servlet 的。 我希望显示 JSP 的 URI,它显示从控制器 servlet 发回的结果。 任何帮助将不胜感激。
【问题讨论】:
标签: java model-view-controller jsp servlets
使用 MVC,当我从控制器 servlet 将响应返回到我的 jsp 页面时,URI 仍然是 servlet 的。 我希望显示 JSP 的 URI,它显示从控制器 servlet 发回的结果。 任何帮助将不胜感激。
【问题讨论】:
标签: java model-view-controller jsp servlets
这不太可能。
更简单的方法是反过来解决它。使 JSP 的 URI 成为控制器之一。首先将 JSP 文件隐藏在 /WEB-INF 文件夹中,这样最终用户永远无法在不调用控制器的情况下直接打开它。然后实现控制器servlet的doGet()方法如下:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
}
现在,如果您打开控制器 servlet 的 URI 而不是 JSP 的 URI,那么您将看到 JSP。如果您将 JSP 中的表单提交给控制器 servlet(因此将调用其 doPost(),不要忘记更改其中的 JSP 路径以包含 /WEB-INF),那么 URI 基本保持不变,这就是你最终想要的..
这也是它在现有的基于 Servlet 的 MVC 框架中的一般工作方式。
【讨论】: