会议如何在SpringMVC项目中使用

  

会话如何在SpringMVC项目中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强>会话保存方式:

1, javaWeb工程通用的HttpSession

2, SpringMVC特有的@SessionAttributes

我个人比较关注@SessionAttributes的用法,毕竟现在是在用SpringMVC嘛。但是我看网上那些文章,基本都是只说明了基础用法,详细的使用和细节却基本没有,我想这是不够的,所以我自己做了一些测试,然后整理了下代码做了个演示,记录并分享下,有什么不足的欢迎提出来讨论。

好了,废话就说到这,下面正戏开始!

嗯,为了给一些不喜欢看代码的客官省去翻结论的麻烦,我这里就先把我测试后的结论先列一下吧。

<强>以下还有几个应该算是常识性的知识点

<强>测试代码及简单说明

开发工具:春天工具套件。

春专为SpringMVC搞出来的一款基于Eclipse的IDE开发工具,集成了Maven和Tomcat,最近用下来感觉还不错的,推荐下。

<强>首先来一个项目结构截图吧

会话如何在SpringMVC项目中使用“> </p> <p>因为后面的测试中有用到ajax的@ResponseBody注解,所以要在砰的一声。xml文件中配置jar包。</p> <pre类= & 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项目中使用