struts快速学习指南

上传人:xzh****18 文档编号:45731516 上传时间:2018-06-18 格式:PDF 页数:80 大小:698.57KB
返回 下载 相关 举报
struts快速学习指南_第1页
第1页 / 共80页
struts快速学习指南_第2页
第2页 / 共80页
struts快速学习指南_第3页
第3页 / 共80页
struts快速学习指南_第4页
第4页 / 共80页
struts快速学习指南_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《struts快速学习指南》由会员分享,可在线阅读,更多相关《struts快速学习指南(80页珍藏版)》请在金锄头文库上搜索。

1、 标题 Struts 快速学习指南快速学习指南 (内部培训教材内部培训教材) - 大部分素材来自于大部分素材来自于Programming Jakarta Struts一书一书 lzasp800(原作) copy form www.CSDN.net 2004- 05- 05 关键字 Struts MVC 1. Struts 简介简介 Struts 是一个技术框架,由 Craig R. McClanahan 编写,并且在 2000 年的时候捐献给了 ASF,目前,有很多组织和 个人参与 Struts 框架的开发,使得 Struts 保持高速成长,同时,利用 Struts 开发的应用越来越多,使其成

2、为 web 应用MVC 模式中 VC 部分事实上的标准。 1.1 Web 技术历史技术历史 1.1.1 CGI web 应用开发中历史上,CGI(common gateway interface)是最早使用的一种技术,通过为不同的平台,不同的web server 编写插件编写应用接口,来满足通过 web 方式编写应用的需求。当时流行的方式包含 NSAPI/ISAPI,使用 Perl 来编写 CGI 程序。CGI 最大的问题就是线程并发的问题,当时给很多人的感觉是 CGI 访问速度慢,其主要原因是应用程序所编写的 CGI 没有考虑多线程。 1.1.2 Servlet 作为一种跨平台语言的服务器端

3、技术,其一经产生就备受瞩目,采用 Servlet 开发的应用,不用考虑平台,多线程等让人头疼的问题,使得开发人员专注于业务逻辑的实现,大大解放了生产力。但是,在 Servlet 中嵌入 html无疑是开发人员的噩梦,与同时期微软的 ASP 相比,Servlet 在开发效率方面让人不敢恭维。 1.1.3 Java Server Pages JSP 从很大程度上时参考了 ASP 的想法, 使得采用 Java 语言开发服务器端应用非常容易, 同时因为 java 与生俱来的跨平台、安全性、易用性优势,当然,还有开发人员的高工资 J,使得 JSP 逐渐在 Web 服务器端应用开发中占据了主流位置。 2.

4、 Struts 安装安装 Struts 作为一个 J2EE 框架,很容易和你的 web 应用结合起来,你仅仅需要作以下几个步骤: 1、 下在 Struts1.1 二进制压缩包,将压缩包解压到%STRUTS_HOME%目录,目录结构如下如示: 2、 建立你的标准 web 应用程序, 所谓标准应用程序是指在 web 应用程序的根目录下有一个 WEB-INFO 目录, WEB-INF下有 classes,lib 目录,classes 下面有个 web.xml 文件。本文后续假设你的 web 应用在%WEB_ROOT%目录下。 3、 将%STRUTS_HOME%/lib 下所有文件 copy 到%WE

5、B_ROOT%/WEB-INF/lib 下。 4、 配置%WEB_ROOT%/WEB-INF/classes/web.xml 以满足 Struts 需要,具体如下: 1、 在配置文件中映射 ActionServlet,ActionServlet 用于接受所有访问者的请求。在 Struts 应用中,所有对应用程序的请求,都会被 WEB SERVER 定向到 ActionServlet 进行统一控制、分配处理,ActionServlet 可以看作是 Struts 框架的核心,枢纽。 controller org.apache.struts.action.ActionServlet 2、 配置 se

6、rvlet 映射,通过 servlet 映射可以将用户访问 web 应用的扩展名映射到具体处理的 servlet,例如,将所有以.do 为扩展名的页面的请求交给 ActionServlet 处理。 controller org.apache.struts.action.ActionServlet controller *.do 另外,也可以采用如下方式进行映射,该方式将所有对/action/目录下文件的访问请求交给 ActionServlet 处理。 controller org.apache.struts.action.ActionServlet controller /action/* 3

7、、 配置 ActionServlet 的初始化参数,Struts1.1 有一些指定的初始化参数,用于指明 Struts 应用所需要的配置文件,debug 等级等。 controller org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml host localhost port 7001 controller *.do 初始化参数利用进行配置, 配置采用名称-值对的方式, 一个对应一个,初始化参数可以任意定义,例如 host,port,但是有一些在 Struts1.1 中是具有特别意义的,列举如下: 表

8、 2-1. Struts1.1 中用到的初始化参数 参数名参数名 含义含义/默认值默认值 config 以相对路径的方式指明 Struts 应用程序的配置文件位置。如不设置,则默认值为/WEB-INF/struts-config.xml。 config/sub1 以相对路径的方式指明子应用程序的配置文件位置,一般来说,很少用到子应用程序,在此不多描述。 debug 设置 Servlet 的 debug 级别,控制日志记录的详细程度。默认为 0,记录相对最少的日志信息。 detail 设置 Digester 的 debug 级别,Digester 是 Struts 框架所使用的用来解析 xml配

9、置文件的一个框架,通过该设置,可以查看不同详细等级的解析日志。默认为 0,记录相对最少的日志信息。 4、 配置标签库,标签库是 Struts 自带的一些组件库,采用 JSP 规范中 Tag-lib 的方式供大家使用,正是因为存在这么丰富的标签库,使得采用 Struts 的开发才显得这么方便,高效。 controller org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml host localhost port 7001 controller *.do /WEB-INF/struts-html.tld

10、/WEB-INF/struts-html.tld /WEB-INF/struts-bean.tld /WEB-INF/struts-bean.tld /WEB-INF/struts-logic.tld /WEB-INF/struts-logic.tld 标签库采用定义, 含有两个子元素, 和, 用户定义标签库的唯一表示符,可以理解为名字,以后要在 jsp 页面中使用这个标签库,靠的就是它。指明标签库存在的物理路径,当然,和配置文件一样,也是相对路径。 5、 设置 welcome 文件列表(可选步骤) index.jsp 6、 设置错误处理(可选步骤),通常的 http 访问异常包含 404 N

11、ot Found 和 500 Internal Error,为了提供给用户更为友好的显示,可以做如下配置: 404 /common/404.jsp 500 /common/500.jsp 通过如上配置,当用户访问应用中不存在的页面时,将会将用户导向到/common/404.jsp 页面。同样地,当出现异常错误时,将会把/common/500.jsp 显示给用户。 7、 最后,一个完整的 web.xml 示例如下: storefront org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml debug 3

12、 detail 3 1 storefront /action/* index.jsp 404 /common/404.jsp 500 /common/500.jsp /WEB-INF/struts-html.tld /WEB-INF/struts-html.tld /WEB-INF/struts-bean.tld /WEB-INF/struts-bean.tld /WEB-INF/struts-logic.tld /WEB-INF/struts-logic.tld 1、 到此为止,Struts 的开发环境安装算是告一段落。 1. Struts 框架框架 在介绍 Struts 框架之前,先来看看

13、 web 开发的两种模式,这两种模式自 JSP 开发流行以来,就争论不断,它们分别是 JSP Model 1 和 JSP Model 2。 1.1 JSP Model 1 下图是 JSP Model 1 的构架示意图: 用户通过浏览器之间访问 web 应用的 JSP 页面, JSP 提供 UI 显示,JavaBeans 处理数据库访问和业务逻辑。这种开发方式最大的优势是直接、简单,对于小型应用,可以很方便、快速地进行开发。 1.2 JSP Model 2 下图是 JSP Model 2 的构架示意图: JSP Model 2 和 JSP Model 1 最大的区别是引入了 MVC 模式的概念,

14、即 M(Model:业务逻辑),V(View:系统UI),C(Controller:控制)分离,用户的所有请求提交给 Controller,由 Controller 进行统一分配,并且采用推的方式将不同的 UI 显示给用户。这样做得好处是: 1、 可以统一控制用户的行为,例如在 Controller 中添加统一日志记录等功能是非常方便的。 2、 职责分离,有利于各部分的维护。用户不直接访问分散的 UI,这样可以通过配置文件或则流程定义的方式,在不同的环节、时间将不同的页面推向给用户。 1.3 Struts 通过了解 JSP Model 1 和 JSP Model 2,我想大家心里都已经有了选择

15、,在这里,我不想说哪一种构架更好,在不同的环境中,使用恰到好处的技术才是最好的。普遍来说,MVC 分离是个不错的选择。 Struts 框架正是 MVC 分离的一个杰出作品。 首先我们来看一下 Struts1.1 的 UML 图, 以便于我们对 Struts 有个全局的了解: 先不用急着看懂这张图,在下面的学习过程中,我们会慢慢地了解这张图中各个组件的含义。 接下来,我们从 MVC 的角度对 Struts 框架进行探索。 1.3.1 Controller 首先介绍 MVC 中的 C,上面提到了,JSP Model 1 和 JSP Model 2 最大的却别就是 C,那么在 Struts 中,这个

16、 C 是什么呢?他是如何实现的呢?下面我们再来看看这个图: 这是 JSP Model 2的构架图,也是 Struts 的构架图,Struts 使用一个 Servlet 作为 Controller,处理用户的请求,并分派给 Model 进行业务处理, 在合适的时候将合适的 View 推向给用户。 这个 Servlet 是org.apache.struts.action.ActionServlet或其子类。ActionServlet类扩展自javax.servlet.http.HttpServlet类, 其职责是将 http 请求提交给合适 的 处 理 器 (Processor) 进 行 处 理 。 关 于 处 理 器 我 们 在 稍 后 会 介 绍 , 是org.apache.struts.action.RequestProcessor 或其子类的一个实例。 1.3.1.1 Control

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号