Struts 2 Interceptor 实例

7.6. Interceptor

7.6.1. Session

在 web.xml 文件中定义 Session 超时时间

<session-config>
    <session-timeout>30</session-timeout>
</session-config>			

创建拦截器程序

package cn.netkiller.interceptor;

import java.util.Map;
import java.lang.Override;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class SessionInterceptor extends AbstractInterceptor {

	private static final long serialVersionUID = 8347994918002285514L;

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		Map<String, Object> session = invocation.getInvocationContext().getSession();
		if (session.isEmpty())
			return "nosession"; // session is empty/expired
		return invocation.invoke();
	}
}

配置拦截器

	<package name="mobile" extends="main" namespace="/mobile">
		<global-results>
			<result name="nosession" type="redirectAction">
				<param name="actionName">Index</param>
				<param name="namespace">/mobile</param>
			</result>
		</global-results>
		<interceptor name="session" class="cn.netkiller.SessionInterceptor" />
		<interceptor-stack name="sessionExpirayStack">
    		<interceptor-ref name="defaultStack"/>
    		<interceptor-ref name="session"/>
   		</interceptor-stack>
   		<default-interceptor-ref name="sessionExpirayStack" />

		<action name="testAction" class="TestClass">
    		<interceptor-ref name="sessionExpirayStack" />
    		<result name="success">success.jsp</result>
    		<result name="error">error.jsp</result>
  		</action>
  	</package>
时间: 2024-08-03 12:35:48

Struts 2 Interceptor 实例的相关文章

创建Web应用和Struts框架配置文件实例

web|创建 创建Web应用的配置文件 对于Struts应用,它的配置文件web.xml应该对ActionServlet类进行配置,此外,还应该声明Web应用所使用的Struts标签库,本例中声明使用了三个标签库: Struts Bean.Struts HTML和Struts Logic标签库.例程1为web.xml的源代码. 例程1 web.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE w

STRUTS 2单元测试实例

当程序员编写完成程序的时候,他(她)如果保证程序的正确性呢?当然要进行测试,程序员一般要编写一个程序测试目标程序的正确性.这样的测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能.这种基于程序员的测试叫做单元测试. 单元测试原理 单元测试的原理其实很简单.就是某一条件下测试期待结果和实际结果是否一致.例如我们编写如程序清单2.1所示Java类,该类有一个方法sum. package com.kingbegin; public clas

简单模拟struts中的Interceptor的调用过程遇到的问题

问题描述 简单模拟struts中的Interceptor的调用过程遇到的问题 不明白struts中Interceptor的调用过程(Interceptors的遍历过程),自己写了个小程序测试.得不到想要的结果 求大神指点啊~~ 代码如下: public class Interceptor { Invocation test; String name; public Interceptor(String name){ this.name=name; } public String intercep

struts应用

问题描述 利用MyEclipse软件设计一个struts的应用实例,实现最基本的增删改查业务中的一个就可以了,但是要求显示页面要美观一些,请问哪位高手帮帮忙呀 解决方案 解决方案二:自己写..解决方案三:你什么问题呀?要源码?这个真没有解决方案四:这个你可以在网上直接搜一下实例..再参考一下..解决方案五:你能说明一下你的用途吗?解决方案六:自己写把,那样有提高的!解决方案七:感谢各位的建议,哪位有源码能打包发给我么,要求运用到servlet.action.dispatchaction

tomcat-jsp为什么总是提示错误

问题描述 jsp为什么总是提示错误 解决方案 1.class是否能够编译过,看你还是红色的,应该还是编译不过. 2.看看配置文件是否加了包名http://blog.knowsky.com/234617.htm 解决方案二: 人家不是说不能创建interceptor实例吗?检查看看是不是new了他的实例,这应该是个借口或是抽象类吧 解决方案三: 继承抽象类必须实现类中的抽象方法. 解决方案四: 看见你的标签struts和jsp和那个图片我也给一个链接.不是本人.刚刚看到的某博客为什么每次新建一个w

jsp-Struts中有没有办法在渲染每个UI控件时都执行一段代码

问题描述 Struts中有没有办法在渲染每个UI控件时都执行一段代码 我有这么个需求:希望能通过数据库配置来指定每个页面上的每个UI控件是否最终显示出来.表结构例如: page | component_id | is_display 有什么办法能够加个拦截器之类的东西,在Struts渲染每个UI控件之前能执行这个拦截器,在拦截器里能取到当前被渲染的控件对象,并修改控件对象的属性吗? 我只知道Struts有Interceptor,但貌似只是拦截后台Action的,不知道是不是能处理UI控件. 请各

MyBatis是怎么玩的

MyBatis MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录. 在深入的了解MyBatis之前,我们先来看一下,没有MyBatis的时候,我们是怎么去处理与数据库的交互的. 一.从JDBC开始 JD

jsp-struts 请求路径问题

问题描述 jsp-struts 请求路径问题 jsp > struts 有没有实例的,大神们,给个完整的例字 解决方案 struts中JSP表单提交路径的问题jsp和struts图片上传的路径问题JSP中的路径问题 . 解决方案二: http://download.csdn.net/detail/ayanami001/1243073

Struts Spring Hibernate (SSH) 整合实例

首选创建web.xml 主要是配置Struts的ActionServlet和Spring的字符过滤器 <?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="