Struts2学习第4天--拦截器

Posted ttty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2学习第4天--拦截器相关的知识,希望对你有一定的参考价值。

第1章     Struts2_day04笔记

1.1      上次课内容回顾

l  OGNL表达式

n  OGNL的概述

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

n  OGNL的功能

u  调用对象的方法

u  调用对象的静态方法

u  表达式串联

u  访问ActionContextOgnlContext数据

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方法中调用ActionInvocationinvoke方法。在这个方法内部递归执行一组拦截器(完成部分功能),如果没有下一个拦截器,就会执行目标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天--拦截器的主要内容,如果未能解决你的问题,请参考以下文章

BOS项目 第2天(BaseDaoBaseAction用户登录自定义strust登录拦截器)

Struts2学习第2天--

Struts2学习记录

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

struts2学习笔记之十三:自定义过滤器

Struts2学习笔记四:Struts2拦截器学习拦截器实现案例Struts2标签学习