




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
work/training/jsp/jsp syntax Struts简介1. Struts简介1.1. 基本概念Struts是使用servlet 和JavaServer Pages 技术的一种Model-View-Controller 实现。1.2. web架构介绍1.2.1. java web结构1.2.2. Jsp model 1技术实现:JSP+JavaBean特点:1) Jsp作为视图,同时具有部分控制器的功能2) JavaBean组件作为模型,同时具备部分控制器的作用。数据传递关系: 当HTTP请求到达JSP时,它首先设置JavaBean的属性,然后调用JavaBeans组件方法,JavaBeans组件通过连接数据库来执行业务逻辑。最后JavaBean组件把执行结果返回给JSP。优点:模式简单,可以实现页面的显示和页面的逻辑分开。缺点: JSP既要负责业务流程控制,又要负责提供表示层数据,即同时充当视图和控制器的角色,未能实现两个模块的完全分离,当处理的业务逻辑复杂时,页面中会嵌入大量的Java控制代码,使得页面非常庞大,同时也非常复杂,这种模式并不适合开发复杂大型的系统。1.2.3. Jsp Model 2技术实现:Jsp+Servlet+JavaBean特点:1) JSP专门用于显示。2) Servlet用于处理业务逻辑。3) JavaBean 用于在两者之间传递数据。数据传递关系: 客户将请求首先发到Servlet,Servlet通过JavaBean去执行相应的业务逻辑,JavaBean通过JDBC连接数据库,执行数据库操作。并将结果封装在JavaBean中,最后通过Servlet将视图转发到JSP页面。Jsp页面读取JavaBean中封装的数据。优点:具有更清晰的页面表现,清楚的开发者角色划分,可以充分利用开发小组的界面设计人员。缺点: 在响应速度上可能低于模式一。Jsp model1 vs Jsp model2Jsp model1 与Jsp model2 的本质区别在于处理用户请求的位置不同。1.2.4. MVC结构mvc定义:MVC是Model-View-Controller的简称,即模型-视图-控制器。MVC是一种设计模式,它强制性地把应用程序的输入、处理和输出分开MVC把各应用程序分为三个核心模块:模型、视图、控制器,它们分别担负不同的任务。结构图:注意:Mvc是一种设计模式,而不是一种编程技术。1.3.Struts 实现的MVC结构Struts 实质上就是在 JSP Model2 地基础上实现的一个 MVC 框架。在 Struts 框架中,模型由实现业务逻辑地 JavaBean 或 EJB 组件构成,控制器由 ActionServlet 和Action 来实现,视图由一组 JSP 文件构成1.3.1. Struts视图Struts采用JSP作为MVC的视图。每一视图都是采用了定制标签库的JSP页面,这些定制标签库由Struts Framework提供。此外,通常把Struts框架中的ActionForm Bean划分到视图当中。ActionFrom Bean也是一种JavaBean,除了具有一些JavaBean的常规方法外,还包含一些特殊的方法,用于验证HTML表单数据及将其属性重新设置为默认值。Struts框架利用ActionForm Bean来进行视图和控制器之间表单数据的传递。1.3.2. Struts模型模型用于表示应用程序的状态和业务逻辑。对于大型应用,业务逻辑通常有JavaBean或EJB组件来实现。1.3.3. Struts控制器控制器由ActionServlet类和Action类来实现。ActionServlet类是Struts框架中的核心组件。ActionServlet继承了Javax.servlet.http.HttpServlet类,它在MVC模型中扮演中央控制器的角色。ActionServlet主要负责接收HTTP请求信息,根据配置文件struts-config.xml的配置信息,把请求转发给适当的Action对象。Action类负责调用模型的方法,更新模型状态,并帮助控制应用程序的流程。对于小型应用可以完成一些实际的业务逻辑,对于大型应用充当用户请求和业务逻辑处理之间的适配器(Adaptor)。Action侧重与控制应用程序的流程,而不是实现应用程序的逻辑。1.3.4. Struts配置文件Struts配置文件Struts-config.xml存储了Struts的相关配置映射信息。Struts framework根据配置文件使得ServletAction,ctionMapping,Action,ActionForm这几个不同层次的组件相互交互,协调的工作。这些配置文件是在系统启动的时候,读入导内存中,供控制器使用的。Struts framework主要包括三部分的配置描述,一个是指定有关Struts Controller及其相关的的配置描述(Initialization Parameters),一个对struts tag lib的描述,一个是struts组件(ctionMapping,Action,ActionForm)之间相互映射协调的关系 有关Struts Controller及其相关的的配置描述因为Struts Controller的主要类ActionServlet是继承自HttpServlet,所以必须像配置一个Servlet那样在部署描述符(Web.xml)中配置ActionServlet类及其访问映射。 当您第一次创建基于Struts的Web应用程序时,将为您创建一个部署描述符,这通常就足够了。该文件包括下列条目:1) 条目定义用于Web应用程序的servlet(在本例中,这是唯一的servlet): 和指示ActionServlet (标识为“操作”)接收HTTP请求并确定如何响应。 表示servlet初始化参数.“config”指示ActionServlet的行为由指定的配置文件来指导,该配置文件通常具有以下名称:WEB-INFstruts-config.xml“debug”具有整数值,它指示将有关处理的详细信息写至控制台的程度。”detail”具有整数值,它指示将“映射”详细信息(如后面所述)写至控制台的程度。 导致在启动应用程序时装入servlet。2) 元素标识这样的命名模式:当命名模式由URL进行匹配时,Web服务器就将控制权移交给ActionServlet。考虑下面各种情况: 访问了ActionServlet,原因是“操作”(中的元素的内容)与“操作”(中的元素的内容)相匹配。 元素指定URL的结尾的命名模式。每个URL的开头都是应用程序上下文路径。按照惯例,ActionServlet调用对象以响应与命名模式“*do”(其中“*”是通配符)一致的URL。3) 元素指示获得初始控制权的特定于应用程序的代码;在本例中,Web服务器直接从Web Content目录中调用index.jsp。4) 元素指示显示哪个JSP来响应错误;在本例中,错误为如下所示: 404 (找不到资源) 500 (Web服务器内部发生错误)5) 每个元素都使相对URL(相对于Web.xml)与标记库描述符(相对于Web应用程序根目录)相关联。每个JSP都可以使用同一个URL来表示给定的标记库,而Web.xml确定引用了哪个文件。 有关struts tag lib的配置描述如果你的web application打算使用Struts的taglib,那么你有必要在web.xml中对struts taglib进行配置描述。 有关Struts Action Mapping的配置描述作为先前描述的web.xml设置的结果,Web应用程序服务器将请求的一个子集按路径发送至ActionServlet,它通常调用一系列操作和JSP。ActionServlet的响应是基于配置文件struts-config.xml的内容的。有关其DTD文档的描述,请参考/struts/dtds/struts-config_1_1.dtd一般struts-config(version1.1)包含了如下几个部分:1) form-bean2) global-forwards3) action-mappings4) data-sources对于这样的一个请求(例如,表示为“/login.do”),执行下列步骤:1) 寻找操作类对象(继承org. apache.struts.action.Action的类)2) ActionServlet调用操作类对象的执行方法操作类中的执行方法的特征符为如下所示:public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)映射对象(ActionMapping),它包含指示如何响应方法的每个可能结果的规则(“映射”)Struts表单bean(ActionForm),它保存发送至HTML表单或接收自HTML表单的数据请求和响应对象(HttpServletReques/ HttpServletResponse)3) 从执行方法返回ActionForward对象,用于指导ActionServlet接着访问哪个操作类或JSP返回的ActionForward对象中的信息取决于两个值:方法的结果(如在“成功”或“故障”等字符串中所述)映射对象,它包含从Struts配置文件中读取的信息 要弄明白某些运行时关系,要明白struts-config.xml该文件包括下面的一组条目:form-beans标记标识每个表单beanaction-mappings标记包括用于指导应用程序流的信息,每个action子标记都使相对URL与操作类和潜在的后续操作相关。 Form-bean元素Struts配置文件中的一个示例form-bean子元素为如下所示:每个子元素都包括下列属性:1) name表单bean的名称,稍后在配置文件中会用到。ActionServlet举例说明了该bean(如果需要的话)并在将对bean的引用存储在请求或会话对象中时将该名称用作键。2) type类的全限定名称,它继承org.apache.struts.action.ActionForm该类必须在类路径中。接受“Struts贸易样本”中的注册的表单bean包括HTML注册表单中每个字段的getter 和setter方法。该bean还包括验证方法,如下节“验证”中所述。 Action元素 Struts配置文件中的一个示例action元素为如下所示:action path=“/register” type=“strutsEGL.RegisterAction” name=“registerForm” input=“/register.jsp” scope=“request” 每个action元素都包括下列属性中的某些属性或所有属性:1) Path 将请求指定为非限定URL,不带文件扩展名(例如,“/register”)请求是根据action元素中的其它属性来处理的,并且是用户输入的结果或者是在differentaction元素中标识的转发的结果。2) Type 指定在发出请求时调用其执行方法的操作类的全限定名。该类必须在类路径中。注:不指定要实例化的类,可以通过使用forward属性来转发请求,该属性在“Struts贸易样本”中未使用,并且与后面描述的forward子元素不相同。3) Name 用于保存发送至HTML表单或接收自HTML表单的数据表单bean的名称。4) Input 指定相对URL(例如,“/register.do”或“/index.jsp”)必须包括后缀,如果表单bean的验证方法指示发生了输入错误,则会调用URL;有关详细信息,参见下节的“验证”。5) Scope 指定将对表单 bean的引用存储在哪个作用域中。其值为“会话”(缺省值)或“请求”。 Struts配置文件中的每个action元素还包括子元素forward,它指定从方法结果至后续调用的映射。每个forward子元素都包括下列属性6) name 指定导致在运行时使用当前映射的字符串(例如,“success”),但是只限于以下情况:在 type 中引用的操作类的执行方法使用完全相同的字符串来配置返回至ActionServlet的 ActionForward对象。下面的执行方法不是很重要,但是会导致使用“success”映射: public ActionForward exectue( ActionMapping mapping, ActoinForm form, HttpServletRequest request, HttpServletResponse response) Throws IOException,ServletException ActionForward forward=new ActionForward(); Forward=mapping,findForward(“success”); return(forward);7) Path 指定非限定URL(例如,“/home.do” 或“/index.jsp”)必须包括文件扩展名,仅当使用当前映射时才会调用该URL,转发操作类是根据different元素中的属性来处理的,尤其是,在其path属性标识相同URL的元素中。注意:在struts1.1中,提出了对Multiple Application Support。在struts的早先版本中,只有一个struts配置文件,一般叫struts-config.xml。但是,对于越来越复杂的应用系统的发展,只有一个地方存放这个一个文件,对大型项目来说,使用和修改这个配置文件,使其成为了一个应用的瓶颈问题。在struts1.1中,你可以定义多了配置文件协同工作。注:当用户或ActionServlet调用JSP时,请求是由Web应用程序服务器直接处理的不会受到ActionServlet的干预。1.4.Struts 工作流程对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象中,例如Action的映射信息存放到ActionMapping对象中。当ActionServlet接收到一个客户请求时,执行如下流程。(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。(3)根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的validate()方法。rors对象,就表示表单验证成功。(5)ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Acti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度市政工程项目合同执行与监督办法
- 2025房地产租赁市场分析报告委托代理补充协议合同范本
- 2025年度方管产品进出口代理合同
- 2025版砌体工程综合性能检测承包合同
- 2025年度科技产品品牌门店加盟合作协议
- 2025版配电室设备安装与电气安全检测服务合同
- 2025版消防设施设备安全检查与整改服务合同
- 2025年度石料交易市场供应链管理合作协议
- 产品销售与服务合作合同
- 2025年北京新能源汽车指标租赁及充电桩安装合同
- 人力资源培训:招聘与面试技巧
- 委托运营合作合同协议
- 违章作业培训课件
- 2025年中级消防设施操作员(维保)模拟试题题库(附答案)
- 2025届广东省佛山市高三上学期一模数学试卷含答案
- 注射用尖吻蝮蛇血凝酶-药品临床应用解读
- 2025年广西宾阳县昆仑投资集团有限公司招聘笔试参考题库含答案解析
- 2025年医院财务面试试题及答案
- 列管式换热器课程设计
- 体育与健康《立定跳远》教学课件
- 煤炭贸易基础知识
评论
0/150
提交评论