struts2(2012/2/25)

1、对于struts.xml文件的结果配置来说,局部要由于全局。

2、我们既可以再Action中定义异常与结果,也可以定义全局的异常与结果,局部总是优于全局的,如果定义成全局,那么可以为所有的Action所公用,而局部的异常与结果只能被当前的Action所独享,不能为其他Action所共享。

3、struts2分层体系架构:

4、struts2的模型驱动(Model Driven),之前所讲的称作属性驱动(Property Driven)

5、属性驱动与模型驱动的比较

1)属性驱动灵活,准确;模型驱动不灵活,因为很多时候,页面所提交过来的参数并不属于模型中的属性,也就是说页面提交过来的参数与模型中的属性并不一致,这是很常见的情况。

2)模型驱动更加符合面向对象的编程风格,使得我们获得的是对象而不是一个个离散的值。

小结:推荐使用属性驱动编写Action。

6、服务器端代码的单元测试有两种模式

1)容器内测试(Jetty)

2)Mock测试(继承HttpServletRequest、HttpSession、HttpServletResponse等Servlet API)。

7、Preparable接口的作用是让Action完成一些初始化工作,这些初始化工作是放在Prepareble接口的prepare方法中完成的,该方法会在execute方法执行之前得到调用。

8、采取请求转发方式完成表单内容的添加会造成内容的重复插入。

9、采取重定向的方式实现数据的添加不会导致数据的重复插入。

10、防止表单重复提交的两种方式

1)通过重定向

2)通过Session Token(Session令牌):当客户端请求页面时,服务器通过token标签生成一个随机数,并且将该随机数放置到session当中,然后将该随机数发向客户端,如果用户第一次提交,那么会将该随机数发往服务器端,服务器接收到该随机数并且与session中所保存的随机数进行比较,这时两者值是相同的,服务器认为是第一次提交,并且将更新服务器端的这个随机数值;如果此时再次重复提交那么客户端发向服务器端的随机数还是之前的那个,而服务器端的随机数则已发生了变化,两者不同,服务器认为这时重复提交,进而转向invalid.token所指向的结果页面。

11、拦截器(Interceptor):拦截器是Struts2的核心,struts2的众多功能都是通过拦截器来实现的。

12、拦截器的配置

1)编写实现Interceptor(通常继承AbstractInterceptor类)接口的类

2)在struts.xml文件中定义拦截器

3)在action中使用拦截器

13、一旦定义了自己的拦截器,将其配置到action上后,我们需要在action的最后加上默认的拦截器栈:defaultStack。

14、定义拦截器时可以直接继承AbstractInterceptor抽象类(该类实现了Interceptor接口,并且对init和destroy方法进行了空实现),然后实现其抽象方法intercept即可。

15、方法过滤拦截器(可以对指定方法进行拦截的拦截器)

16、在方法过滤拦截器中,如果既没有指定的includeMethods参数,也没有指定excludeMethods参数,那么所有的方法都会被拦截,也就是说所有的方法都被认为是includeMethods;如果仅仅指定了includeMethods,那么只会拦截includeMethods中的方法,没有包含在includeMethods中的方法就不会被拦截。

 17、package元素的abstract属性表示该包是抽象的,不能直接使用,需要由子包继承才能使用。struts-default这个package就是abstract的,因此需要我们继承这个包来使用。

18、package元素的namespace属性起到名字空间分割的作用。通常将namespace的属性值定义为页面所在的目录名。

19、进行文件上传时,必须将表单的method属性设为post,将enctype属性设为multipart/form-data。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值