第1章     Struts2_day04笔记

1.1      上次课内容回顾

OGNL表达式

OGNL的概述

OGNL:对象图导航语言,是一门功能强大的表达式语言。

OGNL的功能

调用对象的方法

调用对象的静态方法

表达式串联

访问ActionContext和OgnlContext数据

OGNL独立的表达式:

Java环境下入门

Struts2环境下入门

值栈

值栈的概述

ValueStack:是一个接口,实现类OgnlValueStack。是数据的中转站,贯穿了整个Action,有一个Action的实例,就会创建一个ValueStack对象。

值栈的内部结构

Root          :CompoundRoot,就是一个ArrayList。

Context    :OgnlContext,就是一个Map。

ActionContext和值栈关系

ActionContext获得值栈的引用。

获得值栈

通过ActionContext获取

通过request获取

操作值栈

利用Action本身在栈中的特点,Action中的属性。

手动操作值栈:

获取值栈的数据

OGNL获取:<s:property value=”…”/>

EL获取值栈的数据

底层增强request.getAttribute(“”);

ONGL特殊字符

#号

获取context数据

构建map集合

%号

强制解析OGNL

$号

在配置文件中使用OGNL

1.1      Struts2的拦截器(*****)

1.1.1      拦截器概述

1.1.1.1   什么是拦截器

Interceptor:拦截器,起到拦截Action的作用。

Filter:过滤器,过滤从客户端向服务器发送的请求。

Interceptor:拦截器,拦截是客户端对Action的访问。更细粒度化的拦截。(拦截Action中的具体的方法)。

Struts2框架核心的功能都是依赖拦截器实现。

1.1.1.2   Struts2的执行流程

客户端向服务器发送一个Action的请求,执行核心过滤器(doFilter)方法。在这个方法中,调用executeAction()方法,在这个方法内部调用dispatcher.serviceAction();在这个方法内部创建一个Action代理,最终执行的是Action代理中的execute(),在代理中执行的execute方法中调用ActionInvocation的invoke方法。在这个方法内部递归执行一组拦截器(完成部分功能),如果没有下一个拦截器,就会执行目标Action,根据Action的返回的结果进行页面跳转。

1.1.1      拦截器入门:

1.1.1.1   搭建Struts2的环境

同前

1.1.1.2   编写拦截器类

l  编写2个类实现Interceptor接口或者继承AbstractInterceptor类。

执行一个action后 发现 执行顺序如下( action之后跳转页面)。

代码图:

CREATE TABLE `sys_user` (
`user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`user_code` varchar(32) NOT NULL COMMENT '用户账号',
`user_name` varchar(64) NOT NULL COMMENT '用户名称',
`user_password` varchar(32) NOT NULL COMMENT '用户密码',
`user_state` char(1) NOT NULL COMMENT '1:正常,0:暂停',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;  

Struts2学习第4天--拦截器的更多相关文章

  1. [原创]java WEB学习笔记74:Struts2 学习之路--自定义拦截器,struts内建的拦截器

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. Struts2学习:interceptor(拦截器)的使用

    对于需要登陆验证.权限验证等功能的网站,每一次请求,每一个action都写一段验证的代码,未免显得冗余且不易维护.struts2提供了拦截器interceptor,为这些页面提供一个切面,或者说公共组 ...

  3. Struts2学习笔记(十)——自定义拦截器

    Struts2拦截器是基于AOP思想实现的,而AOP的实现是基于动态代理.Struts2拦截器会在访问某个Action之前或者之后进行拦截,并且Struts2拦截器是可插拔的:Struts2拦截器栈就 ...

  4. Struts2学习第四天——拦截器及文件上传

    1.概述 Struts2的很多核心功能都是由拦截器完成的. 拦截器很好的实现了AOP的编程思想,在动作的执行之前和结果的返回之后,做拦截处理. 2.struts2的默认拦截器栈 3.自定义拦截器 St ...

  5. 【Struts2学习笔记-6--】Struts2之拦截器

    简单拦截器的使用 拦截器最基本的使用: 拦截方法的拦截器 拦截器的执行顺序 拦截结果的监听器-相当于 后拦截器 执行顺序: 覆盖拦截器栈里特定拦截器的参数 使用拦截器完成-权限控制 主要完成两个功能: ...

  6. Struts2学习笔记04 之 拦截器

    一.创建拦截器组件 1. 创建一个类,实现Interceptor接口,并实现intercept方法 2.注册拦截器 3.引用拦截器 二.拦截器栈 预置拦截器: 默认引用拦截器 拦截器调用顺序: Fil ...

  7. 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor

    [Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...

  8. SpringBoot学习笔记:自定义拦截器

    SpringBoot学习笔记:自定义拦截器 快速开始 拦截器类似于过滤器,但是拦截器提供更精细的的控制能力,它可以在一个请求过程中的两个节点进行拦截: 在请求发送到Controller之前 在响应发送 ...

  9. [ SSH框架 ] Struts2框架学习之四(自定义拦截器)

    一.Struts2的拦截器 1.1 拦截器概述 拦截器,在AOP( Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截 ...

随机推荐

  1. C#异步编程的一些认识

    1.使用委托类型的BeginXXX,EndXXX 2.使用事件 3.使用aysnc,await关键字,会自动切换回UI线程,启动方法的线程可以被重用,线程没有阻塞.内部其实是封闭了Task类的Cont ...

  2. linux 系统的后台运行

    后台运行:nohup 程序名 & 杀死后台 ps -ef|grep 名称 kill -9 id(查出的程序id)

  3. Elasticsearch-PHP 安装

    安装 Elasticsearch-PHP只有三个要求你需要担心: PHP 5.3.9 或更高版本(查看更多信息) Composer ext-curl: Libcurl的PHP扩展 其它的依赖会通过Co ...

  4. How to map host ip and port to Hyper-V

    1.1       Add an port proxy netsh interface portproxy add v4tov4 listenport=hostport listenaddres=ho ...

  5. Presto资源组配置

    { "rootGroups": [ { "name": "global", "softMemoryLimit": &qu ...

  6. centos7 安装docker-ce ,最新版本docker,docker阿里云加速

    直接用yum install docker -y安装的docker版本为1.12,但是docker发展很快,现在都17.06.2了.docker-ce是指docker的社区版 卸载老版本的 docke ...

  7. 适配iOS10 调取系统打电话功能

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: [NSString stringWithFormat:@"t ...

  8. DEPENDS工具和DUMPBIN工具使用

    在系统部署运行时我们经常发现某个程序在开发机器中可以运行,但是部署在某台PC上缺不能运行,也存在在某些机器上可运行换一台机器却不能运行.主要表现出两种现象:        (1).运行.调试时出现程序 ...

  9. linux的“自动化”-乾颐堂CCIE

    linux系统的web网站在运营状态时,我们常需要对网站进行维护,例如查看资源剩余并做出响应.日志分割.数据整理,在特定状态执行特定任务等等,这些都会需要linux能实现自动执行某些任任务.本篇博文介 ...

  10. Win 7 Windows Update无法自动更新解决方案

    最近发现系统很长时间没有自动更新过了,手动更新后,提示返回错误码WindowsUpdate_8024402F.网络上搜索到的解决方法大多是删除更新临时目录,重启WINDOWS UPDATE服务,然而试 ...