解决在XXXXService中访问session、request、params、servletcontext等等问题

在最近的开发过程中,遇到了在service中访问session、request、params等对象中的一些内容,解决方法如下

import org.codehaus.groovy.grails.web.util.WebUtils
import org.springframework.web.context.request.RequestContextHolder

class WebUtilTools {
   def static getRequest(){
       def webUtils = WebUtils.retrieveGrailsWebRequest()
       webUtils.getCurrentRequest()
   }

def static getResponse(){
       def webUtils = WebUtils.retrieveGrailsWebRequest()
       webUtils.getCurrentResponse()
   }

def static getServletContext(){
       def webUtils = WebUtils.retrieveGrailsWebRequest()
       webUtils.getServletContext()
   }

def static getSession(){
       RequestContextHolder.currentRequestAttributes().getSession()
   }

def static getParams(){
       RequestContextHolder.currentRequestAttributes().params
   }
}

时间: 2024-10-16 23:23:04

解决在XXXXService中访问session、request、params、servletcontext等等问题的相关文章

express解决ajax跨域访问session失效问题

最近在学习express,就用以前做的项目来进行express前后端分离的练手了,在做登陆注册的时候发现跨域的时候,session的值是会失效的,导致session里面的数据获取为undefined,网上找资料加上自己的不断尝试,终于找到了解决方法,简单记录一下解决方法. 1.客户端因为session原则上是需要cookie支持的,所以Ajax方法里面必须添加 xhrFields:{withCredentials:true},表示允许带Cookie的跨域Ajax请求( 特别说明,只要使用的ses

在一般处理文件中访问Session需要添加IRequiresSessionState

在IHttpHandler 使用Session 通常我们经常,通过session判定用户是否登录.还有一些临时的.重要的数据也尝尝存放在Session中. 在页面我们很容易的得到Session的值,但在类中就会遇到一些问题.也知道通过下面的方法得到. System.Web.HttpContext.Current.Session["userinfo"]; 但是今天此种方法也失灵了.在做一个小应用时,需要实现IHttpHandler,同时也需要用到用户的标识.但是在这个类中怎么也不能找到S

解决在构造函数中使用Session,Session为null的问题

问题描述: public abstract class PageBase : System.Web.UI.Page 在PageBase中如何使用Session??? 我直接用 Session["Name"] 提示:只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态.还请确保在应用程序配置的 <configuration>\<system.web>\<httpModules> 节中包括 S

在一般处理文件中访问Session需要添加IRequiresSessionState(转载)

原文:http://blog.csdn.net/cdsnaspnet/article/details/5695625s 通常我们经常,通过session判定用户是否登录.还有一些临时的.重要的数据也尝尝存放在Session中. 在页面我们很容易的得到Session的值,但在类中就会遇到一些问题.也知道通过下面的方法得到. System.Web.HttpContext.Current.Session["userinfo"]; 但是今天此种方法也失灵了.在做一个小应用时,需要实现IHttp

ASP.NET ASHX中访问Session

默认,在ashx文件中无法使用Session,直接获取context.Session只能取得null. 解决办法: 添加命名空间 using System.Web.SessionState 的引用 让这个General Handler类实现IRequiresSessionState接口 然后再用context.Session或HttpContext.Current.Session就能获取Session

ASP.NET Global Application_Error事件中访问Session报错 解决

报错信息:会话状态在此上下文中不可用 protected void Application_Error(object sender, EventArgs e) { //以此判断是否可用Session bool HadInitSession = (sender as HttpApplication).Context.Session == null ? false : true; // ....... }

如何在WebSocket类中访问Session

我最近正在做一个基于websocket的webQQ,最后代码会开源带github上,所以过程中我就不贴所有的代码啦~就贴问题的关键. 首先先搞清一个流程:WebSocket在建立连接时第一步其实是以HTTP协议的面目进行握手的: 1.客户端发送websocket请求,此时发送的还是http包. 2.如果服务器支持websocket,那么就将http转变为websocket. 3.此时连接建立,服务器和客户端可以双向实时进行通信. 那么我们该怎么拿到HttpSession呢?观察上面整个过程发现只

spring在普通类中获取session和request

在使用spring时,经常需要在普通类中获取session,request等对像.比如一些AOP拦截器类,在有使用struts2时,因为struts2有一个接口使用org.apache.struts2.ServletActionContext即可很方便的取到session对像.用法:ServletActionContext.getRequest().getSession(); 但在单独使用spring时如何在普通类中获取session,reuqest呢?首先要在web.xml增加如下代码: <l

SpringMVC - controller中获取session

平时使用springMVC 在方法中访问session中经常很自然地调用Servlet API. 用起来非常直观方便,一直没有多考虑什么. 比如这样: @RequestMapping(value = "/logout") public String logout(HttpSession session) { session.removeAttribute("user"); return "/login"; } 但毕竟这样对Servlet API产