2018.11.29 Struts2中拦截器的学习&项目的实际运用
struts2官方架构

拦截器的创建
第一种方式

第二种方式

看源码AbstractInterceptor 底层已经帮我们写过这些方法了

第三种方式(推荐)

拦截器API学习
放行

前后处理

不放行,直接跳转到一个结果页面
不执行后续的拦截器以及Action,直接交给Result处理结果.进行页面跳转
拦截器配置
三个步骤:(1)注册拦截器 (2)注册拦截器栈 (3)指定默认拦截器栈
觉得难懂的可以看源码(struts-default.xml),只要按照顺序来都是一样的


随便定义一个Action

特殊情况下的处理
测试


拦截器拦截方法的指定(定制方法)
查看struts2中是如何实现的

excludeMethod是不包含的方法的意思,在指定那些方法是拦截的那些是不拦截的。
找到validate的拦截器具体实现类


指定不包含拦截器的类就是在这里

继续往下看父类

之所以能直接指定参数是因为调用了get/set方法 (快速打开当前类中有哪些方法ctrl+o 黑苹果下是 win+o)

struts.xml主配置文件中配置
不拦截的方法

拦截的方法

给Action添加几个方法测试


地址栏输入 http://localhost:8080/Struts2Day04/demo1Action_find

测试拦截的方法 http://localhost:8080/Struts2Day04/demo1Action_update


第二种:修改

两种方式只能存在一种
http://localhost:8080/Struts2Day04/demo1Action_add

http://localhost:8080/Struts2Day04/demo1Action_delete

项目应用
登陆拦截器的实现步骤
1.编写一个登陆拦截器类

2.在配置文件中配置 拦截器

3.配置结果集变量不需要每一个Action都写一遍result节点

4.当点击页面的时候出现页面嵌套的情况,

5.解决办法

测试:成功解决

测试登陆
密码错误的情况
用户名不存在的情况
登陆成功,获取客户列表
2018.11.29 Struts2中拦截器的学习&项目的实际运用的更多相关文章
- 简单理解Struts2中拦截器与过滤器的区别及执行顺序
简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...
- struts2中拦截器与过滤器之间的区别
首先是一张经典的struts2原理图 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标准的过滤器链 c) ...
- 转: Struts2中拦截器与过滤器的区别及执行顺序
当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标准的过滤器链 c) FilterDispatecher会 ...
- Struts2中拦截器的使用与配置
一,拦截器是什么? 拦截器是在Action执行之前和之后执行的代码,是一个类似于过滤器的类: 二,拦截器的作用 拦截器拦截Action的请求,在Action之前或之后实现某项功能: 三,拦截器的特点 ...
- struts2中拦截器与过滤器的区别
1.拦截器是基于java反射机制的,而过滤器是基于函数回调的. 2.过滤器依赖与servlet容器,而拦截器不依赖与servlet容器. 3.拦截器只能对Action请求起作用,而过滤器则可以对几乎 ...
- 说说struts2中拦截器的请求流程一(模拟大致流程)
本文可作为北京尚学堂struts2课程的学习笔记. 首先 什么是拦截器?拦截器能干什么? 拦截器,顾名思义就是拦截对象然后做操作的东西,至于是拦截谁?那自然是拦截action了.能做什么操作呢?你想让 ...
- 2018.11.24 struts2中的OGNL表达式及两者的结合
OGNL表达式 OGNL:对象视图导航语言. ${user.addr.name} 这种写法就叫对象视图导航. OGNL不仅仅可以视图导航.支持比EL表达式更加丰富的功能. 理解图示 使用OGNL准备工 ...
- 2018.11.20 Struts2中对结果处理方式分析&struts2内置的方式底层源码剖析
介绍一下struts2内置帮我们封装好的处理结果方式也就是底层源码分析 这是我们的jar包里面找的位置目录 打开往下拉看到result-type节点 name那一列就是我们的type类型取值 上一篇博 ...
- Struts2 中拦截器和Action的调用关系(写的很好)
http://blog.csdn.net/hackerain/article/details/6991082
随机推荐
- oracle 错误实例分析(ORA-01126)
问题描述 SQL> shutdown immediate ORA-01109: database not open Database dismounted. ORACLE instance sh ...
- 构建标准OpenStack API接口文档
1.构建API接口文档标准参考: http://docs.openstack.org/contributor-guide/api-guides.html 2.构建API接口文档步骤参考下面的Patch ...
- Visual Studio 创建封装自己的代码段(C#)
https://www.cnblogs.com/awaTangjay/p/6644952.html 1.打开vs2012--工具--代码段管理器 2.进入代码管理器之后,语言选择Visual C#,然 ...
- Django自定义登陆验证后台
支持邮箱/手机号/昵称登录,在django1.6.2测试成功.1.models # -*- encoding: utf-8 -*- from django.db import models from ...
- Oracle服务器重命名
转载自:http://www.codesec.net/view/120387.html 因工作需要准备了一台服务器专门按照oracle数据库,并且服务器上安装了windows 2008R2操作系统,在 ...
- [转]解读ASP.NET 5 & MVC6系列(8):Session与Caching
本文转自:http://www.cnblogs.com/TomXu/p/4496445.html 在之前的版本中,Session存在于System.Web中,新版ASP.NET 5中由于不在依赖于Sy ...
- PCA 降维算法详解 以及代码示例
转载地址:http://blog.csdn.net/watkinsong/article/details/38536463 1. 前言 PCA : principal component analys ...
- Nodejs介绍及npm工具使用
一.Nodejs介绍 Nodejs英文网:https://nodejs.org/en/ Nodejs中文网:http://nodejs.cn/ Node.js 是一个基于 Chrome V8 引擎的 ...
- Stage5--Python GUI编程TKinter
Python图形库简要介绍 python提供了多个图形开发界面的库,几个常用Python GUI库如下: Tkinter: Tkinter模块("Tk 接口")是Python的标准 ...
- php基础--取默认值以及类的继承
(1)对于php的默认值的使用和C++有点类似,都是在函数的输入中填写默认值,以下是php方法中对于默认值的应用: <?phpfunction makecoffee($types = array ...






