1. 简述 Struts2 的工作流程:
请求发送给 ./4A/
./4A/判定该请求是否是一个 ./0请
求
若该请求是一个 ./0请求,则 ./4A/
把请求的处理交给 A'
)A'创建一个 "的实例,并进行初始化
+"实例在调用 的过程前后,涉及到相关拦截
器()的调用。
I执行完毕,"负责根据 /A中的配置
找到对应的返回结果。调用结果的 A/方法,渲染结果。
,执行各个拦截器 ""E之后的代码
-把结果发送到客户端
2. Struts2 拦截器 和 过滤器 的区别:
、过滤器依赖于."容器,而拦截器不依赖于."容器。
、./0拦截器只能对 请求起作用,而过滤器则可以对几乎所
有请求起作用。
、拦截器可以访问 上下文A、值栈里的对象
</.E,而过滤器不能
)、在 的生命周期中,拦截器可以多次调用,而过滤器只能在容器
初始化时被调用一次。
3. 为什么要使用 Struts2 & Struts2 的优点:
基于 :<架构,框架结构清晰。
使用 B58B58可以快捷的访问值栈中的数据、调用值栈中对象的方
法
拦截器./0的拦截器是一个 级别的 ./0中的
许多特性都是通过拦截器来实现的例如异常处理,文件上传,验证等。拦截
器
是可配置与重用的
)多种表现层技术如:=.、:E、<'等
4. Struts2 如何访问
HttpServletRequest、HttpSession、ServletContext
三个域对象 ?
1 与 ."解耦的访问方式
1通过 A访问域对象对应的 :对象
1通过实现 C接口使 ./0注入对应的 :对象
与 ."耦合的访问方式
1通过 ."A直接获取 ."对象
1通过实现 ."9AAC接口的方式使 ./0注入对应的对象
5. Struts2 中的默认包 struts-default 有什么作用?
/!#/包是 /0内置的,它定义了 /0内部的众
多拦截器和 >/类型,而 ./0很多核心的功能都是通过这些内置的拦
截器实现,如:从请求中把请求参数封装到、文件上传和数据验证等等
都是通过拦截器实现的。当包继承了/!#/包才能使用/0为我