session如何在springMVC项目中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。session保存方式:javaweb工程通用的httpsessi
session如何在springMVC项目中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
session保存方式:
springmvc特有的@SessionAttributes
我个人比较关注@SessionAttributes的用法,毕竟现在是在用SpringMVC嘛。但是我看网上那些文章,基本都是只说明了基础用法,详细的使用和细节却基本没有,我想这是不够的,所以我自己做了一些测试,然后整理了下代码做了个demo,记录并分享下,有什么不足的欢迎提出来讨论。
好了,废话就说到这,下面正戏开始!
结论
嗯,为了给一些不喜欢看代码的客官省去翻结论的麻烦,我这里就先把我测试后的结论先列一下吧。
可以通过SpringMVC特有的ModelMap、Model在Controller中自动保存数据到session,也可以通过传统的HttpSession等参数保存session数据
保存session数据必须使用@SessionAttributes注解,该注解有2种参数声明方式(value和types),且该注解声明必须写在类上,不能在方法上
保存的session数据必须与@SessionAttributes注解中的参数列表对应,未被声明的参数无法保存到session中
使用SessionStatus可以清除session中保存的数据,注意是全部清除,无法单独删除指定的session数据。同时,清除时有效权限遵循上述第2、3条规则(借用此规则可人为达到删除指定session数据的效果)
通过ModelMap等读取session中数据时,也有上述的参数权限限制
使用ModelMap或Model等保存session数据时,ModelMap必须作为方法参数传入,在方法中新定义的无效。同时,只要把ModelMap作为参数传入,即使是被别的方法调用也能起效
使用@ResponseBody注解时(一般配合ajax使用),无法保存session数据
@SessionAttributes注解可以使用value和types 2种参数列表
使用HttpSession的传统方式操作没有上述注解及权限等限制,下面有简单测试,但是不做具体说明
以下还有几个应该算是常识性的知识点
操作session数据可以跨类,与包或者url的路径等也没有关系
同一个session值操作,后面的值会覆盖前面的值
测试代码及简单说明
开发工具: Spring Tool Suite 。
spring专为SpringMVC搞出来的一款基于Eclipse的IDE开发工具,集成了Maven和Tomcat,最近用下来感觉还不错的,推荐下。
首先来一个项目结构截图吧
因为后面的测试中有用到ajax的@ResponseBody注解,所以要在pom.xml文件中配置jar包。
<!-- 使用@ResponseBody注解所需的2个包 --><dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version></dependency><dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version></dependency>
--结束END--
本文标题: session如何在SpringMVC项目中使用
本文链接: https://lsjlt.com/news/226584.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0