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
随机推荐
- Unity3D 发布成PC端常用设置
本文,基于Unity 5.6pro版本来发布PC端.文中若有不妥之处,欢迎各位指出! 一.如何去掉Unity官方水印? 首先,你需要pro版本的Unity3D.如果,你是personal版本的话,就需 ...
- BSON入门
1.概念BSON(Binary Serialized Document Format)是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组 ...
- tomcat修改域名和访问域名时去掉项目名
打开tomcat安装目录,根据路径找到 server.xml 路径D:\apache-tomcat-7.0.70\conf\server.xml 打开后 找到这一段 <Connector ...
- C# Uploadify 文件上传组件的使用
一.页面的构建 1.要引用的JS和CSS <link href="../css/jquery-ui.css" rel="stylesheet" type= ...
- [转]微信小程序,开发大起底
本文转自:http://blog.csdn.net/baiyuzhong2012/article/details/54378497 作者简介:张智超,北京微函工坊开发工程师,CSDN微信开发知识库特邀 ...
- PowerDesigner从SqlServer数据库导入数据模型
Powerdesigner 从数据库导入数据 第一步, 打开 powerdesigner, 在菜单选择 [File] 选项, 然后在弹出的下拉单中选择 [Reverse Engineer]选项,再选择 ...
- 检测SQL Server表占用空间大小SQL
检测SQL Server表占用空间大小SQL,要先选择需要查询的数据库,然后点击执行下面脚本. ),ROWS ),reserved ) ,Data ) ,index_size ) ,Unused ) ...
- php 不用第三个变量 交换两个变量的值汇总
//方法一:$a ="abc";$b="def"; $a = $a^$b;$b = $b^$a;$a = $a^$b; //方法二:list($a, $b)= ...
- sql and csharp: Split Function
T-SQL: declare @int int,@prov int,@city int,@str nvarchar(500) set @str='天河麗特青春:中國廣東省廣州市天河區天河路623號天河 ...
- 【转载】图解MySQL MSI方式安装方法
********************************** 后来发现图片是百度的被封了.有空再换下吧. 一般百度经验这样的链接是不会失效的,大家可以百度查看. *************** ...