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

     

     

  • 相关阅读:
    详解MathType中如何插入特殊符号
    详解如何将MathType嵌入word中
    MathType公式编辑器快捷键操作
    MathType初级教程:怎么安装MathType
    AOPR密码过滤器
    教您如何在Word的mathtype加载项中修改章节号
    在word文档中如何插入Mathtype公式
    详解MathType中如何更改公式颜色
    静态缓存和动态缓存
    ThinkPHP U函数生成URL伪静态
  • 原文地址:https://www.cnblogs.com/ttty/p/10797736.html
Copyright © 2020-2023  润新知