重论Struts 2

来源:互联网 发布:拉勾网 知乎 编辑:程序博客网 时间:2024/05/17 09:29

Strust 2是一个当今非常流行的框架,

所谓框架(framework),就是用于解决特定软件问题的类和接口的集合。

框架可以提高软件开发的速度和效率,并且使软件更便于维护。

 struts 2框架由3个部分组成: 核心控制器FilterDispatcher(在web.xml中定义),业务控制器(

就是Action类文件),业务逻辑组件(service层)

 

struts2的主要内容:

 

1 struts2 类型转换
2 struts2 输入校验
3 struts2 实现文件上传及下载
4 struts2 拦截器
5 struts2 整合JSF
6 struts2 Ajax
7 struts2 的国际化
8 struts2 标签库
9 s2sh

 

 

在讲struts2之前,先阐述一下调试(debug)

 

调试很重要,尤其是对于一个系统不是很了解,或者里面的接口或流程过于复杂的时候!

1. 首先设一个断点

2  展开server视图,选中Tomcat6.x,选中debug按钮

    确保是在debug模式下进行调试(如果是在运行模式,打断点是不起作用的!!)

3  当程序执行到断点时,会自动停住

4  此时打开jsp页面,提交表单动作,此时应当弹出一个窗口(也可能不出现),提示转到debug状态,

5   开始进行调试,在myeclipse(或eclipse)界面的左中位置,找到打断点的代码

    在打断点的方法里,如果方法有参数,可以点击,然后在Variables 视图中查看内容

 

6  在debug 视图中,选择 箭头左下方加杠 按钮表示单步调试,即一行一行代码地调试

    如果选择  小方框右边加三角形表示程序继续执行

 

调试结束要转到编码运行状态。

 

====================================================

关于struts2的interceptor拦截器

拦截器的原理:
本义:就是说在执行一个方法之前,它给你增加一个额外的东西,比如执行某些语句,在执行方法之后,又去给你执行某些语句。

 

拦截器跟在Servlet里面的filter极其类似,
filter的作用是:我们可以让filter匹配url,让url-pattern模式去匹配,只要匹配某个url之后,

filter就会在真正执行Servlet之前去执行,主要是在init()之后的doFilter()方法,

doFilter()之后,检查filter还有没有过滤链,如果有,再去执行下一个过滤器
最后真正转换到要去处理的Servlet,Servlet执行之后会,流程会按照相反顺序重新回到过滤链中去再执行一次filter(也就是准备下一次Servlet处理)

 

通俗的理解:
就是说你要做什么,它给你拦截住了,不是不让你去做,(当然也可以不让你去做),就是说在拦截之前,让你去做一些事情,当把事情做完以后,拦截器又会让你去做一些事情

Spring中AOP 与拦截器其实很相似
所谓AOP(面向方面编程),就是把程序的执行点分为若干个方面,叫插入点,在真正要执行方法之前,
它可能插入某些东西,插入某些语句、执行某些方法,在执行完你的方法之后,又会插入某些方法,
AOP 本质上就是一个拦截器。

 

 

 

 

原创粉丝点击