使用 MVC,当我从控制器 servlet 获得对我的 jsp 页面的响应时,URI 仍然是 servlet 的。我希望显示 JSP 的 URI,它显示从控制器 servlet 发回的结果。任何帮助将不胜感激。
问问题
194 次
1 回答
3
这不太可能。
更容易的是反过来解决它。使 JSP 的 URI 成为控制器之一。首先将 JSP 文件隐藏在文件/WEB-INF
夹中,这样最终用户永远无法在不调用控制器的情况下直接打开它。然后实现doGet()
控制器servlet的方法如下:
@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 路径也更改为 include /WEB-INF
),那么 URI 基本上保持不变,这就是您最终想要的..
这也是它在现有的基于 Servlet 的 MVC 框架中的一般工作方式。
也可以看看
- 我们的 servlets wiki 页面- Hello World 示例也是如此
于 2012-09-08T10:01:51.203 回答