Struts2复习
补充
声明处为什么要继承前面的actionsupport?继承action的execute等格式啊,更规范
声明处为什么后面实现一个model?数据封装到模型再返回去方便啊
值栈是什么啊?原理呐?存放action的堆栈,里面放着请求和响应,将action参数用OGNL封装成对象存进去,也用OGNL读取当中的对象属性
第一天
基于前端控制器(过滤器)来实现,这样就不会有很多servlet
在web.xml配置过滤器filter
在strusts2配置action,在result标签中配置跳转页面
配置文件加载顺序,先strust.xml再strust.properties再web.xml,后配置的会将先配置的常量修改
第二天
strust访问servlet的api有三种方法
1.actionContext类访问,通过这个类可以简单的访问内置对象的属性
2通过特定接口访问,
3通过ServletActionContext访问
结果页面配置,全局和局部页面配置,resulttype重定向,请求转发,处理action链(chain)
数据的封装,有两种方法:
1属性驱动,用set或者OGNL(OGNL的话必须有get方法)
2模型驱动(优先使用),提交的数据封装成model
集合的封装
第三天
OGNL对象图导航语言,strust默认的语言
作用:对象方法的调用,和值的访问,访问上下文,支持赋值操作和表达式串联
值栈ValueStack是strusts的一个接口,OGNLValueStacks是它的实现类,truts2中使用OGNL将请求Action的参数封装成对象为对象存储在之战中,并通过OGNL表达式读取值栈中的对象属性值
OGNLValueStacks的内部结构:值栈和map(即OGNL上下文)
1Context即OGNL上下文,它是一个map结构上下文中存在一些引用,
parameters该Map中包含当前请求的参数
request该Map中包含当前request对象中的所有属性
session该Map中包含当前session对象中的所有属性
application该Map中包含当前application对象中的所有属性
sttr该Map按如下顺序检索,request,seesion,application
2CompoundRoot:存储action实例,它OnglContext的Root对象,不管是属性还是对象都从栈顶开始找
ActionContext和ValueStack的关系
在创建ActionContext的时候,创建ValueStack,ActionContext获取ServetAPI的时候,依赖值栈
所以可以ActionContext.getContext().getValueStack()获得值栈
用push和set对值栈操作
EL表达式可以访问值栈
EL表达式的特殊字符使用
#,
1获取context的数据
2用于构建一个Map集合,
%,
强制解析OGNL表达式
$,
在配置文件中使用OGNL表达式
第四天
Strust2拦截器
原理:拦截器是AOP的一种实现,Strust2拦截器栈就是将拦截器按一定的顺序联结成一条链,在访问被拦截的方法或字段时,Strust2拦截器就会按之前定义的顺序被调用
自定义拦截器的核心方法intercept(翻译是拦截)
Strust2的标签库,视图层通过标签来提供支持
<s:if><s:else><s:elseif>
<s:iterator>
<s:property>用于输出指定的值
<s:a>用于构造html页面的超链接
<s:debug>用于输出更多的调试信息
Strust2模板和主题
一堆不列举了
Struts2复习的更多相关文章
- Struts2复习笔记
一.Struts2的获得 Struts2的官网是http://struts.apache.org/,需要的同学可以自己去官网上下载. 二.Struts2的配置 以动态web项目为例,讲解配置Strut ...
- struts2复习(五)拦截器总结
1. 拦截器(Interceptor): 拦截器是Struts2的核心,Struts2的众多功能都是通过拦截器来实现的. 2. 拦截器的配置 1)编写实现Interceptor 接口的类. 2)在s ...
- Struts2复习(四)防止表单反复提交
1.採取请求转发的方式完毕表单内容的加入会造成内容的反复插入. 2.採取重定向的方式实现数据的加入不会导致数据的反复插入. 3.防止表单反复提交的两种方式 1) 通过重定向 2) 通过Sessi ...
- 1. 使用Filter 作为控制器
最近整理一下学习笔记,并且准备放到自己的博客上.也顺便把Struts2 复习一遍 1. MVC 设计模式概览 实现 MVC(Model.View.Controller) 模式的应用程序由 3 大部分构 ...
- 2018.12.19 Struts2 框架总复习
总结Struts2 框架 struts2技术的优势 项目开源,使用及拓展方便 提供Exception处理机制 Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转 通过简单.集 ...
- Struts2框架复习(一)--最基本的struts2框架
前言 最近离职在家,发现之前学习的Struts2框架由于长时间不使用有点生疏,有鉴于此写下此文以备自己复习使用,同时也供大家批评指正. 准备工作 我觉得Struts2主要就是对Servlet的封装,还 ...
- struts2知识点复习
一. MVC Model 1:将所有的程序代码,都写到JSP页面中. Model 2:JSP(流程控制.数据显示) + JavaBean 改进的Model2:Servlet(流程控制) + Jsp(数 ...
- 软件架构期末复习(Struts2+Spring+Hibernate)
Struts2+Spring+Hibernate The Model-ViewController pattern in Struts2 is implemented with the followi ...
- 由struts2中配置使用servlet引发的思考和复习
Struts2拦截器到底拦截了什么? 关于struts2中的拦截器,首先再次理解其实只能过滤其中访问的action的映射!再者,因为struts中的action其实就是起到替代servlet作用的,所 ...
随机推荐
- 『Numpy』内存分析_利用共享内存创建数组
引.内存探究常用函数 id(),查询对象标识,通常返回的是对象的地址 sys.getsizeof(),返回的是 这个对象所占用的空间大小,对于数组来说,除了数组中每个值占用空间外,数组对象还会存储数组 ...
- CF 3-6 2级组 D题 STRESSFUL TRAINING 紧张的比赛
题目大概是这样的: 给出一个数列a[n] ,对于每一个数 a [i] 来说 都会在 T - - 时 -= b[i] 每个数都在任何时刻不能小于0 你可以在每次T - - 之前时给 一 个 a[i] + ...
- mysql5.5大数据量下表结构升级
升级一张4万多行(增加一个字段),且包含blob字段的表(blob字段包含100KB左右的数据),运行alter语句:ALTER TABLE `imgdetail` ADD COLUMN `uplo ...
- Electron "jQuery/$ is not defined" 解决方法
参考问题:https://stackoverflow.com/questions/32621988/electron-jquery-is-not-defined <!-- Insert this ...
- Spring Boot + Spring Cloud 实现权限管理系统 配置中心(Config、Bus)
技术背景 如今微服务架构盛行,在分布式系统中,项目日益庞大,子项目日益增多,每个项目都散落着各种配置文件,且随着服务的增加而不断增多.此时,往往某一个基础服务信息变更,都会导致一系列服务的更新和重启, ...
- ln 链接命令 简要说明 软硬链接关系说明
ln [选项] 目标 -s 创建符号链接(软链接) -f 强制创建链接 -i 覆盖前先询问 -v 显示创建链接过程 ln命令不能对目录创建硬链接,但可以创建软链接,对目录的软链接经常被用到 删除软链接 ...
- noj最长公共子序列
1041.最长公共子序列 时限:1000ms 内存限制:200000K 总时限:3000ms 描述 一个给定序列的子序列是在该序列中删去若干元素后得到的序列.确切地说,若给定序列X=<x1, ...
- 剑指Offer 42. 和为S的两个数字 (其他)
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 题目 ...
- ORA-00847: MEMORY_TARGET/MEMORY_MAX_TARGET and LOCK_SGA cannot be set together
群里有位兄弟,测试系统修改sga_lock=true参数后,重启库报错 ORA-00847: MEMORY_TARGET/MEMORY_MAX_TARGET and LOCK_SGA cannot b ...
- Spark访问Hive表
知识点1:Spark访问HIVE上面的数据 配置注意点:. 1.拷贝mysql-connector-java-5.1.38-bin.jar等相关的jar包到你${spark_home}/lib中(sp ...