SpringMVC中的重定向和转发的实现

SpringMVC中的重定向和转发的实现

请求转发和重定向的区别
请求重定向 和 请求转发都是web开发中资源跳转的方式。
	请求转发是服务器内部的跳转
		地址栏不发生变化
		只有一个请求响应
		可以通过request域传递数据
	请求重定向是浏览器自动发起对跳转目标的请求
		地址栏会发生变化
		两次请求响应
		无法通过request域传递对象
SpringMVC中实现转发和重定向
在SpringMVC中仍然可以使用传统方式实现转发和重定向
	request.getRequestDispatcher("").forward(request, response);
	response.sendRedirect("");
在SpringMVC中也提供了快捷方法实现转发和重定向
	只要在返回视图时,使用如下方式指定即可:
	redirect:/xxx.action
	forward:/xxx.action
/**
	 * 实现转发
	 * @throws Exception 
	 */
	@RequestMapping("/hello11.action")
	public String hello11(HttpServletRequest request) throws IOException, Exception{
		request.setAttribute("name", "zsf");
		return "forward:/hello.action";
	}
	
	/**
	 * 实现重定向
	 * @throws Exception 
	 */
	@RequestMapping("/hello12.action")
	public String hello12(HttpServletRequest request) throws IOException, Exception{
		request.setAttribute("name", "zsf");
		return "redirect:/hello.action";
	}
可以利用转发 实现允许用户访问WEB-INF下保护的指定资源
/**
	 * 通过转发 实现 访问到在WEB-INF目录下的资源
	 * @throws Exception 
	 */
	@RequestMapping("/toFile.action")
	public String toFile(String vname) throws IOException, Exception{
		if("form01".equals(vname)){
			return vname;
		}else{
			return "err";
		}
	}

你可能感兴趣的:(arno,于塞坤,转发,重定向)