springmvc 控制层参数为什么可以接收HttpSession等参数, 也可以不接收?

新手上路,请多包涵

问题描述

为什么有用到request或session时,就可以在参数栏加参数?
比如下面两种代码,都是可以运行的吧

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

@RequestMapping(value = "/login",method = RequestMethod.GET)  
public ModelAndView login(HttpSession httpSession){
     return new ModelAndView("login");
}

@RequestMapping(value = "/login",method = RequestMethod.GET)  
public ModelAndView login(){
     return new ModelAndView("login");
}

阅读 2.9k
3 个回答

这个就是Spring的参数注入了,你可以认为HttpSession是内置支持的,就像你要输入HttpRequest一样,他在解析时候,会自己做判断和解析的

Spring会自动扫描method的参数列表(反射),如果存在一些支持的参数(HttpSession,HttpRequest,HttpResponse等),会在调用该method时,把相应的参数透传

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题