会话如何在SpringMVC项目中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
<强>会话保存方式:强>
1, javaWeb工程通用的HttpSession
2, SpringMVC特有的@SessionAttributes
我个人比较关注@SessionAttributes的用法,毕竟现在是在用SpringMVC嘛。但是我看网上那些文章,基本都是只说明了基础用法,详细的使用和细节却基本没有,我想这是不够的,所以我自己做了一些测试,然后整理了下代码做了个演示,记录并分享下,有什么不足的欢迎提出来讨论。
好了,废话就说到这,下面正戏开始!
嗯,为了给一些不喜欢看代码的客官省去翻结论的麻烦,我这里就先把我测试后的结论先列一下吧。
<强>以下还有几个应该算是常识性的知识点强>
<强>测试代码及简单说明强>
开发工具:春天工具套件。
春专为SpringMVC搞出来的一款基于Eclipse的IDE开发工具,集成了Maven和Tomcat,最近用下来感觉还不错的,推荐下。
<强>首先来一个项目结构截图吧
强>
& lt; !——使用@ResponseBody注解所需的2个包——比; & lt; dependency> & lt; groupId> org.codehaus.jackson & lt; artifactId> jackson-core-asl & lt; version> 1.9.13 & lt;/dependency> & lt; dependency> & lt; groupId> org.codehaus.jackson & lt; artifactId> jackson-mapper-asl & lt; version> 1.9.13 & lt;/dependency>
下面是主要的测试代码
包test.dmh.session; 进口活动; 进口javax.servlet.http.HttpSession; 进口org.slf4j.Logger; 进口org.slf4j.LoggerFactory; 进口org.springframework.stereotype.Controller; 进口org.springframework.ui.Model; 进口org.springframework.ui.ModelMap; 进口org.springframework.web.bind.annotation.RequestMapping; 进口org.springframework.web.bind.annotation.SessionAttributes; 进口org.springframework.web.bind.support.SessionStatus;/* * test1 * @SessionAttributes只声明了参数 */@ controller @SessionAttributes (value=https://www.yisu.com/zixun/{test1 "}) 公开课HomeController { 私有静态最终日志记录器=LoggerFactory.getLogger (HomeController.class); @RequestMapping (value="/show1 ") 公共字符串显示(ModelMap ModelMap, HttpSession会话){ logger.info(“显示会话”); (对象关键:modelMap.keySet ()) { 对象价值=modelMap.get(关键); system . out。println(键+ "=" +值); } System.out.println (“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *”); 枚举<字符串> e=session.getAttributeNames (); 而(e.hasMoreElements ()) { 字符串s=e.nextElement (); system . out。println (s + "==" + session.getAttribute (s)); } System.out.println (“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *”); “回家”; } @RequestMapping (“/set2”中的) 公共字符串setSession (ModelMap ModelMap) { logger.info(“设置会话1”); modelMap。addAttribute (“test1”、“值1”);//设置一个在@SessionAttributes中声明过的参数 modelMap。addAttribute (“test2”、“值2”);//设置一个未在@SessionAttributes中声明过的参数 “回家”; } @RequestMapping ("/setM”) 公共字符串setSessionM(模型模型){ logger.info(“设置会话1”); 模型。addAttribute (“test1”、“值1”);//设置一个在@SessionAttributes中声明过的参数 模型。addAttribute (“test2”、“值2”);//设置一个未在@SessionAttributes中声明过的参数 “回家”; } @RequestMapping ("/clear1”) 公共字符串清晰(SessionStatus状态){ logger.info(“明确会话1”); status.setComplete (); “回家”; } }
包test.dmh.session.controller; 进口javax.servlet.http.HttpSession; 进口org.slf4j.Logger; 进口org.slf4j.LoggerFactory; 进口org.springframework.stereotype.Controller; 进口org.springframework.ui.ModelMap; 进口org.springframework.web.bind.annotation.RequestMapping;/* * *没有使用@SessionAttributes注解 */@ controller 公开课IndexController { 私有静态最终日志记录器=LoggerFactory.getLogger (IndexController.class); @RequestMapping (“/set2") 公共字符串setSession (ModelMap ModelMap, HttpSession会话){ logger.info(“设置会话2:没有@SessionAttributes"); modelMap.addAttribute (“test3",“价值3“); session.setAttribute (“test4",“价值4“); 返回“home"; } }会议如何在SpringMVC项目中使用