使用MVC,当我从控制器servlet将响应返回到我的jsp页面时,URI仍然是servlet的URI。 我希望显示JSP的URI,它显示从控制器servlet发回的结果。 任何帮助将不胜感激。
答案 0 :(得分:3)
这不太可能。
Eaiser将以相反的方式解决它。使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框架中的工作原理。