springmvc中model,HttpServletRequest,modelandview区别

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()会在一个过程中始终保持这个值)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值