补充

声明处为什么要继承前面的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复习的更多相关文章

  1. Struts2复习笔记

    一.Struts2的获得 Struts2的官网是http://struts.apache.org/,需要的同学可以自己去官网上下载. 二.Struts2的配置 以动态web项目为例,讲解配置Strut ...

  2. struts2复习(五)拦截器总结

    1. 拦截器(Interceptor): 拦截器是Struts2的核心,Struts2的众多功能都是通过拦截器来实现的. 2. 拦截器的配置 1)编写实现Interceptor 接口的类.  2)在s ...

  3. Struts2复习(四)防止表单反复提交

    1.採取请求转发的方式完毕表单内容的加入会造成内容的反复插入. 2.採取重定向的方式实现数据的加入不会导致数据的反复插入. 3.防止表单反复提交的两种方式 1)  通过重定向  2)  通过Sessi ...

  4. 1. 使用Filter 作为控制器

    最近整理一下学习笔记,并且准备放到自己的博客上.也顺便把Struts2 复习一遍 1. MVC 设计模式概览 实现 MVC(Model.View.Controller) 模式的应用程序由 3 大部分构 ...

  5. 2018.12.19 Struts2 框架总复习

    总结Struts2 框架 struts2技术的优势 项目开源,使用及拓展方便 提供Exception处理机制 Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转 通过简单.集 ...

  6. Struts2框架复习(一)--最基本的struts2框架

    前言 最近离职在家,发现之前学习的Struts2框架由于长时间不使用有点生疏,有鉴于此写下此文以备自己复习使用,同时也供大家批评指正. 准备工作 我觉得Struts2主要就是对Servlet的封装,还 ...

  7. struts2知识点复习

    一. MVC Model 1:将所有的程序代码,都写到JSP页面中. Model 2:JSP(流程控制.数据显示) + JavaBean 改进的Model2:Servlet(流程控制) + Jsp(数 ...

  8. 软件架构期末复习(Struts2+Spring+Hibernate)

    Struts2+Spring+Hibernate The Model-ViewController pattern in Struts2 is implemented with the followi ...

  9. 由struts2中配置使用servlet引发的思考和复习

    Struts2拦截器到底拦截了什么? 关于struts2中的拦截器,首先再次理解其实只能过滤其中访问的action的映射!再者,因为struts中的action其实就是起到替代servlet作用的,所 ...

随机推荐

  1. 『PyTorch』第五弹_深入理解Tensor对象_下:从内存看Tensor

    Tensor存储结构如下, 如图所示,实际上很可能多个信息区对应于同一个存储区,也就是上一节我们说到的,初始化或者普通索引时经常会有这种情况. 一.几种共享内存的情况 view a = t.arang ...

  2. Petrozavodsk Winter Camp, Day 8, 2014, Mosaic

    给你三个数字a,b,c,让你用1-m的数字凑出来 结论:有2个1和2个2肯定凑不出来,然后就搜索 #include <bits/stdc++.h> using namespace std; ...

  3. 关于IDEA每次修改HTML,Css等静态资源文件都需要重启的设置修改

    ~ ~ ~ ~ ~ 关于IDEA每次修改HTML,Css等静态资源文件都需要重启的设置修改 最近开始使用IDEA进行项目开发,但是对于每次修改HTML文件中css和js文件之后都必须重启服务这件事表示 ...

  4. vue中修改了数据但视图无法更新的情况

    数组数据变动:我们使用某些方法操作数组,变动数据时,有些方法无法被vue监测,有些可以 Vue包装了数个数组操作函数,使用这些方法操作的数组去,其数据变动时会被vue监测: push() pop() ...

  5. 短信猫+kannel调试一例

    同事做一短信网关平台,采用kannel软件. 安装正常,配置文件如下: # Vodafone 3G cardgroup = coreadmin-port = 13000admin-password = ...

  6. CCF关于公开NOIP复赛选手程序的通告

    为使参加NOIP复赛的选手能了解和保存其竞赛时编制的程序,并相互监督,CCF责成各省特派员在复赛后公开选手程序. 公布方式:以提高组和普及组分别为单位,通过网站或邮件等方式公开.以每个选手可以看到本省 ...

  7. Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题

    Android 设备的CPU类型(通常称为”ABIs”) 引用: https://blog.csdn.net/ouyang_peng/article/details/51168072 armeabiv ...

  8. Ajax实战(原生)

    /** 之前一直在学习ajax,也拿jQuery写了很多,感觉还是写原生的对基础的理论理解的深刻.特此书写. * 得到ajax对象 */ function getajaxHttp() { var xm ...

  9. LNMP(二)

    第二十一课 LNMP(二) 目录 一.默认虚拟主机 二.Nginx用户认证 三.Nginx域名重定向 四.Nginx访问日志 五.Nginx日志切割 六.静态文件不记录日志和过期时间 七.Nginx防 ...

  10. Codeforces Round #309 (Div. 1) A(组合数学)

    题目:http://codeforces.com/contest/553/problem/A 题意:给你k个颜色的球,下面k行代表每个颜色的球有多少个,规定第i种颜色的球的最后一个在第i-1种颜色的球 ...