Struts2_day04

上节内容

今天内容

Struts2拦截器概述

拦截器底层原理

重要的概念

自定义拦截器

自定义登录拦截器

Struts2的标签库

Struts2表单标签(会用)

Struts2总结

Struts2_day04

上节内容

1什么是值栈

(1)action和servlet区别

2 如何获取值栈对象

3 值栈内部结构

(1)root和context

4 向值栈放数据

(1)向值栈放字符串

(2)向值栈放对象

(3)向值栈放list集合

5 从值栈获取数据

(1)从值栈获取字符串

(2)从值栈获取对象

<s:property>

(3)从值栈获取list集合

<s:iterator>

6 EL表达式获取值栈数据

(1)增强request里面getAttribute方法

7 ognl表达式 #、%使用

今天内容

1 拦截器概述

2 拦截器底层原理

3 过滤器和拦截器区别

4 自定义登录拦截器

5 struts2标签库(会用)

6 struts2表单标签

Struts2拦截器概述

1 struts2是框架,封装了很多的功能,struts2里面封装的功能都是在拦截器里面

2 struts2里面封装了很多的功能,有很多拦截器,不是每次这些拦截器都执行,每次执行默认的拦截器

3 struts2里面默认拦截器位置

4 拦截器在什么时候执行?

(1)在action对象创建之后,action的方法执行之前

拦截器底层原理

1 拦截器底层使用两个原理

第一个 aop思想

(0)后面在spring里面把aop做更深层次分析

(1)文字描述:

Aop是面向切面(方面)编程,比如我们有基本功能,想扩展功能,不通过修改源代码方式扩展功能

(2)画图分析:

第二个 责任链模式

(1)在java中有很多的设计模式,责任链模式是其中的一种

(2)责任链模式和过滤链很相似的

责任链模式:

要执行多个操作,有添加、修改、删除三个操作。

首先执行添加操作,添加操作执行之后 做类似于放行操作,执行修改操作,修改操作执行之后做类似于放行操作,执行删除操作

过滤链:一个请求可有多个过滤器进行过滤,每个过滤器只有做放行才能到下一个过滤器

2 aop思想和责任链模式如何应用到拦截器里面?

(1)文字描述:

- 拦截器在action对象创建之后,action的方法执行之前执行

- 在action方法执行之前执行默认拦截器,执行过程使用aop思想,在action没有直接调用拦截器的方法,使用配置文件方式进行操作

- 在执行拦截器时候,执行很多的拦截器,这个过程使用责任链模式

-- 假如执行三个拦截器,执行拦截器1,执行拦截器1之后做放行操作,执行拦截器2,执行拦截器2之后做放行,执行拦截器3,执行拦截器3之后放行,执行action的方法

(2)画图分析

3 查看过滤器源代码

(1)doFilter()方法 执行action

(2)创建action对象,使用动态代理方式

(3)执行action的方法

(4)执行很多的拦截器,遍历执行

类似于放行的操作的方法

重要的概念

1 过滤器和拦截器区别

(1)过滤器:过滤器理论上可以任意内容,比如html、jsp、servlet、图片路径

(2)拦截器:拦截器只可以拦截action

2 Servlet和action区别

(1)servlet默认第一次访问时候创建,创建一次,单实例对象

(2)action每次访问时候创建,创建多次,多实例对象

Struts2_day04--课程介绍_Struts2拦截器概述&底层原理_重要的概念的更多相关文章

  1. Struts2拦截器概述

    --------------------siwuxie095 Struts2 拦截器概述 1.Struts2 框架封装的很多功能都在 Struts2 的拦截器中 2.Struts2 框架中有很多拦截器 ...

  2. struts2拦截器的实现原理

    拦截器(interceptor)是Struts2最强大的特性之一,也可以说是struts2的核心,拦截器可以让你在Action和result被执行之前或之后进行一些处理.同时,拦截器也可以让你将通用的 ...

  3. struts2拦截器的实现原理及源码剖析

    拦截器(interceptor)是Struts2最强大的特性之一,也可以说是struts2的核心,拦截器可以让你在Action和result被执行之前或之后进行一些处理.同时,拦截器也可以让你将通用的 ...

  4. Spring 拦截器实现+后台原理(MethodInterceptor)

    MethodInterceptor MethodInterceptor是AOP项目中的拦截器(注:不是动态代理拦截器),区别与HandlerInterceptor拦截目标时请求,它拦截的目标是方法. ...

  5. 面试BAT必问的JVM,今天我们来说一说它类加载器的底层原理

    类加载器的关系 类加载器的分类 JVM支持两种类加载器,一种为引导类加载器(Bootstrap ClassLoader),另外一种是自定义类加载器(User Defined ClassLoader) ...

  6. Java拦截器的实现原理

    对于某个类的A方法进行拦截,在A执行前插入一段代码,A执行后也插入一段代码 原理: 写个拦截器,拦截器中包含要插入前后执行的两段代码 interceptor { C();//C方法 D();//D方法 ...

  7. Spring 拦截器实现+后台原理(HandlerInterceptor)

    过滤器跟拦截器的区别 spring mvc的拦截器是只拦截controller而不拦截jsp,html 页面文件的.这就用到过滤器filter了,filter是在servlet前执行的,你也可以理解成 ...

  8. OkHttp拦截器的实现原理

    今天项目中遇到需要将从push接收到的数据按照协议parse成应用层需要的结构化数据类型问题:因为push消息类型繁多,等待解析出的结构化数据类型也多样,有的还需要经过几步的parse过程:而且因为项 ...

  9. mybatis源码分析(5)-----拦截器的实现原理(动态代理+责任链)

    写在前面 MyBatsi 的拦截器模式是基于代理的代理模式.并且myBatis 的插件开发也是以拦截器的形式集成到myBatis 当中. MyBatis 的拦截器已经插件是在org.apache.ib ...

随机推荐

  1. findlibrary returned null产生的联想,Android ndk开发打包时我们应该怎样注意平台的兼容(x86,arm,arm-v7a)

    非常多朋友在开发Android JNI的的时候,会遇到findlibrary returned null的错误,由于某种原因,so没有打包到apk中.以下浅析下引起该错误的原因以及平台兼容性问题. A ...

  2. js 按enter键提交信息

    http://codeigniter.org.cn/forums/thread-10868-1-1.html function keydown(e) {     var currKey=0,e=e|| ...

  3. s:if 标签用法总结和举例

    http://www.360doc.com/content/11/1108/18/6161903_162838014.shtml

  4. python 操作redis之——有序集合(sorted set) (七)

    #coding:utf8 import redis r =redis.Redis(host=") 1.Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中.如果某个成员已经是有序 ...

  5. spring in action 7.1 小结

    0 AbstractAnnotationConfigDispatcherServletInitializer剖析,在Servlet 3.0环境中,容器会在类路径中查找实现ServletContaine ...

  6. CentOS 7 下挂载NTFS文件系统并实行开机自动挂载

    CentOS 7 下想要挂载NTFS的文件系统该怎么办呢? 我们需要一个NTFS-3G工具,并编译它之后在mount就可以了,就这么简单. 首先要进入官网下载NTFS-3G工具 http://www. ...

  7. Ubuntu环境下使用npm安装node模块时报错的处理方法

    错误信息: npm ERR : node: not found : npm ERR! not ok code 0 解决方案: sudo apt-get install nodejs-legacy 也可 ...

  8. 简单集成高大上的ImagePicker无标题文章

    简单集成高大上的ImagePicker无标题文章   现在是个项目就要有图片上传所以下面介绍一下简单高端的图片选择器 感谢读者的细心发现bug,最近bug已经修复(github更新)所以对文章部分内容 ...

  9. location.href 不响应的解决方法

    在某些时候修改元素的值的时候过快会导致失效 1.window.open("","_blank") 代替  不过也是打开新窗口 2.延迟调用location.hr ...

  10. ASP.NET基础(一)

    ExecuteNonQuery()的用法 下面我们将详细讲解如何在Page_Load()中对数据库的增加.删除.修改,最后我们再来总结一下ExecuteNonQuery(),ExecuteScalar ...