`
jaczhao
  • 浏览: 86689 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

gwt + spring通过aop记录日志获取request、session

阅读更多
由于Spring 的AOP面向切面编程,与Servlet容器没有任何关联,所以想要获得Session会话比较麻烦。
当然Struts2同样不依赖Servlet容器,可以在Spring AOP中可以使用com.opensymphony.xwork2.ActionContext,就可以获得Session。
但是在Servlet中或struts1中,可以通过ThreadLocal方式将session保存,Spring AOP中获得Session对象。
具体思路和代码:

这个是保存request和session的类
/**
*
* @author 株洲健坤北大青鸟 周钢
*
*/
public class SysContent { 
     private static ThreadLocal<HttpServletRequest> requestLocal= new ThreadLocal<HttpServletRequest>(); 
     private static ThreadLocal<HttpServletResponse> responseLocal= new ThreadLocal<HttpServletResponse>(); 
      
    public static HttpServletRequest getRequest() { 
        return (HttpServletRequest)requestLocal.get(); 
    } 
    public static void setRequest(HttpServletRequest request) { 
        requestLocal.set(request); 
    } 
    public static HttpServletResponse getResponse() { 
        return (HttpServletResponse)responseLocal.get(); 
    } 
    public static void setResponse(HttpServletResponse response) { 
        responseLocal.set(response); 
    } 
    public static HttpSession getSession() { 
        return (HttpSession)((HttpServletRequest)requestLocal.get()).getSession(); 
    } 
}


这个是配置的过滤器

/**
*
* @author 株洲健坤北大青鸟 周钢
*
*/
public class GetContent implements Filter { 
    @Override 
    public void destroy() { 
        // TODO Auto-generated method stub 
    } 
    @Override 
    public void doFilter(ServletRequest arg0, ServletResponse arg1, 
            FilterChain arg2) throws IOException, ServletException { 
        SysContent.setRequest((HttpServletRequest) arg0); 
        SysContent.setResponse((HttpServletResponse) arg1); 
        arg2.doFilter(arg0, arg1); 
    } 
    @Override 
    public void init(FilterConfig arg0) throws ServletException { 
        // TODO Auto-generated method stub 
    } 




使用AOP进行环绕通知切入所有com.aptech.service包下的所有类的方法

/**
* @author 株洲健坤北大青鸟 周钢
*/
@Aspect
public Class AopTest{
@Around(value="execution(* com.aptech.service.*.*(..))")
public void aroundTest(ProceedingJoinPoint pj) throws Exception { 
          HttpServletRequest request = SysContent.getRequest(); 
          HttpServletResponse response = SysContent.getResponse(); 
          HttpSession session = SysContent.getSession(); 
          //其他操作
          if(true){
           pj.proceed();
          }
          throw new Exception("您没有该权限");
    }
}
//原文地址:http://zg770423.blog.163.com/blog/static/13826688820112275259181/
分享到:
评论

相关推荐

    gwt+spring+hibernate

    标题 "gwt+spring+hibernate" 涉及的是一个使用Google Web Toolkit (GWT)、Spring框架和Hibernate ORM技术的集成示例。这是一个常见的Web应用开发组合,用于构建高效、可扩展且功能丰富的Java web应用程序。下面将...

    GWT+Spring2+Spring Security2+Hibernate3实例

    一个GWT+Spring2+Spring Security2+Hibernate3的实例,数据库为mssql.在/GwtWeb/WebRoot/WEB-INF/lib 目录下RequiredJar.txt有需要用到的库说明 修改一下applicationContext.xml的数据库设定就可以使用

    smartgwt + spring + hibernate

    SmartGWT + Spring + Hibernate 是一个常见的企业级应用开发组合,它们各自在Web应用程序开发中扮演着重要角色。SmartGWT是基于GWT(Google Web Toolkit)的一个强大的UI库,提供丰富的用户界面组件和高性能的...

    GWT+Spring demo- springgwt_sudoku

    【标题】"GWT+Spring demo- springgwt_sudoku" 涉及的主要知识点是Google Web Toolkit (GWT) 和Spring框架的整合应用。这是一个实际的项目示例,展示了如何将GWT的客户端能力与Spring的服务器端功能相结合,以创建一...

    gwt+spring

    标题"**gwt+spring**"表明我们将探讨如何将这两个框架整合在一起,以便在同一个项目中利用它们的优势。尽管相对于其他组合,GWT与Spring的整合资料可能较少且版本较旧,但依然有重要的实践价值。 首先,整合GWT和...

    smartgwt+mybatis+spring的整合

    Spring的AOP可以方便地实现日志记录、权限控制等功能。 整合步骤通常包括以下几个部分: 1. **配置Spring**:创建Spring的配置文件,定义SmartGwt的服务和Mybatis的数据源、SqlSessionFactory以及Mapper接口的Bean...

    GSH:spring3.1.0M2+Hibernate3.5+GWT2.4+JPA+Annotation+Spring4gwt0.0.1亲手整合

    GSH:spring3.1.0M2+Hibernate3.5+GWT2.4+JPA+Annotation+Spring4gwt0.0.1亲手整合,也可以上新浪博客去看 http://blog.sina.com.cn/s/blog_687dfecb0100yrmf.html

    smartGwt、spring、Mybatis整合

    2. **SmartGWT与Spring集成**:SmartGWT的ServiceProxy可以与Spring的Bean集成,通过Spring的ApplicationContext获取服务。这样,GWT客户端可以通过ServiceProxy调用服务器端的Spring服务。 3. **Mybatis与Spring...

    GWT+EXT+STRUTS2+Eclipse完整范例.rar

    标题 "GWT+EXT+STRUTS2+Eclipse完整范例.rar" 提示我们这是一个包含一个集成开发环境Eclipse的项目,该项目集成了Google Web Toolkit (GWT), EXT JS 和Struts2框架。描述 "整合 GWT EXT STRUTS2 Eclipse 范例" 明确...

    Ext + Gwt + Struts2.0开发5

    ExtJS组件如Grid、Form等可以利用GWT服务获取数据或提交用户输入。通过这种方式,你可以构建一个既具有强大UI功能,又具备高效后台处理能力的Web应用程序。 总结来说,"Ext + GWT + Struts2.0"的开发模式允许你利用...

    GWT与Spring整合经典文章

    对于开发者来说,理解GWT的Widget体系、Spring的IoC和AOP机制,以及Hibernate的ORM操作,是掌握GWT与Spring整合的关键。通过这种方式,开发者可以充分利用Java的强类型和丰富的生态系统,同时享受到GWT带来的高性能...

    gwt + gxt jar包

    在【压缩包子文件的文件名称列表】中,"gwt+gxt"可能表示的是包含GWT和GXT库的JAR文件,例如GWT的gwt-user.jar、gwt-dev.jar以及GXT的gxt.jar、gxt-theme-neptune.jar等。这些JAR文件通常需要添加到项目的类路径中,...

    demo-gwt-spring

    叉和星演示-gwt-spring 克隆分叉项目 如何从原始回购更新我的回购 git 远程添加上游 git pull 上游主 请注意您是否已经对本地仓库进行了更改!! 如何编译: mvn Eclipse:Eclipse mvn 全新安装 如何导入项目:...

    GWT1.7+Spring2.5+Hibernate3集成(保证能用!)

    完整代码,绝对能用:Spring和...GWT部分集成了Spring的Service(网上的例子很少,要不代码不全,要不不能使用,这个保证完全可以使用)。请注意各个配置文件,程序所用的包都在WEB-INF下的图片上,请自行下载。

    gwt+WebService,构建中国股票实时查看面板

    在本项目中,“gwt+WebService,构建中国股票实时查看面板”是一个利用GWT(Google Web Toolkit)技术和Web服务(WebService)来开发的应用程序,旨在实现实时展示中国股票市场的数据。GWT是一个开放源码的Java框架...

    Ext + Gwt + Struts2.0开发1

    【Ext + Gwt + Struts2.0 开发1】是一个关于集成三种技术进行Web应用开发的主题。在本文中,我们将深入探讨这三者的技术特点以及如何将它们整合在一起。 **Ext** 是一个用于构建富客户端界面的JavaScript库,它提供...

    Ext + Gwt + Struts2.0开发4

    在本文中,我们将探讨如何使用Ext、Gwt和Struts2.0这三种技术结合进行Web应用开发。首先,理解每个技术的核心概念是至关重要的。 **Ext** 是一个JavaScript库,用于构建富客户端应用程序,提供了丰富的用户界面组件...

Global site tag (gtag.js) - Google Analytics