Struts2_day04笔记

  1. Struts2_day04笔记

    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. Struts2的拦截器(*****)

  1. 拦截器概述

    1. 什么是拦截器

  • Interceptor:拦截器,起到拦截Action的作用。
    • Filter:过滤器,过滤从客户端向服务器发送的请求。
    • Interceptor:拦截器,拦截是客户端对Action的访问。更细粒度化的拦截。(拦截Action中的具体的方法)。
  • Struts2框架核心的功能都是依赖拦截器实现。
  1. Struts2的执行流程

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

  1. 拦截器入门:

    1. 搭建Struts2的环境

    2. 编写拦截器类

  • 编写一个类实现Interceptor接口或者继承AbstractInterceptor类。

  1. 对拦截器进行配置

  • 定义拦截器进行配置

  • 定义一个拦截器栈的方式

  1. CRM的权限拦截器

  1. 实现用户登录的功能

    1. 创建表和实体

  • 创建表

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;

  • 创建实体

  1. 提交数据到Action

  1. ActionàServiceàDAO

  • 编写Service

  • 编写DAO

  1. 根据结果进行页面跳转

  1. 实现权限拦截器

    1. 编写权限拦截器

  1. 配置拦截器

  1. Struts2的标签库

  1. 通用标签库

  1. 判断标签

  • <s:if>、<s:elseif>、<s:else>

  • <s:iterator>

  • 其他常用的标签
    • <s:property/>
    • <s:debug/>
    • <s:date />----在页面上进行日期格式化。
  1. UI标签库(方便数据回显)

posted @ 2020-05-24 18:18  学菜狗  阅读(145)  评论(0)    收藏  举报