struts2杀器---Interceptor拦截器

Polyworks脚本开发学习笔记(一)-脚本开发环境 详细的总结和记录了利用Polyworks进行脚本开发的一些方法和心得 阅读详情

 

    struts2是目前java开发中流行的控制层框架,取代了原先的servlet。struts2的惊天创举就是采用了一系列拦截器,对前台请求进行一系列处理, 这一创举开启了面向切面编程的时代,也体现了一种成熟的架构思想。

 

 

    废话少说,show my code,首先在web层定义一个权限拦截器,如下:

public class PrivilegeInterceptor extends MethodFilterInterceptor{

	@Override
	protected String doIntercept(ActionInvocation invocation) throws Exception {
		//获得session,获得登陆标识
		User user = (User) ActionContext.getContext().getSession().get("user");
		//判断标识是否存在
		if(user != null){
			//已登陆
			return invocation.invoke();//放行
		}else{
			//不存在
			return "toLogin";
		}
		
	}
	
}

在web.xml中配置struts2拦截器

<package name="crm" namespace="/" extends="struts-default">
	<!-- 拦截器配置 -->
	<interceptors>
		<!-- 注册自定义拦截器 -->
		<interceptor name="myInter" class="com.iteason.web.PrivilegeInterceptor"></interceptor>
		
		<!-- 注册自定义拦截器栈 -->
		<interceptor-stack name="myStack">
			<!-- 引入自定义拦截器 -->
			<interceptor-ref name="myInter">
				<!-- 配置不拦截的方法 -->
				<param name="excludeMethods">login.regist</param>
			</interceptor-ref>
			
			<!-- 引入默认的拦截器栈 -->
			<interceptor-ref name="defaultStack"></interceptor-ref>
		</interceptor-stack>
	</interceptors>
	
	<!-- 指定默认自定义的拦截器栈为默认拦截器栈 -->
	<default-interceptor-ref name="myStack"></default-interceptor-ref>
	
	//lots of actions
</package>

 

这样就可以用struts2实现权限管理了。

 

配置顺序:

--》配置拦截器   

    |--》注册自定义拦截器

    |--》注册自定义拦截器栈

            |--》引入自定义拦截器并配置拦截方法

            |--》引入struts2的默认拦截器栈

--》配置拦截器

--》指定默认拦截器栈

 

注意

1、自定义的拦截器必须实现的是MethodFilterInterceptor类

2、自定义拦截器栈必须引入struts的默认拦截器

3、这些配置都在某一package下

 

得利捷datalogic扫码枪调试说明 针对得利捷datalogic扫码枪快速调试并,可以根据详细步骤设置扫码枪,并配有tcp调试助手辅以验证,以达到快速调试完成扫码枪的工作。 阅读详情

相关推荐

unity中简单全景搭建

全景场景能够直观的展现一部分区域的全貌,在全景场景中我们能360°观看周围的景象,仿佛自身就在这个场景中,在场景的外部,我们能发现场景就是一个密封的球体,我们是处在球体的内部观察周围,在球内部观察四周看到的都是球的内表面,所以我们看到的全景其实就是贴在密封球体内的一张全景图片。接下来要介绍的就是如何在unity中用一个球体来搭建全景场景。

qq_31791999的博客 3637

SpringMVC拦截器的配置及其细节

preHandle()按照配置的顺序执行,而postHandle()和afterCompletion()按照配置的反序执行。preHandle():在控制器方法执行之前执行,其返回值表示对控制器方法的拦截(false)或放行(true)拦截器的preHandle()返回false之前的拦截器的afterCompletion()会执行。拦截器的preHandle()返回false和它之前的拦截器的preHandle()都会执行。所有的拦截器的postHandle()都不执行。

qq_47637405的博客 695

STM32CubeMX定时器配置

因为只有当 CH2 处于 输入模式 时,硬件才能把这根脚送进滤波器(TI2FP2通道之前要滤波),再生成 TI2FP2 这条支路供 Slave-Mode 控制器使用,也就是说TI2FP2 并不是“独立存在”的,但在CubeMX配置时:如下图,我们只设置Slave Mode和TI1FP1,之后,CH1就自动配置为 Input Capture 了,下图发现,Channel1只能 Input Capture 或者Disable。哪来的主定时器和从定时器呢?把待测 PWM 的高电平当“门”,连接到ETR。

2402_89015641的博客 3188

[SpringMVC]拦截器②(拦截器参数、拦截器链配置)

在这个方法中可以通过返回值来决定是否要进行放行,我们可以把业务逻辑放在该方法中,如果满足业务则返回true放行,不满足则返回false拦截。modelAndView如果处理器执行完成具有返回结果,可以读取到对应数据与页面信息,并进行调整。目前,我们在项目中只添加了一个拦截器,如果有多个,该如何配置?使用request对象可以获取请求数据中的内容,如获取请求头的。原始方法运行后运行,如果原始方法被拦截,则不执行。拦截器最后执行的方法,无论原始方法是否执行。这三个方法中,最常用的是。......

十八岁讨厌编程的博客 817

无刷直流电机矢量控制(四):基于滑模观测器的无传感器控制

无刷直流电机矢量控制,采用转速、电流双环控制,电流环dq解耦,d轴采用id=0控制,q轴采用转速外环。采用滑模观测器(SMO),根据电压电流信息进行电机位置角度动态估算,模型可直接运行,转速和角度跟踪精度较高。 本文整理了该方法的基本原理,介绍了在MATLAB/Simulink中的建模和仿真过程,最后附上完整的模型文件。 一、基本原理 滑模观测器(下文简称SMO)是基于滑模变结构控制方法的一种状态观测器。其针对无刷直流电机转子位置估算的实现过程如下。 假设采用矢量控...

Forster-C的博客 6869

PackML工业标准解析:统一机器状态管理与数据交换的实践指南

在工业自动化与智能制造领域,实现设备间的互联互通与高效协同是核心挑战。这背后依赖于一套标准化的机器行为与数据交换规范,其原理在于通过定义统一的状态模型与接口协议,消除不同厂商设备间的“语言”隔阂。这项技术的核心价值在于大幅降低系统集成复杂度、提升运维效率与生产透明度,是构建数字化工厂的基石。其典型应用场景包括包装机械、离散制造产线等需要多设备协同的领域。本文聚焦的PackML(包装机械语言)标准,正是这一理念的杰出实践,它通过一套严谨的**状态机模型**和**数据标签(PackTags)** 体系,为机器提

weixin_30070339的博客 403

Springmvc学习笔记(四)

22 拦截器 22.1 拦截定义 定义拦截器,实现HandlerInterceptor接口。接口中提供三个方法。 public class HandlerInterceptor1 implements HandlerInterceptor { // 执行Handler方法之前执行 // 用于身份认证、身份授权 // 比如身份认证,如果认证通过表示当前用户没有登陆,需要此方法...

Zoey的学习笔记 224

AI 编程组合之deepseek+vscode+cline插件,使用deepseek大模型实现代码自动生成

本文介绍了VSCODE下cline插件的安装结合DeepSeek-V3,ai编程的组合套件,举了两个例子一个是生成登录页面,一个是生成贪吃蛇游戏

技术博客 7万+

Spring MVC:拦截器开发与控制器接收各类请求参数

Spring MVC组件开发   一、拦截器(p417) 1.1 拦截器的定义 SpringMVC的拦截器与过滤器的区别: 拦截器是使用JDK动态代理实现的,拦截的是应调用方法的拦截 过滤器是使用Filter实现的,拦截的是request对象 Spring MVC可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,它可以在进入处理器之前做一些操作,或者在处理器完成后进行操作...

Derrick 2457

长上下文技术的底层逻辑:Attention、压缩、缓存与跨页推理

如果把模型的参数视为“固化智能”,动态智能(Dynamic Intelligence)——模型不必依赖训练时的记忆,而是可以随时调用外部信息。这一点正在改变大模型的范式:Prompt 不再是输入,而是“操作系统事件”文档不再是知识,而是“模型的临时记忆”模型不再是一段神经网络,而是一个“具备阅读循环的推理引擎”当我们把上下文从 128K 拉到百万级,我们做的不是扩容,而是让模型第一次拥有阅读、回溯、定位、跨页分析的能力。这是一种新的智能。

aifs2025的博客 998

优快云专栏限时活动!福利公告必读!

本人优快云付费专栏周排名27名专业博主,每周文章平均阅读量约7w以上!

FJN110的博客 3155

SpringMVC中拦截器的配置相关总结

配置拦截器 作用: 让声明的拦截器类生效完成单元方法请求的拦截 使用: 在springmvc.xml文件中使用<mvc:interceptors>标签声明拦截的配置信息 在<mvc:interceptors>标签下使用子标签完成拦截器的配置 全局拦截 ...

WangQueBuShiLei的博客 255

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Struts2拦截器Interceptor创建与配置

一、Interceptor类创建这里有一点需要注意:如果放行了,就不会再执行最后return的结果了,参考论坛讨论:https://bbs.youkuaiyun.com/topics/370194837 12楼的回答:楼上是正解,这是struts2的机制,只要调用 invoke()方法后,如果能成功的调用了对应Action类中的方法,strtus2就会按照该方法的返回值去找对应的result,从而忽略拦截器的...

javae100的博客 4152

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

struts2拦截器interceptor的三种配置方法

1、struts2拦截器interceptor的三种配置方法 方法1. 普通配置法 package name="struts2" extends="struts-default"> class="edu.hust.action.RegisterAction">

Golden_lion的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

5.Struts 2拦截器(Interceptor)

任何优秀的MVC框架都会提供一些通用的操作,如请求数据的封装、类型转换、数据校验、解析上传的文件、防止表单的多次提交等。 Struts 2将它的核心功能放到拦截器中实现而不是集中在核心控制器中实现,把大部分控制器需要完成的工作按功能分开定义,每个拦截器完成一个功能,而完成这些功能的拦截器可以自由选择、灵活组合,需要哪些只需要在struts.xml指定即可,从而增加了框架的灵活性,有利于系统解耦。 拦截器的方法在Action执行之前或者执行之后自动的执行,从而将通用的操作动态地插入到了可插拔式。

相互学习 共同进步 1041

Struts2 的核心——拦截器[Interceptor]

详细介绍了 Struts2中拦截器的执行原理、什么是拦截器、拦截器的配置和使用。

乐乐的专栏 3171

浅谈Struts2拦截器Interceptor的设计原理

使用过struts2框架的朋友们都知道 拦截器Interceptor 在struts2中的地位是非常重要的,可以说是struts2在控制流调度部分的核心,并且struts2做为一个MVC框架,之所以在 controller层有如此强大的扩展能力,完全是由其拦截器的设计决定的,我们先看看下面这张图:

FcBayernMunchen的专栏 4962

struts2 拦截器Interceptor

想拦截某个action中的方法,判断有没有登陆,没有登陆就拦截。以前不太会用,用的是过滤器。 现在总结一下拦截器: 1:写拦截器类 public class AuthorizationInterceptor extends MethodFilterInterceptor{ private static final long serialVersionUID = 1L; prot

mingming_vip的专栏 1504

Struts2中的Interceptor拦截器

1.Interceptor简介        struts2中的interceptor它是基于spring aop思想,而aop思想它本质上是通过动态代理来实现,strtus2的拦截器它主要是拦截Action的操作,在action的执行前或执行后进行一些其它的功能操作. 多个拦截器可以形成一个拦截器链,在访问它们时依次访问.2.自定义Interceptor    (1)定义Interceptor ...

sinat_42576042的博客 1297

struts2 拦截器 interceptor

downpour 写道 拦截器是AOP中的概念,它本身是一段代码,可以通过定义“织入点”,来指定拦截器的代码在“织入点”的前后执行,从而起到拦截的作用。正如上面 Struts2的Reference中讲述的,Struts2的Interceptor,其拦截的对象是Action代码,可以定义在Action代码之前或者之后执行拦截器的代码。 接下来,我们将重点讨论一下Struts2中的拦截器的

zsm653983的专栏 1005

Struts2拦截器Interceptor的使用

一、拦截器的使用: 只有用户登录时才可以查看商品,否则点击查看商品时会跳回login登录页面。 struts2.xml中拦截器Interceptor的配置: <interceptors> <!-- 声明自定义的拦截器 --> <interceptor name="myInterceptor" class="Interceptor.MyInterceptor...

BullZeng的博客 1097

struts2 Interceptor怎么写

interceptor是struts2的核心。我们也可以定义自己的interceptor。 jdk代理模式是基于AOP的,struts2的interceptor也是基于AOP的。所以我们可以把interceptor理解为struts2对动态代理的一种封装,与手工实现jdk的动态代理相比,这种封装使得操作变得更为简单。 1. implements Interceptor的自定义inter

u010395804的专栏 1109

Struts2 拦截器(Interceptor )原理和配置

一、Struts2拦截器原理: Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的    拦截器对象,然后串成一个列表,最后一个一个地调用列表中的拦截器。 比如:应用要求用户登陆,且必须为指定用户名才可以查看系统中某个视图资源;否则,系统直接转入登陆页面。对于上面的需求,可以在每个Action的执行实际处理逻辑

voins的博客 5703

Struts2——拦截器(Interceptor)

拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个Action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也提供了一种可以提取Action中可重用的代码的方式。 1、Struts2中内置的拦截器 常见的拦截器: (1)params拦截器 这个拦截器把请求参数设置到相应的Action的属性去,并自动进行类型转换。 (2)modelD

ack_Finding的博客 624

Struts2 Interceptor

Struts2拦截器的原理请求Struts2的action时,Struts2根据配置(Struts.xml)实例化对应的拦截器对象。然后串在堆栈中,从堆栈中一个一个的调用拦截器。Struts2的拦截器是AOP(面对切面编程)的一种实现。Struts2拦截器的实现Struts2自定义的Interceptor必须实现com.opensymphony.xwork2.interceptor.Interce...

NekoRorooo的自习室 397

Struts2拦截器(Interceptor)的生命周期和使用

一、Interceptor的生命周期 1.初始化拦截器 @Override public void init() { // TODO Auto-generated method stub System.out.println("拦截器初始化"); } 2.拦截器执行 @Override public String intercept(ActionInvocation actionInvoca...

哈利路亚里路亚 965
上一篇: B2B、B2C、BOS系统都指哪些?
下一篇: Oracle数据库---helloword
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值