当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

Show一下我今天写的interceptor

发表于: 2009-04-22   作者:asialee   来源:转载   浏览次数:
摘要: 前两天试图写一个interceptor,但不知道什么原因,出错了,今天改了一下。 package com.action.inteceptor; import java.util.Date; import javax.servlet.http.HttpServletRequest; import org.apache.commons.logging.Log; impor
前两天试图写一个interceptor,但不知道什么原因,出错了,今天改了一下。
package com.action.inteceptor;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.StrutsStatics;

import com.domain.SiteStatistic;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.service.SiteStatisticService;

@SuppressWarnings("serial")
public class AccessInteceptor extends AbstractInterceptor {
	
	private static Log logger = LogFactory.getLog(AccessInteceptor.class);
	private SiteStatisticService siteStatisticService;

	@Override
	public String intercept(ActionInvocation invocation) 
		throws Exception {
		logger.info("The intercept has been invoked");
		
		ActionContext context = invocation.getInvocationContext();
		HttpServletRequest request = (HttpServletRequest)context.get(StrutsStatics.HTTP_REQUEST);
		
		SiteStatistic siteStatistic = new SiteStatistic();
		siteStatistic.setAccessTime(new Date());
		siteStatistic.setDescription("test");
		siteStatistic.setIpAddress(request.getRemoteAddr());
		
		siteStatisticService.addSiteStatistic(siteStatistic);
		return invocation.invoke();
	}

	public SiteStatisticService getSiteStatisticService() {
		return siteStatisticService;
	}

	public void setSiteStatisticService(
			SiteStatisticService siteStatisticService) {
		this.siteStatisticService = siteStatisticService;
	}

}


   下面是我的Spring的配置文件,但有个问题,Struts2的Action是每次请求都会产生一个,所以我们要设置bean为prototype,不能为单例,但不知道inteceptor要不要设置,感觉它是一个无状态的Bean,故我将它设置成prototype. 不知道我这里设置的对不对,请谁给我解释一下。
<bean id="accessInteceptor" class="com.action.inteceptor.AccessInteceptor" >
			<property name="siteStatisticService">
				<ref bean="siteStatisticService"/>
			</property>
	  </bean>

下面是struts2的配置文件:
<package name="struts2" extends="struts-default">
		<interceptors>
			<interceptor name="accessInteceptor" class="accessInteceptor" />
			<interceptor-stack name="accessInteceptorStack">
				<interceptor-ref name="accessInteceptor" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
		</interceptors>
		
		
		<action name="testAccess" class="testSiteStatisticAction">
			<interceptor-ref name="accessInteceptorStack" />
			<result name="success">index.jsp</result>
		</action>
		
	</package>



Show一下我今天写的interceptor

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
TreeGrid、Gantt、TimeLine都可以进行最深度的定制。不过俺就不原意多定制了。哈哈! TreeGrid 以及
面对GoogleEarth和微软winWorld、Virtual Earth这些三维地球的冲击,国内三维GIS显得十分单薄,有不
只有一句话,以后加班,也可以保养车子了! 就是上门汽车保养! 他们的官网不敢恭维:www.xiaochexi
从学生时代一直到现在工作,总是喜欢买书。虽然现在网络已经很是发达了,诸如网页、eBook等电子读物
从学生时代一直到现在工作,总是喜欢买书。虽然现在网络已经很是发达了,诸如网页、eBook等电子读物
今天我生日 今天我生日,不过亲爱的各位请别祝贺了。前两天我下半夜睡着睡着,突然想到,还有20年多
今天是我的生日,一个让我印象最深的生日。 今天陪老婆去省产院去检查,老婆肚子里边的宝宝已经35天
最近在项目中把整个UI框架重新做了一下,都是用Jquery实现的,没有使用EXT、EasyUI那一类的UI框架再
最近有点审美疲劳,以往看起来觉得漂亮的界面现在觉得很一般,以前觉得看来还行的界面现在觉得很丑了
利用手中资料装了个5台的小集群玩玩 Master.Hadoop Slave1.Hadoop Slave2.Hadoop Slave3.Hadoop Sla
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号