无线&移动互联网技术研发

换位思考·····
posts - 19, comments - 53, trackbacks - 0, articles - 283
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Struts1 初步认识

Posted on 2009-08-11 00:11 Gavin.lee 阅读(248) 评论(0)  编辑  收藏 所属分类: SSH2 --Struts2

1.为什么要使用struts
a.struts建立在MVC这种公认的好的模式上的,Struts在M,V,C上都有涉及,但它主要提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在C,V上,有MVC的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性呵可伸缩性,便于开发与设计分工,提供集中统一的权限控制,校验,国际化,日志等等;
b.struts它是开源项目,得到了包括它的发明者Craig R.McClanahan在内的一些程序大师和高手持续而细心的呵护,并且经受了实战的检验,使其功能越来越强大,体系也日益完善;
c.struts框架能和其他技术很好的融合,如与Spring,Hibernate等框架的整合,大大加快了开发速度

2.Framework的概念
框架是人们用于解决相同或者相似类型问题的方案
特点:可重用性,可扩展性,可收缩性。基于请求响应(request-response)模式的应用Framework的逻辑结构
控制器:Controller
业务逻辑层:Business Logic
数据逻辑层:Data Logic

3.Struts的概念和体系结构
Struts是Apache组织的一个开源项目,主要是采用Servlet和JSP技术来实现的
Struts是一个基于Sun JavaEE平台的MVC框架,它采用MVC模式,将MVC模式分离显示逻辑和业务逻辑的能力,发挥的淋漓尽致
(Struts is a flexible control layer based on standard technologies like Java Servlets,JavaBeans,ResourceBundles,and XML,as well as various Jakarta Commons packages,like BeanUtils and Chain of Responsibility.The frameword helps you create an extensible developmnt environment for your application,based on published standards and proven design patterns)

4.Struts的实践步骤
步骤一:搭建环境
 a.导入jar包,使用其中的类
 b.建立一个配置文件,struts=config.xml
        方便struts用户使用
        一般在WEB=INF下
 c.修改web.xml
         注册struts中心控制器 --ActionServlet

<serlet>
    
<servlet-name></servlet-name>
    
<servlet-class></servlet-class>
    
<init-param> <!-- 初始化加载配置文件 -->
        
<param-name>config</param-name>
        
<param-value>/WEB-INF/struts-config.xml</param-value>
    
</init-param>
    
<load-on-startup>0</load-on-startup> <!-- web容器启动就加载该servlet -->
</serlet>

<servlet-mapping> <!-- 该servlet对外调用的映射 -->
    
<servlet-name></servlet-name>
    
<url-pattern></url-pattern>
</servlet-mapping>

 
步骤二:建立ActionForm
步骤三:建立Action
 建立一个类,继承Action,覆盖execute方法
 注册,修改配置文件struts-config.xml
  path:指明调用者(jsp)能通过中心控制器ActionServlet找到该Action
  type:指明该action类全名
  name:该action引用的form的名称

步骤四:页面访问


5.Struts的工作原理
6.Struts的组件
7.Struts的配置文件简介
8.Struts标记库
9.异常处理框架
10.校验框架
11.高级特性
12.Struts优缺点
优点:
  Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个

方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标

记,或许Struts是一个很好的起点。
  关于页面导航,我们认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维

护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

缺点:
  Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱我们网页编写的习惯,但是,当我们习惯了它时,我们会觉得它真的很棒。

Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。毫无疑问,要理解 Struts 必须接受一定的培训。随着变化的不断加入,这有时会令人

很沮丧。
  Struts从产生到现在还不过3-4年时间,就已逐步越来越多运用于商业软件。虽然它现在还有不少缺点,但它是一种非常优秀的J2EE MVC实现方式,如果我们的系统准备采用

J2EE MVC架构,那么,不妨考虑一下Struts。
  Struts 是一种基于 Web 的 MVC 解决方案,所以必须用 HTML、JSP 文件和 servlet 来实现它,Struts 需要支持 JSP 1.1 和 Servlet 2.2 规范的 servlet 容器。学习、理

解和掌握Struts是我们每个基于J2EE软件开发人员一门必修的课程,也是我们对企业J2EE技术应用的进一步深化。

/************************************************************************************************/

Struts的基本组件包

org.apache.struts.action
 基本上,控制整个struts framework的运行的核心类、组件都在这个包中,比如我们上面提到的控制器ActionServlet。已经Action,ActionForm,ActionMapping等等。struts1.1比1.0多了 DynaActionForm 类。增加了动态扩展生成FormBean功能

org.apache.struts.actions
 这个包是主要作用是提供客户的http请求和业务逻辑处理之间的特定适配器转换功能,而1.0版本中的部分动态增删FromBean的类,也在struts1.1中被Action包的DynaActionForm组件所取代

org.apache.struts.config
 提供对配置文件struts-config.xml元素的映射。这也是sturts1.1中新增的功能

org.apache.struts.util
 Strtuts为了更好支持web application的应用,体统了一个些常用服务的支持,比如Connection Pool和Message Source。

org.apache.struts.taglib
 这不是一个包,而是是一个客户标签类的集合。下面包括Bean Tags,HTML Tags,Logic Tags,Nested Tags,Template Tags这几个用于构建用户界面的标签类。

org.apache.struts.validator
 Struts1.1 framework中增加了validator framework,用于动态的配置from表单的验证。

/************************************************************************************************/
核心Struts 类和MVC 的对应

类                                                                           描述
ActionForward                                           用户指向或者视图选择
ActionForm                                                状态改变的数据
ActionMapping                                           状态改变事件
ActionServlet                                              控制器,接受用户请求和状态改变,以及发出视图选择
Action                                                        控制器的一部分,于模型交互,执行状态改变或状态查询,
                                                                以及告诉ActionServlet 下一个选择的视图


/************************************************************************************************/
Struts 使用一些配置文件和视图助手(view helpers)来沟通控制器和模型
ApplicationResources.properties                                   存储本地化信息和标签,以使应用可以国际化
struts-config.xml                                                            存储控制器对象的缺省配置,包括模型支持的用户指向,状态改变,状态查询

标记库描述符                                                           目的
struts-html.tld                                               扩展HTML Form的JSP标记
struts-bean.tld                                              扩展处理JavaBean的JSP标记
struts-logic.tld                                              扩展测试属性值的JSP标记

/************************************************************************************************/
控制器组件的配置框架中的控制器组件是有org.apache.struts.action.ActionServlet类实现的,这个类是javax.servlet.http.HttpServlet类的扩展。
ActionServlet配置:我们需要在web.xml中声明ActionServlet,并且将它配置成启动时进行加载。以下为可以配置的初始化参数:
参数                                                         默认值                                                                        描述
application                                                    Null                                                                应用程序的资源集合的类
bufferSize                                                     4096                                                                文件上传的缓冲区大小
config                                            /WEB-INF/struts-config.xml                                        配置文件的位置和名称
content                                                       Text/html                                                                     默认的内容类型
debug                                                              0                                                                          程序调试的级别
detail                                                               0                                                                         程序调试细节的级别
factory                                                         Null                                                 消息资源工厂,用于国际化中解释消息资源
formBean                            org.apache.struts.action.ActionFormBean                         封装ActionForm bean信息的类的名称
forward                              Org.apache.struts.action.ActionForward                          封装ActionForward对象信息的类的名称
locale                                                          True                                                        为true,将在用户会话中存储一个本地对象
mapping                            Org.apache.struts.action.ActionForward                              封装ActionMapping信息的类的名称
maxFileSize                                                250M                                                                 上传文件的最大尺寸
multipartClass                   Org.apache.struts.action.ActionForward                                处理多部分请求的类的名称
noCache                                                      False                                                      HTTP标头是否要设置为禁止缓寸
Null                                                             True                                                       设置为true,对于无效的信息关键字将返回null
tempDir                           作为一个servlet参数提供给程序的工作目录                        处理下载文件是使用的临时工作目录
validate                                                        True                                                              是否使用新格式的配置文件
vallidating                                                     True                                                              是否对配置文件进行有效性分析


 


只有注册用户登录后才能发表评论。


网站导航: