请求转发:
1.浏览器发出一次请求,获取到一次响应。
2.浏览器地址未发生变化,认识第一次请求。
3.服务器内跳转。
4.资源2中可以去到用户请求的数据。
5.可以将请求转发到WEB-INF的资源
6.只能将请求到WEB-INF
重定向:
1.浏览器发出二次请求,获取到二次响应。
2.浏览器地址发生改变,变味了第二次请求的地址。
3.外跳转
4.资源2 不能获取 用户 提交数据,但可以获取到第二次由浏览器自动发生请求的携带数据。
5.不能将请求到WEB-INF资源
6.可以将请求重定向到 web外部资源。
package com.abc.handlers;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.abc.beans.Student;
@Controller
@RequestMapping("/some")
public class SomeHandler {
@RequestMapping("/first.do")
public ModelAndView doFirst(String name, int age) {
return new ModelAndView("forward:second.do");请求转发,不写则默认请求转发
}
@RequestMapping("/second.do")
显示数据
public ModelAndView doSecond( String name,int age) {
ModelAndView mv = new ModelAndView();
mv.addObject("pname", name);
mv.addObject("page", age);
mv.setViewName("redirect:third.do"); 重定向到third.do
//return new ModelAndView("redirect:third.do");
return mv;
}
@RequestMapping("/third.do") 携带数据
public ModelAndView doThird() {
return new ModelAndView("/welcome.jsp");
}
}