Struts2
来源:互联网 发布:炒菜致癌知乎 编辑:程序博客网 时间:2024/06/06 19:53
Struts2
1. 为什么每次请求都要创建一个Action对象?
是出于对线程安全的考虑,每次请求的时候都会创建一个action的实例,这样会保证线程的安全。Struts1只是在第一次请求的时候创建一个action的实例,以后每次相同的请求都直接从内存中去读取,它是单例模式,多线程情况下不安全。
2. Struts2是如何实现MVC设计模式的?
准确的说Struts2集中体现在VC两层,然而Model层应该是有如Spring、JavaBean等具体实现的。当用户发送request请求首先经过拦截器,至核心控制器查找Action并转发,这一部分可以叫做控制器层,由拦截器、核心控制器实现,然后由业务控制器Action处理或调用底层Model处理请求,这一部分可以叫做业务层,由具体用户业务逻辑实现,最后处理完毕后,返回结果页面逻辑路径,生成Result对象,根据配置的模版技术生成用户响应,这一部分可以叫做View层,由各模版技术支持实现,包括:Jsp、Freemarker、Velocity等。
3. Struts2 拦截器和过滤器的区别
a.Servlet容器
过滤器依赖于Servlet容器,而拦截器不依赖于Servlet容器。
b.Action 请求
Struts2 拦截器只能对 Action 请求起作用,而过滤器则可以对几乎所有请求起作用。
c.Action 上下文
拦截器可以访问 Action 上下文(ActionContext)、值栈里的对象(ValueStack),而过滤器不能.
d.生命周期
在 Action 的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。
4. 为什么要使用 Struts2 & Struts2 的优点
a. 基于 MVC 架构,框架结构清晰。
b. 使用 OGNL: OGNL 可以快捷的访问值栈中的数据、调用值栈中对象的方法
c. 拦截器: Struts2 的拦截器是一个 Action 级别的 AOP, Struts2 中的许多特性都是通过拦截器来实现的, 例如异常处理,文件上传,验证等。拦截器是可配置与重用的
d. 多种表现层技术. 如:JSP、FreeMarker、Velocity 等
- Struts2
- struts2
- struts2
- Struts2
- struts2
- struts2
- Struts2
- struts2
- struts2
- struts2
- Struts2
- Struts2
- Struts2
- struts2
- struts2
- STRUTS2
- Struts2
- Struts2
- 利用start with connect by 查询子节点和父节点数据显示为树状形
- 单链表的头插法与尾插法
- PHP5.3 与 5.5废弃与过期函数整理汇总
- matlab产生正定矩阵
- 数组分页显示
- Struts2
- TF卡用FAT32还是NTFS?
- 几种嵌入式实时操作系统简介
- mklichee操作步骤
- 学习SpringMVC——从HelloWorld开始
- VS(含2015)配置opencv
- eclipes项目包的平铺和分层,Project Explorer与Package Explorer的区别
- Java集合框架
- java抽象类和接口的比较