Struts2 拦截器 理解

原创 2011年01月19日 22:41:00

拦截器   理解 原理 作用 事例

 

对于任何 MVC框架来说,他们都会完成一些通用的控制逻辑:例如解析请求参数,类型转换,将请求参数封装成DTO,执行输入校验,解析文件上传表单中的文件域,防止表单多次提交……这些操作又不是所有Action都需要实现的,所以需要动态的方式来自由组合。Struts 2 的做法是,它把大部分核心控制器需要完成的工作按功能分开定义,每个拦截器完成一个功能。而这些拦截器可以自由选择,灵活组合,开发者需要使用哪些拦截器,只需要在 struts.xml 文件中指定使用该拦截器即可。

 

拦截器可以说相当于是个过滤器:就是把 不想要的或不想显示的内容给过滤掉。拦截器可以抽象出一部分代码可以用来完善原来的action。同时可以减轻代码冗余,提高重用率。

比如在登入一个页面时,如果要求用户密码、权限等的验证,就可以用自定义的拦截器进行密码验证和权限限制。对符合的登入者才跳转到正确页面。这样如果有新增权限的话,不用在action里修改任何代码,直接在interceptor里修改就行了。

 

拦截器提供了更高层次的解耦,目标代码无需手动调用目标方法,而是由系统完成,从而将这种调用从代码层次上升到更高层次,从而提供了更高层次的解耦。计算机本身是无法自动调用拦截器方法,它甚至无法知道到底是应该调用哪个拦截器。对Struts 2框架而言,程序通过配置文件来管理拦截器,从而让系统明白: 何时应该调用哪个拦截器。

 

  拦截器的用法非常灵活,Struts 2 允许将完成各种小功能的方法定义成小粒度的拦截器,如果有一些拦截器经常需要固定在一起使用,又可以将这批小粒度的拦截器定义成大粒度的拦截器栈。从结构上来看,拦截器栈相当于多个拦截器的组合;通过组合不同的拦截器,我们能以自己需要的方式来组合 Struts 2 框架的各种功能;通过扩展自己的拦截器,我们可以无限扩展 Struts 2 框架。因为拦截器是通过配置文件指定的,因此通过拦截器来引入通用操作的方式,完全是可插拔式的,当系统需要执行这些通用操作时,则配置文件引入这些拦截器即可;如果系统不需要执行这些通用操作,则在配置文件中取消引入即可。

 

Struts2拦截器的使用心得和理解

一、先来说说在项目中遇到的问题:由于需要
  • a837199685
  • a837199685
  • 2014年06月26日 15:14
  • 3249

谈谈 Struts2 的拦截器

套话 相信很多人都用过 Struts2 了,当然,对 Struts2 的原理也都比较了解。之前在一个项目中就已经用到了,当初的理解也仅仅是局限在应用的层面上,对于更深层次的原理、机制,了解的并不是...
  • happylee6688
  • happylee6688
  • 2014年06月27日 18:01
  • 1707

struts2 注解配置拦截器 实例

/** * */ package com.wonders.stpt.contractReview.action; import java.util.ArrayList; import jav...
  • z69183787
  • z69183787
  • 2014年08月08日 15:49
  • 10638

.Java程序员从笨鸟到菜鸟之(四十七)细谈struts2(九)内置拦截器和自定义拦截器详解(附源码)

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188        在上一篇博客中,我们一起看了拦截器的具体实现原理,并且看了一下源码(细谈s...
  • csh624366188
  • csh624366188
  • 2012年05月08日 12:24
  • 11167

Struts2控制器问题

1、控制器:核心组件(框架提供的) Servlet VS. Filter Servlet:(控制器) 1、每一个Servlet内存中唯一。 2、load-on-startup就可以使Servl...
  • qq_16103331
  • qq_16103331
  • 2016年09月05日 21:36
  • 364

Struts2中的拦截器详解

拦截器是什么拦截器是一种可以在让用户在Action执行之前和Result执行之后进行一些功能处理的机制。 拦截器在action执行之前和result执行之后的顺序是相反的,可以看下图: 也就是说执...
  • u010870518
  • u010870518
  • 2015年05月24日 13:40
  • 3759

Struts2拦截器&拦截器栈 实例:登录验证拦截器

本篇源自 java1234小峰 尊重原创 热爱生活 Struts2 拦截器是在访问某个Action 或Action 的某个方法,字段之前或之后实施拦截,并且Struts2 拦截器是可 插拔的,拦截...
  • conglinyu
  • conglinyu
  • 2017年02月14日 22:02
  • 562

struts2的常用拦截器-----

Struts2(XWork)提供的拦截器的功能说明:   拦截器 名字 说明 Alias Interceptor alias 在不同请求之间将请求参数在不同名字件转换...
  • wenzhihui_2010
  • wenzhihui_2010
  • 2013年09月26日 16:09
  • 774

自己实现Struts2(六)实现参数拦截器并调试框架

上一章自己实现Struts2(五)实现StrutsPrepareAndExecuteFilter我把Struts2的核心拦截器StrutsPrepareAndExecuteFilter实现好了,现在其...
  • TimHeath
  • TimHeath
  • 2017年03月26日 20:29
  • 777

struts2的内置拦截器

一、params拦截器 params 拦截器提供了框架必不可少的功能,将请求中的数据设置到Action中的属性上。 二、staticParams拦截器 staticParams拦截器是将配置文件...
  • qq1134550437
  • qq1134550437
  • 2016年07月25日 19:24
  • 757
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts2 拦截器 理解
举报原因:
原因补充:

(最多只允许输入30个字)