第1章     Struts2_day04笔记

1.1      上次课内容回顾

l  OGNL表达式

n  OGNL的概述

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

n  OGNL的功能

u  调用对象的方法

u  调用对象的静态方法

u  表达式串联

u  访问ActionContext和OgnlContext数据

n  OGNL独立的表达式:

u  Java环境下入门

u  Struts2环境下入门

l  值栈

n  值栈的概述

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

n  值栈的内部结构

u  Root          :CompoundRoot,就是一个ArrayList。

u  Context    :OgnlContext,就是一个Map。

n  ActionContext和值栈关系

u  ActionContext获得值栈的引用。

n  获得值栈

u  通过ActionContext获取

u  通过request获取

n  操作值栈

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

u  手动操作值栈:

n  获取值栈的数据

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

n  EL获取值栈的数据

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

l  ONGL特殊字符

n  #号

u  获取context数据

u  构建map集合

n  %号

u  强制解析OGNL

n  $号

在配置文件中使用OGNL

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

1.1.1      拦截器概述

1.1.1.1   什么是拦截器

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

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

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

l  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;

 

转载于:https://www.cnblogs.com/ttty/p/10797736.html

Struts2学习第4天--拦截器相关推荐

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

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

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

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

  3. Vue学习笔记:axios 拦截器的用法

    Vue学习笔记:axios 拦截器的用法 什么是axios 拦截器? 拦截器就是拦截每一次的请求和响应,然后进行相应的处理.请求拦截器,它可以统一在你发送请求前在请求体里加上token:响应拦截器,是 ...

  4. Spring MVC学习(8)—HandlerInterceptor处理器拦截器机制全解

    基于最新Spring 5.x,详细介绍了Spring MVC的HandlerInterceptor处理器拦截器机制,以及它的一系列拦截方法. 本次我们来学习Sring MVC的HandlerInter ...

  5. struts2教程(7)--拦截器

    Struts2拦截器 一.拦截器介绍 拦截器 的使用 ,源自Spring AOP(面向切面编程)思想 拦截器 采用 责任链 模式 在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链 ...

  6. struts2 javaweb 过滤器、监听器 拦截器 原理

    转: 过滤器.监听器 拦截器 过滤器 创建一个 Filter 只需两个步骤: (1)创建 Filter 处理类: (2)在 web.xml 文件中配置 Filter . 创建 Filter 必须实现 ...

  7. SpringMVC框架 学习DAY_03:@RequestMapping注解/拦截器与过滤器

    1. 关于@RequestMapping注解 在控制器中,在处理请求的方法之前添加@RequestMapping注解,可以配置请求路径与处理请求的方法的映射关系! 在@RequestMapping注解 ...

  8. 【Spring学习】过滤器和拦截器

    1.认识过滤器(Filter) 1.1.过滤器的定义 过滤器是JavaWeb的三大组件之一,是实现Filter接口的Java类. 过滤器是实现对请求资源(jsp.servlet.html)的过滤功能, ...

  9. struts2(三) 输入校验和拦截器

    前面知道了struts2的架构图和struts2的自动封装表单参数和数据类型自动转换,今天来学struts2的第三第四个东西,输入校验和拦截器, --WH 一.输入校验 在以前我们写一个登录页面时,并 ...

  10. Struts2 源码分析——拦截器的机制

    本章简言 上一章讲到关于action代理类的工作.即是如何去找对应的action配置信息,并执行action类的实例.而这一章笔者将讲到在执行action需要用到的拦截器.为什么要讲拦截器呢?可以这样 ...

最新文章

  1. zabbix监控mysql数据库性能实现
  2. linux内存管理——kmalloc和vmalloc
  3. 陆续放出各种安装及配置文档
  4. 14/100. Merge Two Sorted Lists
  5. ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
  6. CAP 原则与 BASE 理论
  7. Arrays类中的fill(用于填充数组)
  8. Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are解决方法
  9. jsp与php学哪个2015年,PHP和jsp哪个好学呢?
  10. 用域控制禁止本地存盘禁止使用移动磁盘以防止图纸泄密的解决方案
  11. “打工皇帝”唐骏的成功4+1理论
  12. 最大似然估计(MLE)的一些公式与定理(python实践)
  13. 牛客练习赛30: D. 消消乐(二分匹配+输出最小点覆盖)
  14. 手机应配备两个指纹识别区
  15. 内存带宽测试工具-Stream
  16. μC/OS源码官网下载链接
  17. 第一台计算机采取了哪位科学家的意见,计算机一级ms office考试上机题
  18. MySQL数据库中的数据表
  19. 炒股秘籍:三句话挣得千万资产
  20. 多省市成立大数据局,加快大数据产业发展

热门文章

  1. JDRefresh 轻简下拉刷新框架
  2. 你知道这些使用Linux虚拟桌面的益处吗?
  3. MySQL只有.frm文件恢复表结构
  4. Storm入门之第8章事务性拓扑
  5. linux的引导过程和服务控制
  6. 【Android开发】高级组件-选项卡
  7. 关于前端浏览器 IE6bug 解决方案
  8. 使用 IntraWeb (21) - 基本控件之 TIWTabControl
  9. 对“被投诉”的最新解读(外四篇)
  10. 细说分布式Redis架构设计和那些踩过的坑