没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
64页
第一章 Struts2 概览 Struts 是什么? Struts 2 是一个雅致的,可扩展的,用来建立企业级Java Web应用程序的框架。 Struts 2 不但注重程序的开发过程,更注重部署和后期维护。 Struts 2 来源于WebWork 2。 Struts 2 融合了Struts 和 WebWork的社区力量,是这两个社区努力的结果。 Struts 2 非常容易使用。 Struts 2 最大可能的保留了和Strut 1.x的相似行。 Struts2 的特性有那些?
资源推荐
资源详情
资源评论
使用 Struts2 开发 Java Web 应用程序
第一章 Struts2 概览
Struts 是什么?
Struts 2 是一个雅致的,可扩展的,用来建立企业级 Java Web
应用 程序的框架。
Struts 2 不但注重程序的开发过程,更注重部署和后期维护。
Struts 2 来源于 WebWork 2。
Struts 2 融合了 Struts 和 WebWork 的社区力量,是这两个社区努力的结果。
Struts 2 非常容易使用。
Struts 2 最大可能的保留了和 Strut 1.x 的相似行。
Struts2 的特性有那些?
上面提到,Struts 2 关注开发,部署和后期维护三个方面。我们就从这三个方面说明 Struts2 的新特性。
构建
上手非常容易,可以使用起步教程,模板工程或者 Maven 原型建立 Struts 2 工程。(起步简单)
Struts 2 的官方站点上有很多关于 Struts 2 入门的资料,
Struts 2 的下载目录中包含空白的模板工程(struts2-blank-2.x.war)和示例工程(struts2-
showcase-2.x.war)可以参考。
Maven 2 中有 Struts 2 的项目模板,可以使用 Maven 2 直接建立 Struts 2 工程
更好的设计,Struts 2 中不想要要在在处理和 HTTP 相关的操作,自需要使用框架的接口即可。
在 Strut 2 中不再会涉及到诸如 HttpServletRequest, HttpServletResponse, HttpSession 等 Http
相关的 Servlet 接口类,取而代之的是 Struts 2 的接口,例如 RequestAware,SessionAware 等。
强大的标签库,Struts 2 的标签基于 CSS,标签可以提供自己需要的 HTML 支持。
Struts 2 的标签利用了 CSS 和模板,使用起来会非常方便,在 Struts 1.x 中我们需要使用 Table
来组织表单,但是在 Struts 2 中所有的标签自带了 Table 内容,可以方便的处理格式。例如
<s:textfield> 标签自动添加了 <tr> <td> 等标签。
有状态的 Checkbox,可以以一种统一的方式记录 checkbox 状态的变化。
在 Struts 2 中即使没有被选中的 checkbox 其内容仍然存在于 Struts 2 框架中,不必像在 Struts
1.x 中那样需要做特殊的存在性判断。
灵活的取消按钮,在取消按钮点击的时候可以指向一个不同的 action。
@TODO
可以在制定 Form 的 action 的同时,制定 cancel 按钮的 action,当点击 submit 和 cancel 的时候出
现完全按不同的功能。
第一等级的 AJAX 的支持,在普通 struts 标签的基础上,使用 AJAX 增加了交互性和灵活性。
Struts 2 的标签内置了 Ajax 的支持。Struts 2 的标签使用了 Dojotoolkit Ajax 框架,不但能够使用
Ajax 特性,而且能够使用非常丰富和强大的浏览器小控件,例如日期选择控件
见到那集成 Spring 框架,非常简单的使用 Spring 框架提供的依赖注入功能。
可以方便的使用 Spring 管理 Struts 2 的 action 的创建,通过使用 Spring 可以充分的利用 Spring
的依赖诸如功能,并且能够很好的集成其他的框架,例如 Hibernate,iBatis 等。
更多的返回形式,除了 JSP 还支持,JasperReports,JFreeChart, Action 链,文件下载等。
除了支持 JSP 的表现形式,还支持 JasperResports 报表, JFreechart 图标,Action 链,文件下
载等。
POJO 表单,不再需要 ActionForms,使用 Javabean 获得客户的收入或者将属性表示出来,
完全消除了 ActionForm 组建,可以使用任意合适的类型来接受页面传来的数据或者将数据表现出
来。ActionFrom 可以使用 POJO 的 JavaBean 来替代,JavaBean 中的属性可以使用 String,也可以
使用具体的类型,例如 Date,Int 等。
POJO Action,使用任意的类作为 Action 类,甚至可以使用接口。
任何类都可以作为 Action 类,只要接口满足一些简单的定义,不需要在使用 Action 类似的基类,
你可以完全自由的发挥。
部署
插件结构,使用 jar 文件扩展框架功能,不需要在做手动的配置,内置了 JavaServer Faces,
JasperResports, JFreeChart, Tiles 等插件。
扩展一个功能只需要添加一个插件,插件甚至可以热插拔,在你的应用不停止的情况下追加新的
功能。
集成了分析功能,可以方便的找到程序性能的问题点。
可以不借助外力发现程序的热点,找到问题的所在,
准确的报告错误,可以非常准确的指出程序的问题点。
准确的报告运行时的错误,方便解决问题。
维护
Action 容易测试,直接测试 Struts 2 的 Action,不需要使用 Mock Http 对象来测试。
Action 是普通的类,不需要特殊的环境,所以 Struts 2 的 Action 特别容易测试。
聪明的默认值,不需要配置不必要的配置,大部分的框架配置元素的都有非常合适的默认值,基本
上你不需要在做任何配置。
Struts 2 有很多的配置项,但是每一个都有默认值,基本额上不需要更改默认的选项即可保证最
佳
容易定制的控制器,可以定制每一个 Action 的处理过程。
可以使用 Intercepter 来过滤每一个 Action,在 Action 执行前后追加自定义的操作。
集成了 Debugging,可以使用内容之的 debugging 工具找到问题。
灵活的标签库,可以通过修改 FreeMarker 模板来定制标签的输出,不需要在操作像天书异样的
JSP Taglib API,模板语言支持,Freemarker 和 Velocity
可以自定义模板库,或者修改已有模板的内容来定制页面的显示。
Struts 2 中使用的模式
Command
Chain of responsibility
Struts2 处理流程概要
上图来源于 Struts2
官方站点,是 Struts 2 的整体结构。
一个请求在 Struts2
框架中的处理大概分为以下几个步骤
1 客户端初始化一个指向 Servlet 容器(例如 Tomcat)的请求
2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做 ActionContextCleanUp 的可选
过滤器,这个过滤器对于 Struts2
和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3 接着 FilterDispatcher 被调用,FilterDispatcher 询问 ActionMapper 来决定这个请是否需要调用某个
Action
4 如果 ActionMapper 决定需要调用某个 Action,FilterDispatcher 把请求的处理交给 ActionProxy
5 ActionProxy 通过 Configuration Manager 询问框架的配置文件,找到需要调用的 Action 类
6 ActionProxy 创建一个 ActionInvocation 的实例。
7 ActionInvocation 实例使用命名模式来调用,在调用 Action 的过程前后,涉及到相关*********
(Intercepter)的调用。
8 一旦 Action 执行完毕,ActionInvocation 负责根据 struts.xml 中的配置找到对应的返回结果。返回结
果通常是(但不总是,也可能是另外的一个 Action 链)一个需要被表示的 JSP 或者 FreeMarker 的模
版。在表示的过程中可以使用 Struts2 框架中继承的标签。在这个过程中需要涉及到 ActionMapper
在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过 ObjectFactory 来创建的。
第二章 一个简单的 Login 应用程序
第一节 需求定义
简单的需求如下图
用户处在 Welcome.jsp 页面,点击登录连接到达 Login.jsp 页面
2 在 Login.jsp 输入用户名密码,点击登陆按钮,转到 LoginAction 处理
3.1 在登陆成功的情况下,再回到 Welcome.jsp 页面,在页面上显示登录信息
3.2 在登陆失败的情况下,返回到 Login.jsp 显示登陆错误信息
开始登陆
登陆
登陆成功
登陆失败
剩余63页未读,继续阅读
资源评论
- wd123456_1234562014-10-24怎么是world格式的 啊 看着好不方便啊
- olstonegjs2015-07-01很实用很方便
- LadainianTomlinson2014-12-19很实用很方便
netfsy
- 粉丝: 0
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功