最近在用ssh框架写一个项目,是基于全注解的,上网搜了搜,这才发现全注解的struts的拦截器跟基于xml的拦截的写法略有不同,在这里小结一下,以备以后在写的时候忘了该怎么用。
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.convention.default.parent.package"
value="crud-default" />
<!-- 一定要继承自convention-default -->
<package name="crud-default" extends="convention-default" namespace="/">
<interceptors>
<!-- 你的拦截器 -->
<interceptor name="checklogin" class="com.kaishengit.interceptor.LoginInterceptor"></interceptor>
<!-- 基于paramsPrepareParamsStack, 增加store interceptor保证actionMessage在redirect后不会丢失 -->
<interceptor-stack name="crudStack">
<interceptor-ref name="store">
<param name="operationMode">AUTOMATIC</param>
</interceptor-ref>
<interceptor-ref name="paramsPrepareParamsStack" />
<!-- 在拦截器栈里引入你所加的拦截器 -->
<interceptor-ref name="checklogin">
<param name="loginUser">user</param>
<param name="exclude">tiaozhuan</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="crudStack" />
<global-results>
<result name="login" type="redirectAction">
<param name="actionName">tiaozhuan</param>
<param name="namespace">/</param>
</result>
</global-results>
</package>
</struts>
LoginInterceptor.java
package com.kaishengit.interceptor;
import java.util.Map;
import java.util.Set;
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 loginUser;//session 中放的值;
private String exclude;//不需要拦截的页面;
@Override
public String intercept(ActionInvocation invocation) throws Exception {
Set<String> set = TextParseUtil.commaDelimitedStringToSet(exclude);
System.out.println(invocation.getProxy().getActionName());
if (set.contains(invocation.getProxy().getActionName())) {
return invocation.invoke();
} else {
Map<String, Object> session = invocation.getInvocationContext().getContext().getSession();
if (session.get(loginUser) != null) {
return invocation.invoke();
}
}
return "login";
}
public String getLoginUser() {
return loginUser;
}
public void setLoginUser(String loginUser) {
this.loginUser = loginUser;
}
public String getExclude() {
return exclude;
}
public void setExclude(String exclude) {
this.exclude = exclude;
}
}
分享到:
相关推荐
这个基于全注解的SSH完整例子旨在帮助开发者快速理解和掌握这三大框架的集成与应用。 Struts是MVC(Model-View-Controller)设计模式的一个实现,主要用于处理用户的请求并控制应用程序流程。在全注解的配置下,...
Struts2 框架是 SSH2 架构的重要组成部分,提供了一种强大的MVC(模型-视图-控制器)设计模式实现。...这种基于拦截器的登录验证方法是 SSH2 框架中常见且实用的实践,对于开发大型企业级应用非常有价值。
【基于注解的SSH整个框架】是一个集成的Java Web开发框架,它结合了Spring、Struts2和Hibernate三个主流的开源框架。这个框架的核心目的是为了简化企业级应用的开发过程,提高开发效率,并且便于维护。以下是关于SSH...
标题中的"ssh+aop+log4j+日志拦截器+注解"涉及到的是Java Web开发中的几个核心组件和技术,这些技术在构建大型、分布式的企业级应用时常常被使用。下面将详细介绍这些知识点: 1. SSH (Spring, Struts, Hibernate)...
这个“全注解SSH开发”主题着重于使用注解来简化SSH框架的配置,提高开发效率。以下是关于SSH框架及MyEclipse集成开发环境的相关知识点: 1. **Struts2**:Struts2是MVC(模型-视图-控制器)架构模式的一种实现,...
**基于全注解的SSH2框架详解** SSH2框架,即Spring、Struts2和Hibernate的集成,是Java开发Web应用程序的主流框架之一。在这个基于全注解的SSH2框架中,我们将深入探讨如何利用注解来简化配置,提高开发效率,并...
SSH2全注解版本则是对原SSH2库进行注解处理,使得代码更易于理解和使用,同时也可能增强了代码的可维护性和自动化。 SSH2全注解的jar包汇总是一个集合了所有必需的SSH2库文件,经过调试确保兼容性和功能完整性的...
### 基于全注解方式的SSH基础框架解析 #### 概述 本文将详细介绍一个基于Struts2、Spring、Hibernate以及Hibernate Generic DAO构建的基础框架。该框架使用全注解的方式进行配置,并且提供了清晰的包结构和文档,...
maven下基于注解的SSH2 希望可以帮助到需要的人
java 元注解+拦截器实现自定义注解 @CmwAutoWired:自定义依赖注入 注意:注入的接口和实现类需要在同一包名下,注解的是类则无限制 @FieldAnnotation:自定义属性注解 @MethodAnnotation:自定义方法注解 @...
该例子为struts2注解与拦截器demo,利用myEclipse8.5开发,导入刚才后,自动加载所需struts2的jar包,可以直接运行,是初学struts2注解、拦截器很好的例子,保证10分钟学会2种技术,愿意分享给大家。
**Struts2** 是一个基于MVC设计模式的Action驱动的Web应用框架,它通过注解可以实现Action类的声明式配置。例如,我们可以在Action类上使用`@Action`注解来指定URL映射,以及在方法上使用`@Result`注解定义结果页面...
而"基于注解的 SSH"则是指在SSH框架中使用注解来简化配置,提高开发效率。 Spring框架是SSH的核心,它提供了一个容器来管理对象(包括依赖注入)以及处理事务。传统的Spring配置通常使用XML文件,但随着Java注解的...
struts2+hibernate+spring很详细的全注解资源配置
在这个基于全注解的SSH完整例子中,我们将深入探讨如何利用注解来简化配置,使得开发过程更加简洁。本文将详细介绍SSH框架中的核心概念、注解的使用以及它们如何协同工作。 首先,Spring框架是SSH的核心,它提供...
"Eclipse基于注解方式搭建SSH框架"项目展示了如何在Eclipse环境中利用注解驱动的方式集成Struts2、Spring和Hibernate,实现了一个包含注册功能的Web应用。项目中使用了JPA注解简化了数据库交互,并通过数据库脚本...
在文档提供的信息中,作者雷筱珍通过“完全基于注解方式SSH框架项目设计”这篇文章,向读者详细阐述了SSH框架项目设计中注解应用的具体方法。文章中提到的参考文献,如《Struts, Hibernate, Spring集成开发宝典》和...
在全注解SSH实例中,Struts2的注解如`@Action`, `@结果`等将用于定义控制器行为和视图映射,简化了以往XML配置的繁琐过程。 Spring框架则提供依赖注入(DI)和面向切面编程(AOP)等功能,增强了代码的可测试性和...