这种配置拦截器方式比struts使用注解配置拦截器的方式简单
配置步骤:
一、先写一个拦截器,因为我们重点在配置,这里我写了个登录拦截器(LoginInterceptor .java),继承AbstractInterceptor
package com.kaishengit.web.interceptor;
import java.util.Map;
import java.util.Set;
import com.kaishengit.pojo.Employee;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.opensymphony.xwork2.util.TextParseUtil;
public class LoginInterceptor extends AbstractInterceptor{
private static final long serialVersionUID = 1L;
private String excludeActionName;//剔除的拦截方法
private String sessionName;//用户名在session中存放的key值
@Override
public String intercept(ActionInvocation invocation) throws Exception {
String actionName = invocation.getProxy().getActionName();//获取当前访问的action名字
Set<String> set = TextParseUtil.commaDelimitedStringToSet(excludeActionName);
if(set.contains(actionName)){
return invocation.invoke();
}else{
Map<String, Object> session = invocation.getInvocationContext().getSession();
Employee employee = (Employee) session.get(sessionName);
if(employee == null){
return "login";//没有登录,跳转到登录页
}else{
return invocation.invoke();
}
}
}
//get set
public String getExcludeActionName() {
return excludeActionName;
}
public void setExcludeActionName(String excludeActionName) {
this.excludeActionName = excludeActionName;
}
public String getSessionName() {
return sessionName;
}
public void setSessionName(String sessionName) {
this.sessionName = sessionName;
}
}
二、在struts.xml中配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="myPackage" extends="struts-default">
<interceptors>
<!--配置自己写的登录拦截器 -->
<interceptor name="loginInterceptor" class="com.kaishengit.web.interceptor.LoginInterceptor"></interceptor>
<!-- 配置一个自己的拦截器栈 -->
<interceptor-stack name="myStack">
<interceptor-ref name="loginInterceptor">
<param name="sessionName">currUser</param>
<param name="excludeActionName">index,login</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack"></default-interceptor-ref>
<global-results>
<result name="login" type="redirectAction">index.php?state=10002</result>
</global-results>
<action name="index" class="com.kaishengit.web.AppAction">
<result>/WEB-INF/views/index.jsp</result>
</action>
....
</package>
</struts>
--end---
分享到:
相关推荐
"Struts2 注解配置 Action 及拦截器几种不同方式写法对应的路径指向" Struts2 注解配置 Action 及拦截器是 Struts2 框架中的核心组件之一,负责处理用户请求并返回响应结果。下面,我们将通过详细的解释和示例代码...
Struts2是一个流行的Java web框架,它极大地简化了MVC(模型-视图-控制器)应用程序的开发。...在实际项目中,结合Struts2的其他功能,如类型转换、结果映射等,注解拦截器可以极大地提升开发效率和代码可维护性。
2. **拦截器的编写和使用**:创建自定义拦截器类,实现`Interceptor`接口,以及如何在配置文件中引用拦截器。 3. **Action的编写**:创建Action类,定义业务方法,使用注解进行配置。 4. **JPA基础**:了解JPA的基本...
在"Struts2 拦截器注解"这个主题中,我们将深入探讨如何利用注解来简化拦截器的配置和使用。 首先,让我们理解什么是Struts2的拦截器。拦截器是一个实现了`Interceptor`接口的Java类,它在Action执行之前或之后执行...
通过配置Struts配置文件或使用注解,我们可以指定拦截器的执行顺序和应用范围。 日志审计是对系统操作进行记录和分析的过程,对于理解系统行为、追踪异常、安全审计等方面至关重要。在Struts中,我们可以通过自定义...
3. **配置拦截器**:拦截器可以通过Struts2配置文件或注解进行配置,指定在哪些Action上使用哪些拦截器。 ### 二、单个Action配置拦截器实例 1. **创建拦截器**:首先,我们需要创建一个实现了`Interceptor`接口的...
- XML配置:在`struts.xml`文件中,使用`<interceptor>`元素定义拦截器,`<interceptor-stack>`元素组合多个拦截器,`<package>`元素下的`interceptors`属性指定拦截器栈。 ```xml <interceptor name=...
通过使用注解,可以将一些基础配置信息从struts.xml文件中移除,让应用不需要配置文件也能正确运行,实现零配置的目标。这种方式不仅可以减少XML配置文件的编写,还可以通过注解的方式直接在Java代码中声明配置信息...
在实际应用中,我们还可以利用Struts2的拦截器(Interceptor)和Spring的AOP结合,实现更灵活的业务逻辑处理。通过在Action类或方法上添加自定义注解,并编写相应的拦截器,可以实现如权限验证、日志记录等功能。 ...
下面将详细讲解Struts2的核心拦截器以及如何在项目中使用它们。 1. **Struts2拦截器概念**: - 在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它通过`ActionInvocation`对象来控制动作的执行流程。拦截...
Struts2中的拦截器可以通过XML配置文件或注解进行声明。例如,`struts-default.xml`中包含了默认的拦截器栈,如`params`拦截器用于处理请求参数,`exception`拦截器用于处理异常,`validation`拦截器进行数据校验。 ...
Struts2 拦截器是框架中一个重要的组件,用于增强Action的处理能力,提供预处理和后处理的功能。在Struts2中,拦截器是基于...在实际项目中,通常会结合Struts2的注解和配置文件来定义拦截器,以满足不同的业务需求。
在Struts2中,拦截器的使用主要基于两个方面:配置文件中的声明式使用和注解的编程式使用。首先,我们来看看配置文件中的声明式使用。在struts.xml或类似的配置文件中,你可以通过`<interceptor>`元素定义拦截器,并...
而"struts2 interceptor annotation plugin"则是Struts2框架提供的一种使用注解来配置拦截器的方式,这种方式更加简洁、直观,减少了XML配置文件的复杂性。 注解(Annotation)是Java编程语言的一个重要特性,它...
在Struts2中,Action是业务逻辑的主要载体,而Interceptor(拦截器)则用于执行一些预定义的任务,如日志、权限检查等。 在传统的Struts2配置中,我们需要在struts.xml文件中定义Action类及其对应的Action方法,...
通过以上详细介绍,我们了解了Struts2中的拦截器和验证框架的基本概念、如何创建自定义拦截器以及如何配置拦截器和使用验证功能。这些知识点对于初学者来说非常重要,能够帮助他们更好地理解和使用Struts2框架。
1. **拦截器配置**:在`struts.xml`配置文件中,我们需要定义拦截器并将其与特定的Action关联。例如,可以创建一个名为`LoginInterceptor`的拦截器,然后在`<package>`标签内使用`<interceptors>`和`<interceptor>`...
在Java Web开发中,拦截器(Interceptor)是一个重要的概念,特别是在使用MVC框架如Struts2时。拦截器可以理解为一种预处理和后处理机制,它在请求到达控制器之前和离开控制器之后进行操作,例如日志记录、权限检查...
在Struts2的配置文件(struts.xml)中,可以通过`<interceptor>`和`<interceptor-stack>`标签定义拦截器及其顺序。 Java中的动态代理(Dynamic Proxy)是实现拦截器机制的基础。动态代理允许我们在运行时创建一个...
拦截器是一个实现了`Interceptor`接口的类,它们按照配置的顺序组成一个拦截器栈。当请求到达Action时,Struts2会按照栈的顺序依次调用每个拦截器的`intercept()`方法,最后执行Action的业务逻辑。 在实现登录功能...