model
Model是一个接口
Model只是用来传输数据的,并不会进行业务的寻址
Model是每一次请求都必须会带着,不需要去new
model是request级别的
@RequestMapping("/login")
public String login(String name , String pwd, Model model){
String status="MODEL";
model.addAttribute("status",status);
return "Sucees";
}
HttpServletRequest
request.getRequestURL 返回客户端请求时的完整URL
request.getQueryString 返回请求行中的参数部分
request.getPathInfo 返回请求URL中的额外路径信息
request.getRemoteAddr 返回发出请求的客户机的IP地址
request.getRemoteHost 返回发出请求的客户机的完整主机名
request.getRemotePort 返回客户机所使用的网络端口号
request.getLocalAddr 返回WEB服务器的IP地址
request.getLocalName 返回WEB服务器的主机名
@RequestMapping("/login")
public String login(HttpServletRequest request){
String status="HTTPSERVLETREQUEST";
request.setAttribute("status",status);
return "Sucees";
}
modelandview
ModelAndView是一个类,内部聚合了ModelMap类;ModelMap又继承自LinkedHashMap
ModelAndView包含model和view两部分,使用时需要自己实例化,利用ModelMap用来传值,也可以设置view的名称
ModelAndView是需要我们自己去新建的,每次都需要new
//modelAndView存储数据使用setViewName()和getModel().put()方法封装数据
@RequestMapping("/login")
public ModelAndView login(ModelAndView modelAndView){
String status="MODELANDVIEW";
//返回的页面
modelAndView.setViewName("page");
modelAndView.getModel().put("status",status);
return modelAndView;
}
request.setAttribute()属于页面之间的传值,从a.jsp到b.jsp一次传递,之后这个request就会失去他的作用范围,再传就要重新设一个request.setAttribute()。(使用session.setAttribute()会在一个过程中始终保持这个值)