Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Struts2 拦截器详细配置过程

Struts2 拦截器详细配置过程

作者头像
林老师带你学编程
发布于 2022-11-30 02:28:23
发布于 2022-11-30 02:28:23
40900
代码可运行
举报
文章被收录于专栏:强仔仔强仔仔
运行总次数:0
代码可运行

     Struts2中一个很重要的功能就是拦截器,例如你不想让没有登录的人进入到你其他的action就必须进行验证拦截。其实就是在用户进入action之前进行判断。拦截器有很多种用法,例如设置全局拦截器,方法拦截,设置白名单,黑名单等。这里我就介绍最常用的针对于特定的action进行拦截。

1.首先在struts.xml配置文件中进行拦截器的配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?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.enable.DynamicMethodInvocation" value="false" />
	
	<package name="spring-struts" namespace="/" extends="struts-default"> 
		<!-- 定义权限控制拦截器 -->
		<interceptors>
			<interceptor name="authority" class="com.tp.action.authinterceptor<span style="font-family: Arial, Helvetica, sans-serif;">"/></span>
		    </interceptors>
		<!-- 定义全局处理结果 -->
		<global-results>
			<!-- 逻辑名为login的结果,映射到/login.jsp页面 -->
			<result name="login">/login.jsp</result>
		</global-results>
         <action name="luceneAction" class="LuceneAction">	
			<!-- 使用拦截器 -->
			<interceptor-ref name="defaultStack" />
			<interceptor-ref name="authority" />
         </action>
	</package>
</struts>

2.实现拦截器核心类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.tp.action;
import javax.servlet.http.HttpSession;  
import org.apache.struts2.ServletActionContext;  
import com.opensymphony.xwork2.Action;  
import com.opensymphony.xwork2.ActionInvocation;  
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;  
import com.tp.entity.Users;
@SuppressWarnings("serial")
public class AuthInterceptor extends AbstractInterceptor{  
  @Override  
  public String intercept(ActionInvocation invocation) throws Exception {  
      HttpSession session = ServletActionContext.getRequest().getSession();  
      Users userName = (Users)session.getAttribute("users");  
      if(userName == null || userName.getAcount()==""){//错误,回到登录界面  
          return Action.LOGIN;  
      }else{  
          return invocation.invoke();  
      }  
  }  
}  

这里有几个地方需要注意:一个是class类对应的地址应该是拦截器类的地址,二是这个拦截器只对action有用,像jsp这种就拦截不了,需要使用过滤器进行过滤才行。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
struts2关于action拦截器使用方法 现记录如下
struts2关于action拦截器使用方法 现记录如下 以便将来取用 struts2 与spring与hibernate整合 struts2中拦截action 业务要求: 后台输入 http://localhost:8080/mia/mia-admin/mia-login.jsp 为登入页面 验证用户名和密码 正确则进入后台试图 ,但退出时 ,复制后台某个页面地址, 在浏览器输入回车 ,则转入登入页面 http://localhost:8080/mia/mia-admin/addarti
Java帮帮
2018/03/15
7200
struts2(五)之struts2拦截器与自定义拦截器
前言   前面介绍了struts2的输入验证,如果让我自己选的话,肯定是选择xml配置校验的方法,因为,能使用struts2中的一些校验规则,就无需自己编写了,   不过到后面应该都有其他更方便的校验方法,而不会使用struts2内置的这些校验。   参考博文:http://www.cnblogs.com/whgk/p/6593916.html        http://www.cnblogs.com/cxyzyh2017/p/6622827.html         一、struts2拦截器概述   1
用户1195962
2018/01/18
1.1K0
struts2(五)之struts2拦截器与自定义拦截器
struts的内置_struts自定义拦截器
一般,我们的web应用都是只有在用户登录之后才允许操作的,也就是说我们不允许非登录认证的用户直接访问某些页面或功能菜单项。我还记得很久以前我的做法:在某个jsp页面中查看session中是否有值(当然,在用户登录逻辑中会将用户名或者用户对象存入session中),如果session中用户信息为空,那么redirect 到登录页面。然后在除了登录页面外的其它所有需要验证用户已登录的页面引入这个jsp 。
全栈程序员站长
2022/11/10
3870
struts2之配置拦截器
struts2之配置拦截器 本人独立博客https://chenjiabing666.github.io 什么是拦截器 java里的拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。在AOP(Aspect-Oriented Programming)中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。 拦截器是可插拔式的,
爱撒谎的男孩
2018/05/10
1.1K1
java之struts2之拦截器
1.struts2能完成数据的设置,数据的封装,数据的类型转换,数据的校验等等。struts2是如何来完成这些功能的?struts2的所有功能都是由拦截器来完成的。
Vincent-yuan
2019/09/11
9400
java之struts2之拦截器
struts2使用AbstractInterceptor实现拦截器[通俗易懂]
2.使用abstractinterceptor抽象类来实现自定义拦截器 完成用户是否登陆判断
全栈程序员站长
2022/08/27
3000
Struts2拦截器的简单应用,登录权限拦截器及与过滤器的区别(八)
上一章简单介绍了Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七),如果没有看过,请观看上一章
全栈程序员站长
2022/08/28
8090
Struts2拦截器的简单应用,登录权限拦截器及与过滤器的区别(八)
struts2拦截器详解_器乐团期末总结
1、 实现接口com.opensymphony.xwork2.Intercepter(或继承com.opensymphony.xwork2.AbstractInterceptor)
全栈程序员站长
2022/11/08
2600
Struts2拦截器
拦截器分类:1) struts框架自带拦截器: sturts-default.xml文件中里有多种拦截器如params.......等, 在struts.xml中只要包extends了struts-default,那么每个Action都拥有一些拦截器,拥有的这些叫默认拦截器栈defaultStack 2) 自定义拦截器(权限控制等) 如何自定义拦截器: 1) com.opensymphony.xwork2.interceptor.Interceptor接口 ----------> (只有init,destroy,intercept方法) 要实现接口里的三个方法: public void destroy(){} public void init(){} public String intercept(ActionInvocation invocation) throws Exception {
HUC思梦
2020/09/03
4110
struts2拦截器学习
提到拦截器,使我不得不 想起武侠剧中劫匪们常说的一句话:“此山是我开,此树是我栽,要打此路过,留下买路财!”。难不成程序中也有“打劫”的,说的没错,拦截器就是个打劫的。 在现实生活中,劫匪劫的大都是钱财,当然也有别的什么,那么程序中的“劫匪”劫的又是什么呢?或者说程序中为什么需要它?在我们的日常编程中少不了写一些 重复的代码,例如在一个地方中写了一段代码,后来发现这段代码在其它地方中同样需要,在传统的编程中我们一定会采取复制、粘贴的办法。如果这段代码只在这 一两个处需要,我们采取这种办法,还说的过去,但是如果系统对这段代码过于依赖,也就是这段代码在系统中出现的过多,如果那一天我们发现这段代码中在某些 地方还需要完善,我们是不是要着个修改它们呢?我估计没有人会这么做,它严重违反了软件开发中一条非常重要的DRY规则,不写重复代码。说了这么多你一定知道我们为什么需要在程序中弄一个“劫匪”了吧。这个“劫匪”就是并不是劫取什么东西,只是为了在某个程序执行前后,动态的增加一些功能(以前所写通用代码块)或进行一些检查工作。那么这个拦截器到底是怎么实现的呢?实际上它是用Java中的动态代理来实现的,具体可以参考《设计模式学习笔记(十六)—Proxy模式》。
全栈程序员站长
2022/11/08
2550
struts2拦截器学习
Struts2拦截器应用 - 自定义拦截器实现
在Struts2框架中,拦截器(Interceptors)是一种强大的机制,用于在请求的处理流程中插入自定义的逻辑。通过使用拦截器,我们可以在请求到达Action之前、Action执行期间以及Action返回结果之后执行一些操作,例如身份验证、日志记录、异常处理等。本文将深入介绍Struts2拦截器的概念、使用方法,并结合实际项目场景,演示如何实现和应用自定义拦截器。
王也518
2023/12/20
4400
Struts 2拦截器
上一章我们深入学习了Struts 2框架的配置,包括Action的配置、Result的配置等等,使我们对Struts 2框架有了更深的了解。Struts 2的核心包括Action、Result和拦截器。拦截器是Struts 2的一个重要特性,实际上Struts 2框架的核心功能都是由拦截器负责完成的。
张哥编程
2024/12/17
950
Struts 2拦截器
详解Struts2拦截器机制
Single
2018/01/04
6340
详解Struts2拦截器机制
Struts2拦截器详解
action代理对象创建之后,action目标处理逻辑方法执行之前!!可以在代码中进行调试断点测试(测试时是通过debug调试项目)!!!
全栈程序员站长
2022/11/10
7770
简述struts2拦截器的作用_springmvc登录拦截器
转自:http://developer.51cto.com/art/200906/126894.htm
全栈程序员站长
2022/11/08
3890
Struts2【拦截器】
什么是拦截器 拦截器Interceptor…..拦截器是Struts的概念,它与过滤器是类似的…可以近似于看作是过滤器 为什么我们要使用拦截器 前面在介绍Struts的时候已经讲解过了,Struts为我们实现了很多的功能,比如数据自动封装阿..文件上传功能阿….Struts为我们提供的这些功能都是通过拦截器完成的…… 数据自动封装通过<interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersIntercep
Java3y
2018/03/15
9400
Struts2【拦截器】
SSH框架之旅-struts2(4)
AOP 是 Aspect Objected Prograing(面向切面编程)的缩写。struts2 中的拦截器就是这种编程策略的一种实现,AOP 思想是在基本功能上,不通过修改源代码就可以扩展功能,提高代码的重用性。
Wizey
2018/08/30
5940
SSH框架之旅-struts2(4)
Struts 拦截器
需要继承该抽象类,并实现其方法 即 com.opensymphony.xwork2.interceptor.AbstractInterceptor 抽象类
mySoul
2019/03/25
8170
Struts2第四天:Struts2的拦截器和标签库
n Interceptor:拦截器,拦截是客户端对Action的访问。更细粒度化的拦截。(拦截Action中的具体的方法)。
AlbertYang
2020/09/08
4260
struts2使用拦截器完成登陆显示用户信息操作和Struts2的国际化
  其实学习框架,就是为了可以很好的很快的完成我们的需求,而学习struts2只是为了替代之前用的servlet这一层,框架使开发更加简单,所以作为一个小菜鸟,特别感谢那些超级无敌变态开发的框架供我们
别先生
2018/01/02
1.2K0
struts2使用拦截器完成登陆显示用户信息操作和Struts2的国际化
相关推荐
struts2关于action拦截器使用方法 现记录如下
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验