Struts Interceptor Example

一下文章节选择《netkiller java 手札》

http://www.netkiller.cn/java/struts/interceptor.html

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>

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2016-04-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术碎碎念

LeetCode-1- Two Sum

Given an array of integers, return indices of the two numbers such that they add...

2778
来自专栏青玉伏案

窥探Swift之别具一格的Struct和Class

  说到结构体和类,还是那句话,只要是接触过编程的小伙伴们对这两者并不陌生。但在Swift中的Struct和Class也有着令人眼前一亮的特性。Struct的功...

1897
来自专栏Hongten

java中的Integer的toBinaryString()方法

在一次面试的过程中,遇到过这样的题目,题目的大概意思是:让写出Integer类中的toBinaryString()方法

702
来自专栏大神带我来搬砖

编写高质量的代码——详解Builder模式

假设有一个用有多个属性的java bean,想在得到这个bean的时候,就已经将其属性初始化好 public class Persion { priv...

2666
来自专栏osc同步分享

spring mvc 时间日期转换(@DateTimeFormat 注解)

两种用法示例: @GetMapping("/date") public String datest(@DateTimeFormat(iso=ISO.D...

3249
来自专栏King_3的技术专栏

leetcode-387-First Unique Character in a String

1806
来自专栏技术小黑屋

详解JVM如何处理异常

无论你是使用何种编程语言,在日常的开发过程中,都会不可避免的要处理异常。今天本文将尝试讲解一些JVM如何处理异常问题,希望能够讲清楚这个内部的机制,如果对大家有...

784
来自专栏Python小屋

Python版双链表结构与有关操作

接昨天文章详解Python变量作用域最后的思考题。 class Node: '''节点结构''' def __init__(self, data, left...

2839
来自专栏我的博客

echo、print、print_r、var_dump使用和区别

1、echo — Output one or more strings(输出一个或者多个字符串) 2、print — Output a string(输出一个字...

2707
来自专栏程序员宝库

一些我认为有用有趣的 JDK 方法

在学习JDK的源码过程中我遇到了一些有趣有用的方法,在此之前如果要使用这些工具方法,我首先会想到的是 commons-lang和 guava这样的语言扩展包,但...

2667

扫码关注云+社区