SpringMVC请求转发的三种方法
首先明白请求转发是一次请求,地址栏不会发生变化,区别于重定向。springmvc环境自行配置。
以下举例中存在如下文件/WEB-INF/pages/success.jsp
请求转发的第一种情况:请求转发经过视图解析器
前端页面
<a href="${pageContext.request.contextPath}/forwardMvcView">请求转发经过视图解析器</a>
后台代码
@RequestMapping("/forwardMvcView") public String forwardMvcView(){ return "success"; }
上面就是一种请求转发
请求转发的第二种情况:不经过视图解析器
前端页面
<a href="${pageContext.request.contextPath}/forwardView">请求转发经过视图解析器</a>
后台代码(由于不经过视图解析器,所以需要自己拼接前后缀)forward:关键字后面的路径表示不再经过视图解析器
@RequestMapping("/forwardView") public String forwardView(){ return "forward:/WEB_INF/pages/success.jsp"; }
请求转发的第三种情况:请求转发传统的方式——原生Servlet
前端页面
<a href="${pageContext.request.contextPath}/forwardCommon">请求转发经过视图解析器</a>
后台代码
@RequestMapping("/forwardCommon") public forwardCommon(HttpServletRequest request,HttpServletResponse response){ request.getServletDispatcher("/WEB-INF/pages/success.jsp").forward(request,response); }