使用springMVC框架时,怎样在controller里获得Session。

问题描述

使用springMVC框架时,怎样在controller里获得Session。一、如果需要把某个命令对象放到session里面,完全可以去类上加@SessionAttributes,但这只针对请求对象。二、如果我是在controller类里写的私有属性,那该如何去获取session,并把这个属性放到session里面,给其它方法共享呢?

解决方案

直接在方法上使用 HttpSession即可注入; 或者注入HttpServletRequest--->再获取Session
解决方案二:
其实你遇到问题的时候可以看看官方的文档:http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-arguments官方文档说的很明白,有spring自动注入下面的东西,Requet,Response, Session,InputStream, OutputStream, Principal这些东西。Request or response objects (Servlet API). Choose any specific request or response type, for example ServletRequest or HttpServletRequest.Session object (Servlet API): of type HttpSession. An argument of this type enforces the presence of a corresponding session. As a consequence, such an argument is never null.[Note]NoteSession access may not be thread-safe, in particular in a Servlet environment. Consider setting the RequestMappingHandlerAdapter's "synchronizeOnSession" flag to "true" if multiple requests are allowed to access a session concurrently.org.springframework.web.context.request.WebRequest or org.springframework.web.context.request.NativeWebRequest. Allows for generic request parameter access as well as request/session attribute access, without ties to the native Servlet/Portlet API.java.util.Locale for the current request locale, determined by the most specific locale resolver available, in effect, the configured LocaleResolver in a Servlet environment.java.io.InputStream / java.io.Reader for access to the request's content. This value is the raw InputStream/Reader as exposed by the Servlet API.java.io.OutputStream / java.io.Writer for generating the response's content. This value is the raw OutputStream/Writer as exposed by the Servlet API.java.security.Principal containing the currently authenticated user.
解决方案三:
HttpSession作为参数即可
解决方案四:
例如一个Controller中的一个getUser的方法.public String getUser(HttpSession httpSession,其他参数){ 在方法里面就可以使用session了。}
解决方案五:
public static HttpSession getSession() {HttpSession session = null;try { session = getRequest().getSession();} catch (Exception e) {} return session;}public static HttpServletRequest getRequest() {ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();return attrs.getRequest();}通过上述两个方法获取,减少了方法中的参数个数
解决方案六:
把HttpSession放到controller中的方法中去,做为请求参数。

时间: 2024-10-27 06:13:25

使用springMVC框架时,怎样在controller里获得Session。的相关文章

SpringMVC请求时如何找到正确的Controller

前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html 我们使用浏览器通过地址 http://ip:port/contextPath/path进行访问,SpringMVC是如何得知用户到底是访问哪个Controller中的方法,这期间到底发生了什么. 本文将分析SpringMVC是如何处理请求与Controll

spring mvc-求帮忙看下springmvc框架中注解事务失效问题

问题描述 求帮忙看下springmvc框架中注解事务失效问题 web.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&q

spring mvc-EXTJS4 SpringMVC框架的一个问题

问题描述 EXTJS4 SpringMVC框架的一个问题 如图,是一个通用后台管理模板,上方和下方没截图,现在想页面一加载就在右边生成一个表格来显示数据,刚接触这个框架,项目比较急,求帮忙... PS:用jsp来做可以很快,没办法- -一定要用这个框架,顺便给点学习资料那就感激不尽了,现在看着真的不懂 很乱感觉 解决方案 可以参考一下 <EXT JS权威指南> 该框架控件都是封装好的,就是初始化调用的时候对于刚接触的选后来说不太习惯. 如果JS底子比较好的话,建议你上官网看一下demo ,像这

构建自己的PHP框架--抽象Controller的基类

我们将简单的路由解析和执行,从入口文件public/index.php中移入到框架中.入口文件顿时变得清爽无比--   但是,去我们的controller里看一下,会看到如下的code:       public function actionView()     {         $body = 'Test body information';         require '../views/site/view.php';     } 难道我们每写一个要去渲染页面的action,都要去找

【SpringMVC框架】springmvc的基础知识

1springmvc框架 1.1什么是springmvc springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合. springmvc是一个基于mvc的web框架. 如图mvc的web框架 1.2mvc在b/s系统 下的应用 mvc是一个设计模式,mvc在b/s系统 下的应用: 如图mvc在bs系统下的应用 1.3springmvc框架 如图springmvc框架 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端

SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的_jquery

json作为一种轻量级的数据交换格式,在前后台数据交换中占据着非常重要的地位.Json的语法非常简单,采用的是键值对表示形式.JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序,也可以从服务器端程序传递json格式的字符串给前端并由前端解释.这个字符串是符合json语法的,而json语法又是 javascript语法的子集,所以javascript很容易解释它,而且

【SpringMVC框架】前端控制器源代码分析

前端控制器源代码分析 虽然前面讲了一些springmvc的入门程序和配置文件中映射器和适配器的配置,但是我们作为编程人员,了解框架的部分源码还是有必要的,比如前端控制器,它是如何通过Servlet的web.xml配置文件实现拦截并跳转至DispatcherServlet的呢?下面我们详细探讨 众多周知我们的入门程序的web.xml是这么配置的 <?xml version="1.0" encoding="UTF-8"?> <web-app versi

运行springmvc框架过程中遇到的问题,求大神帮忙!

问题描述 运行springmvc框架过程中遇到的问题,求大神帮忙! 八月 31, 2015 9:28:48 上午 org.apache.catalina.core.ContainerBase startInternal 严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start c

java-测试Spring整合hibernate/Struts2框架时,配置文件报奇怪的错误,求解

问题描述 测试Spring整合hibernate/Struts2框架时,配置文件报奇怪的错误,求解 为什么会报无法识别property? 解决方案 怎么都是这种问题,property要包含在bean标签内 解决方案二: Struts2+hibernate+spring整合时错误Struts2+hibernate+spring整合时错误 解决方案三: http://iteye.blog.163.com/blog/static/186308096201210265334689/ 解决方案四: pro