`
liweitsky
  • 浏览: 44485 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring AOP(一)获取操作参数request、session、application

阅读更多
springAOP的用途极其广泛,但在struts2之前request等获取是个问题,这里简单介绍一下我的方法:
struts1中两种方法:
1.通过threadlocal
先写java类
package com.util; 
import java.io.Serializable; 

import javax.servlet.http.HttpServletRequest; 


public class ThreadTest implements Serializable{ 
      private static ThreadLocal<Object> threadLocal = new ThreadLocal<Object>(); 

public HttpServletRequest getContext(){ 
      return (HttpServletRequest)threadLocal.get(); 
} 
public void setContext(HttpServletRequest request){ 
      threadLocal.set(request); 
} 

public void cleanContext(){ 
      threadLocal.set(null); 
} 
} 

配置为filter
<filter>
	<filter-name>test</filter-name>
	<filter-class>com.util.ThreadTest</filter-class>
</filter>
<filter-mapping>
	<filter-name>test</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

最后在aop方法中只要包含HttpServletRequest request, HttpServletResponse response参数就可以了

方法二:
public Object saveLog(ProceedingJoinPoint joinPoint) throws Throwable {
		Object retVal = null;
		try {
			if(logDao == null){
				String[] locations={"applicationContext-beans.xml","applicationContext-actions.xml", "applicationContext-common.xml"};
				ApplicationContext ctx = new ClassPathXmlApplicationContext(locations);
				logDao = (LogDao) ctx.getBean("logDao");
			}
			//logDetail(jointPoint,":startTime:");
			retVal = joinPoint.proceed();

			Object[] args = joinPoint.getArgs();
			HttpServletRequest request = null;
			ActionMapping mapping = null;
                        //通过分析aop监听参数分析出request等信息
			for (int i = 0; i < args.length; i++) {
				if (args[i] instanceof HttpServletRequest) {
					request = (HttpServletRequest) args[i];
				}if (args[i] instanceof ActionMapping) {
					mapping = (ActionMapping) args[i];
				}
			}
			Person person = new Person();
			if (request != null) {
				person = (Person) request.getSession().getAttribute("login");
			}
			String method = request.getParameter("method");
			System.out.println("------------------------------------"+SystemContext.getOffset());
			//登录日志
			if (method.equals("login")) {
			}
			//查看
			if (method.equals("showAll")) {
			}
			}

			//logDetail(joinPoint,":endTime:");
		} catch (Exception ee) {
			System.out.println("出错:" + ee.toString());
		}
		return retVal;
	}


在struts2中request等作为系统参数,已经可以直接调用了
0
1
分享到:
评论

相关推荐

    Spring-Reference_zh_CN(Spring中文参考手册)

    12.2.2. 在Spring的application context中创建 SessionFactory 12.2.3. HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. ...

    springboot学习思维笔记.xmind

    通过设定jvm的spring.profiles.active参数 web项目设置在Servlet的context parameter中 事件Application Event 自定义事件,集成ApplicationEvent 定义事件监听器,实现ApplicationListener 使用容器...

    Manning.Spring.in.Action.4th.Edition.2014.11.epub

    3.4.1. Working with request and session scope 3.4.2. Declaring scoped proxies in XML 3.5. Runtime value injection 3.5.1. Injecting external values 3.5.2. Wiring with the Spring Expression Language 3.6...

    java面试题

    答:委托就是将方法作为一个参数带入另一个方法叫做委托,事件是一种特殊的委托。 应用程序域? 答:应用程序域可以理解为一种轻量级的进程,起到安全的作用,占用资源小。 Class.forName作用? 答:调用该访问返回...

    ssh(structs,spring,hibernate)框架中的上传下载

     我们前面已经指出Oracle的Lob字段和一般类型的字段在操作上有一个明显的区别--那就是你必须首先通过Oracle的empty_blob()/empty_clob()初始化Lob字段,然后获取该字段的引用,通过这个引用更改其值。所以要完成对...

    spring-framework-reference-4.1.2

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密...高级应用、Spring核心之IoC、Spring核心之AOP、程序调试与发布等内容...

    J2EE应用开发详解

    76 5.5.2 JavaBean动作 78 5.6 隐式对象 78 5.6.1 request对象 78 5.6.2 response对象 78 5.6.3 application对象 78 5.6.4 out对象 79 5.6.5 page对象 79 5.6.6 session对象 79 5.6.7 exception对象 80 5.6.8 ...

    spring-framework-reference4.1.4

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    JAVA核心知识点整理(有效)

    1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM ........................

Global site tag (gtag.js) - Google Analytics