Struts技术手册docIT168文库.docx
- 文档编号:5424019
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:104
- 大小:1.13MB
Struts技术手册docIT168文库.docx
《Struts技术手册docIT168文库.docx》由会员分享,可在线阅读,更多相关《Struts技术手册docIT168文库.docx(104页珍藏版)》请在冰点文库上搜索。
Struts技术手册docIT168文库
STRUTS资料
目 录
第一章引言5
第二章MVC模式6
2.1MVC设计模式6
2.1.1视图6
2.1.2模型6
2.1.3控制器7
2.2MVC在J2EEWeb层设计的体现7
2.2.1JSPModel17
2.2.2JSPModel27
第三章Struts框架概述9
3.1Struts实现MVC的机制9
3.1.1视图9
3.1.2模型10
3.1.3控制器10
3.1.4Struts的配置文件Struts-config.xml10
3.1.5DataSourceConfiguration11
3.1.6FormBeanDefinitions12
3.1.7GlobalExceptionDefinitions12
3.1.8GlobalForwardDefinitions13
3.1.9ActionMappingDefinitions14
3.1.10ControllerConfiguration15
3.1.11MessageResourcesDefinitions16
3.1.12PlugInsConfiguration16
3.2Struts的工作流程17
第四章Struts标准库标签19
4.1StrutsHtml标签库19
4.1.1用于生成基本HTML元素的标签19
4.1.2基本的表单标签21
4.1.3检查框和单选按钮标签22
4.1.4下拉列表和多选列表标签23
4.1.5在表单中上传文件标签26
4.1.6 errors>标签26 4.1.7 messages>标签29 4.1.8总结29 4.2StrutsBean标签库29 4.2.1访问HTTP请求信息或JSP隐含对象30 4.2.2访问Web应用资源32 4.2.3定义或输出JavaBean34 4.3StrutsLogic标签36 4.3.1进行比较运算的Logic标签36 4.3.2进行字符串匹配的Logic标签38 4.3.3判断指定内容是否存在的Logic标签39 4.3.4进行循环遍历的Logic标签42 4.3.5进行请求转发或重定向的Logic标签44 4.4总结44 第五章开发Struts程序46 5.1JBuilderX开发Struts。 46 5.1.1JBuilder对于Struts之支持46 5.1.2JBuilder开发实例48 5.1.3运行效果61 5.2使用Struts标签库63 5.2.1JBuilder开发实例64 第一章引言 框架结构在近阶段的程序开发中被越来越多的运用,Struts就是其中一种。 这种框架结构对于程序结构的规范化和后期修改都有很大的好处,今后我们将陆续对此进行介绍。 我们这次的专题首先介绍一下目前应用很多的Struts。 StrutsWeb应用在前台网页和后台业务逻辑部分连接的MVC实现,使前台的网页设计和后台的部分编码分离了,便于软件设计人员对程序的修改。 整个Struts主要包括一个框架和可扩展的自定义标签库,框架很简单,用户只要继承Action类和使用定义好的其他类(比如ActionErrors)就好了。 当然Struts中最好用的地方应该是Form概念,保证了数据和处理的分离。 目前的IDE对Struts支持的相当好,Jbuilder等工具中也有自动将Jsp网页转化为Struts格式的功能。 第二章MVC模式 在介绍Struts之前,先来了解介绍一下,MVC设计模式。 MVC是Model—View—Controller的简称,即模型—视图—控制器。 MVC是XeroxPARC在20世纪80年代为编程语言Smalltalk—80发明的一种软件设计模式,至今已被广泛使用,最近几年被推荐为Sun公司J2EE平台设计模式,受到Web开发者的欢迎。 二.1MVC设计模式 MVC是一种设计模式,它强制性的把应用程序的输入,处理,和输出分开。 MVC中的三个核心模块: 模型、视图、控制器,他们分别担负不同的任务。 如图2-1.这几个模块各自的功能以及它们的相互关系。 (图2-1) 二.1.1视图 视图是用户看到并与之交互的界面。 视图向用户显示相关的数据,并能接收用户的输入数据。 但是它并不进行任何实际的业务处理。 视图可以查询业务状态,但不能修改模型。 二.1.2模型 模型是应用程序的主体部分。 模型表示数据和业务逻辑。 一个模型能为多个视图提供数据。 由于同一个模型可以被多哥试图重用,所以提高了应用的可重用性。 二.1.3控制器 控制器接受用户的输入并调用模型和视图去完成用户的需求。 当Web用户单击Web页面的中提交按钮来发送HTML表单时,控制器接受请求并调用相应模型组件去处理请求,然后调用响应的视图显示模型返回的数据。 二.2MVC在J2EEWeb层设计的体现 二.2.1JSPModel1 JSPModel1体系中如图2-2所示,JSP页面负责响应用户请求并将处理结果返回用户。 JSP既要负责业务流程控制又要负责提供表示层数据,同时充当视图和控制器,未能实现这两个模块之间的独立和分离。 使得JSP页面上有大量的Java代码,这样维护会非常不方便,给项目管理带来很大麻烦。 应用服务器和数据库 (图2-2) 二.2.2JSPModel2 JSPModel2体系结构(如图2-3)是一种联合使用JSP与Servlet来提供动态内容服务的方法。 它吸取了JSP和Servlet两种技术各自的突出优点,用JSP生成表示层的内容,让Servlet完成深层次的处理任务。 在这里,Servlet充当控制器的角色,负责处理用户请求,创建JSP页面需要是使用的JavaBean对象,根据用户请求选择合适的JSP页返回给用户。 在JSP页面中没有业务逻辑,它仅负责检索原先由Servlet创建的JavaBean对象,从Servlet中提取动态内容插入到静态模版中。 事实上,项目越复杂,使用Model2设计模式的好处就越大。 应用服务器和数据库 (图2-3) 我们所要探讨的Struts实质上就是在JSPModel2的基础上实现的一个MVC框架。 第三章Struts框架概述 三.1Struts实现MVC的机制 Struts实质上就是在JSPModel2的基础上实现的一个MVC框架。 在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和Action来实现,视图由一组JSP文件构成。 图1-12显示了Struts实现的MVC框架。 三.1.1视图 视图就是一些JSP文件。 这些文件中没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准的JSP标签或客户化标签,如Struts标签库 (注: 项目经理因根据项目,需要来确定是否使用标签库。 ) 此外ActionFormBean也可以划分到视图模块中。 ActionFormaBean也是一种JavaBean,除了常规的JavaBean方法外,还包含一些特殊的方法如reset和validate方法,可以用于验证HTML表单数据(validate方法)以及将其属性重新设置(reset方法)。 三.1.2模型 模型表示应用程序的状态和业务逻辑,对于大型应用,业务逻辑通常用JavaBean或EJB组件来实现。 三.1.3控制器 控制器由ActionServlet类和Action类来实现。 ActionServlet类是Struts框架中的核心组件。 (我们在开发中一般不用关注到ActionServelt,它的一些处理是由Struts框架自身完成的)。 我们所要关注的是Action类,它负责调用模型(JavaBean和EJB)的方法,并帮助控制应用程序的流程。 在大型项目应用中,Action充当用户请求和业务逻辑处理之间的适配器(Adaptor),其功能就是将请求与业务逻辑分开,Action根据用户请求调用相关的业务逻辑组件(JavaBean和EJB)。 Action类侧重欲控制应用程序流程的管理,而不是实现应用程序的业务逻辑。 当ActionServlet控制器接收到用户请求后,把请求转发到一个相对应的Action实例上。 然后调用Action的execute()方法。 Action的exectue()方法返回一个ActionForward对象,它封装了把用户请求再转发给其他WEB组件的信息。 用户自定义自己的Action类,即Action基类的子类时,必须覆盖execute()方法。 在Action基类中execute()返回null。 三.1.4Struts的配置文件Struts-config.xml Sturs框架允许把应用划分成多个组件,提高开发速度。 而Struts框架的配置文件struts-config.xml可以把这些框架组装起来,决定如何使用它们。 例如: (下页) xmlversion="1.0"encoding="UTF-8"? > DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.1//EN""http: //jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> --===DataSourceConfiguration===--> --=====FormBeanDefinitions===--> --====GlobalExceptionDefinitions====--> --======GlobalForwardDefinitions===--> --=====ActionMappingDefinitions====--> --==ControllerConfiguration===--> --===MessageResourcesDefinitions===--> --====PlugInsConfiguration=====--> 三.1.5DataSourceConfiguration 数据源负责建立和特定数据库的连接。 在项目开发时一般不使用该设置。 格式: mysql: //localhost: 3306/addressbooksample”/> 以上是Mysql的数据源的配置,实际中使用可以根据实际情况进行改变。 获得数据源: dataSource=getDataSource(request); myConnection=dataSource.getConnection(); 回主体 三.1.6FormBeanDefinitions 每个 属性 描述 className 指定和 name 指定该ActionFormBean的唯一标识符,整个Struts框架用该标识符来引用这个bean。 该属性是必需的。 type 指定ActionForm类的完整类名,该属性是必需的。 例如: 如果配置动态ActionFormBean就要设置 属性 描述 dynamic 指定是否是动态ActionFormBean(Struts1.2将废出该属性) name 指定表单的每个字段 type 指定表单字段的类型。 如果表单字段为Java类,必须给出完整的类名。 回主体 三.1.7GlobalExceptionDefinitions 可以包括零个或多个Exception。 这里定义的exception为全局异常。 对 属性 描述 className 指定和 handler 指定异常处理类 path 指定当异常发生时的转发路径 scope 指定ActionMessages实例的存放范围 type 指定所需要处理的异常的名字,必须 bundle 指定ResourceBundle 以下是配置 path=”/security/signin.jsp” scope=”request” type=”netstor.framework.exceptions.InvalidLoginException”/>--异常类 回主体 三.1.8GlobalForwardDefinitions 属性 描述 className 和 contextRelative 如果此项为true,表示当path属性以”/”开头时,给出相对于当前上下文的URL,此项的默认值为False name 转发路径的逻辑名,此项是必需的 path 指定转发或重定向的URL。 此项是必需的,必须以”/”开头。 当contextRelative属性为false时,表示URL路径相对于当前应用(application-relative);当contextRelative属性为true时,表示URI路径相对于当前上下文(context-relative) redirect 当此项为true时,表示执行重定向操作,为false,表示执行请求转发操作,默认为false 例如: 如果JSP1.jsp把请求转发给Action1则代码为 forward=”forward1”>或者 forwardname=”forward1”/> 回主体 三.1.9ActionMappingDefinitions 属性 描述 attribute 设置和Action关联的ActionFormBean在request或session范围内的属性key className 和 forward 指定转发的URL路径 include 指定包含的URL路径 input 指定包含输入表单的URL路径.当表单验证失败将把请求转发到该URL name 指定该Action对应的ActionFormBean的名字,该名字必须在 path 指定访问Action的路径,它以”/”开头,没有扩展名 parameter 指定Action的配置参数。 在Action类的execute()方法中,可以调用ActionMapping对象的getParameter()方法来读取该配置参数 roles 指定允许使用该Action的安全角色。 多个角色之间用逗号隔开 scope 指定ActionFormBean的存在范围,request或session,默认为session type 指定Action类的完整类名 unknown 如果此项为true,表示可以处理用户发出的所有无效的ActionURL。 默认为false validate 指定是否要先ActionFormBean的validate方法,默认为true 注: 例如: type=”addressbook.actions.SearchAction” name=”searchForm” scope=”request” validate=”true” input=”/search.jsp” > 注: 如果在 在设计时,不允许出现在全局和局部中 回主体 三.1.10ControllerConfiguration 属性 描述 bufferSize 指定上载文件的输入缓冲的大小。 该属性为可选项,默认值为4096 className 指定和 默认为”org.apache.struts.org.config.ControllerConfig” contentType 指定响应结果的内容类型和字符编码。 该属性为可选项,默认为”text/html”。 如果Action或JSP中设置了内容类型和字符编码,则会覆盖该设置。 locale 指定是否把Locale对象保存到当前用户的Session中,默认为False processorClass 指定负责处理请求的Java类的完整类名。 默认为org.apache.struts.action.RequestProcessor。 如果把此目录设置为自定义类必须继承RequestProcessor tempDir 指定处理文件上载的临时工作目录。 如果此项没有设置,将采用Servlet容器为Web应用分配的临时工作目录。 nochache 如果为true,在响应结果中将加入特定的头参数: Pragema,Cache-Control和Expires,防止也面被存储在客户浏览器的缓存中。 如果应用包含多个子应用,可以在每个子应用的struts配置文件中配置 这样,尽管这些子程序的应用共享同一个ActionServlet对象,但是他们可以使用不同的RequestProcessor类。 例如:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Struts 技术 手册 docIT168 文库