笔记04 杂记

流程:

1. StrutsPrepareAndExcuteFilter:StrutsPrepareAndExcuteFilter作为前端控制器,是整个Struts2的调度中心。

2. ActionMapper:ActionMapper负责识别当前的请求是否需要Struts2做出处理。

3. ActionProxy:这个对象作为Action与xwork之间的中间层,会代理Action的运行过程。

4. ActionInvocation:ActionInvocation对象描述了Action运行的整个过程。

5. 进入拦截器

6. Action

7. result:获取页面处理模板

8. 退出拦截器

9. httpServetResponse

Struts2 拦截器 和 过滤器 的区别 :

1. 拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。

2. 拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。

3. 在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。

Struts2 中的默认包 struts-default 有什么作用?

1). struts-default 包是 struts2 内置的,它定义了 struts2 内部的众多拦截器和 Result 类型,而 Struts2 很多核心的功能都是通过这些内置的拦截器实现,如:从请求中把请求参数封装到action、文件上传和

数据验证等等都是通过拦截器实现的。当包继承了struts-default包才能使用struts2为我们提供的这些功能。

2). struts-default 包是在 struts-default.xml 中定义,struts-default.xml 也是 Struts2 默认配置文件。Struts2 每次都会自动加载 struts-default.xml文件。

3). 通常每个包都应该继承 struts-default 包。

1. 防止表单重复提交的两种方式:

1). 通过重定向。页面重定向到完成页面。(推荐)

2). 通过session token(token令牌)

2. 在web.xml中设置字符编码

3. * 的运用

4. struts-2.0.dtd用于检查struts2.xml的格式

5. token拦截器的参数名只能是includeMethods,不可以是excludeMethods。

6.  default.properties的位置

7. 提交页面后缀加不加action根据web.xml中的过滤器而定。

8. stuts2标签提交方式自动设为post。

9. struts2标签,密码不会显示。

10. strust2每次访问都生成一个新的action对象。

11. action一般继承com.opensymphony.xwork2.ActionSupport。

12. 先类型转换,  后输入校验。 有错误时会自动存入到fieldError中。

13. 使用框架来验证错误信息(有相应的dtd文件和war包中的例子,可以帮助)

里面可以用el表达式。<message>中还可以通过key来取值,可以使用国际化:

type的值是特定的。

对应国际化的properties文件

帮助文档在:xwork-core-2.2.1.jar中的:

defalut.xml中。

框架内部自动会消除网页传过来内容中的空格(doTrim),可以通过<param name="trim">false</param>不让它消除空格。用框架验证来消除填写空格麻烦事。!!!!!!!!!!不配置trim。

14. chain 一个action到另一个action,在 一个请求中 。redirect  两个请求。

15. ActionContext的getSession方法返回的是一个map集合。该map集合是session底层实现,键值对。存到session中的值,可以通过map.get()方法取出来。

16. struts的配置文件中,可以重定向到其他的action。若有参数,那么给谁传,参数跟谁中的属性名保持一致。重定向才能携带参数。请求转发中参数是页面传来的,配置文件中加的参数没效果。配置文件中加参数不常用。

17. 带参数重定向:

18. struts之所以能给参数自动赋值,找的是方法,不是找名字。

19. 可以让action实现接口Preparable接口,实现里面的prepare方法。该方法,在action中方法执行前先执行,可以用于初始化。

20. 无状态:没有可修改的成员变量

21. 拦截过滤的是execute方法。执行方法拦截器时,先检查是否需要拦截,再选择执行。

22. 

23. struts中可以新建一个struts.properties文件,它里面放相应的default.propertie中的相应属性等。可以通过struts.properties中配置文件来设置文件的上传大小(里面不要有乘法号(*))等在xml中

配置的constant配置的属性。struts.properties中配置的是全局的。

24. 

25. @Action中可以配置很多东西

26. strust2中配置文件加载顺序

27. 方法过滤拦截器,拦截方法。PreResultListener类监听器,它的beforeResult方法在拦截器的invoke执行后执行。

28. web.xml中的配置的文件,原filter不建议被使用了。

29. struts2提供了35拦截器,18个为默认。

30. struts标签hidden中加name值,会自动找到value值。若也加上value值,实际value值将无法显示。

时间: 2024-11-03 05:39:47

笔记04 杂记的相关文章

《掌握需求过程》阅读笔记04

<掌握需求过程>阅读笔记04 我们在开发我们的系统的时候要是要给用户用使用的,所以用户的使用感受非常重要,这就需要我们站在用户的角度去考虑这个系统如何让用户的使用更加的简捷,而不是站在你开发者的角度去考虑这个系统如何开发比较省我自己的事儿.抱着多一事不如少一事的态度开发出的系统是我们懒惰情况下的残次品,是注定要被淘汰的,而我们也可能因为这样的态度,面临我们的工作也将被人这样轻视.要把握好用户的使用习惯.操作环境,就需要我们去体会用户的使用感受,就需要我们具有同理心. 编写用户故事.我们可以把我

Android自定义View学习笔记04

Android自定义View学习笔记04 好长时间没有写相关的博客了,前几周在帮学姐做毕设,所以博客方面有些耽误.过程中写了一个类似wp的磁贴的view,想再写个配套的layout,所以昨天看了一下自定义viewGroup的相关知识-晚上睡觉想了一下可行性不是很高-代码量还不如直接自己在xml上写来得快,速度上也是个问题.今天看了一下张鸿洋老师的Android 自定义View (三) 圆环交替 等待效果这篇博文,再加上前一段时间看到的一幅图,结合之前写的一个圆形imageView的实现博文And

《30天自制操作系统》笔记(04)——显示器256色

<30天自制操作系统>笔记(04)--显示器256色 进度回顾 从最开始的(01)篇到上一篇为止,已经解决了开发环境问题和OS项目的顶层设计问题. 本篇做一个小练习:设置显卡显示256色. 原理 设置显卡模式 调用BIOS中断命令INT 0x10,设置显卡模式为VGA图形模式,320*200*8位彩色模式,调色板模式.代码如下. 1 MOV AL,0x13 ; VGA图形模式,320*200*8位彩色模式 2 MOV AH,0x00 3 INT 0x10 设置调色板 256色的调色板是这样一个

【OpenGL 学习笔记04】顶点数组

通过之前的学习,我们知道,如果要绘制一个几何图形,那就要不断的调用绘制函数,比如绘制一个20条边的多边形,起码要调用22条函数(包含glBegin和glEnd). 所以OpenGL提供了一系列的顶点数组函数减少函数调用的次数来提高性能.而且使用顶点还可以避免顶点共享的冗余处理. 1.简单示例 先来回顾一下之前我们是怎么画直线的: void drawOneLine(GLfloat x1,GLfloat y1,GLfloat x2,GLfloat y2) { glBegin(GL_LINES); g

SWIFT学习笔记04

1.在实际编译时,Swift 编译器会优化字符串的使用,使实际的复制只发生在绝对必要的情况下,这意味着您将字符串作为值类型的同时可以获得极高的性能. 2.for character in "Dog!" { println(character) } // D // o // g // ! 3.通过标明一个Character类型注解并通过字符字面量进行赋值,可以建立一个独立的字符常量或变量: let yenSign: Character = "¥" 4.计算字符数量 l

《用户故事与敏捷开发》阅读笔记04

  <用户故事与敏捷开发>阅读笔记04 今天抽出了两个小时读了<用户故事与敏捷开发>的第十二.十三.十四以及十五章并写了这篇阅读笔记.第十二章标题为"故事不是什么".IEEE 830是一本关于如何编写软件需求规格的指南,最突出的特征是使用短语"系统应该.....",但作者认为以这种方式编写系统的所有需求实际是一个不可能的任务.因为用户看到正在开发的软件时总会有有效和重要的反馈循环.他们会改变之前的想法,而且每个需求的成本是不可见的,会造成分析

Effective C++笔记04:设计与声明

条款18:让接口容易被正确使用,不易被误用 1,好的接口很容易被正确使用,不容易被误用.你应该在你的所有接口中努力达成这些性质. 2,"促进正使用"的办法包括接口的一致性,以及与内置类型的行为兼容. 3,"阻止误用"的办法包括建立新类型,限制类型上的操作,束缚对象值,以及消除客户的资源管理责任. 4,shared_ptr支持定制型删除器.这可以防范DLL问题,可以用来自动解除互斥锁. 条款19:设计class犹如设计type 博客地址:http://blog.csd

HTML学习笔记04

HTML学习笔记04 一.HTML样式 1.外部样式表:例如<link rel="stylesheet" type="text/css" href="mystle.css"> 2.内部样式表:在head部分通过<style>定义内部样式表,如<style type="text/css"> p{margin-left:20px}</style> 3.内联样式:在相关的标签中使用样式

从0开始学angularjs-笔记04

由于公司加班,刚到家不久,然而却毫无睡意,可能是老了吧--- 不废话了,没睡意那就做点有意义的事情吧,继续我们的angular学习之路,深夜博文,希望能造福大家! 这次我们来详细讲解angular的双向数据绑定.我会从以下列表依次讲解. 简单的例子 取值表达式与ng-bind的使用 双向绑定的典型场景-表单 动态切换标签样式 ng-show和ng-hide 一.简单的例子 这个例子我们在第一节已经展示过了,要看的移步这里 这里实现的效果就是,在输入框输入内容,下面也会相应的改变对应的内容.这就实