JSP开发技术标准提出的两种设计模式.doc_第1页
JSP开发技术标准提出的两种设计模式.doc_第2页
JSP开发技术标准提出的两种设计模式.doc_第3页
JSP开发技术标准提出的两种设计模式.doc_第4页
JSP开发技术标准提出的两种设计模式.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JSP开发技术标准提出的两种设计模式 Model1:Model1设计模式是JSP+JavaBean的开发模式 Model2:Model2设计模式是JSP+JavaBean+Servlet的开发模式一Jsp Model 11.传统的Jsp Model 1模型 Jsp是独立的,自主完成所有的任务2.改进的Jsp Model 1模型 Jsp页面与JavaBeans共同协作完成任务 3.Jsp Model1的优点:这种架构模型非常适合小型Web项目的快速开发,而且对Java Web开发人员的技术水平要求不高4.Jsp Model1的缺点:IHTML和JAVA强耦合在一起,导致页面设计与逻辑处理无法分离 II可读性差,调试困难,不利于维护III功能划分不清二Jsp Model21.Jsp Model2中使用了三种技术JSP、Servlet和JavaBeansJsp负责生成动态网页,只用做显示页面。Servl et负责流程控制,用来处理各种请求的分派。JavaBeans负责业务逻辑,对数据库的操作。2.使用Jsp Model2的交互过程:用户通过浏览器向Web应用中的Servlet发送请求,Servlet接受到请求后实例化JavaBeans对象,调用JavaBeans对象的方法,JavaBeans对象返回从数据库中读取的数据。Servlet选择合适JSP,并且把从数据库中读取的数据通过这个JSP进行显示,最后JSP页面把最终的结果返回给浏览器。3.Jsp Model2优点I消除了Jsp Model1的缺点:II应用程序被分隔为3层,降低了层间的耦合,提供了应用的可扩展性该模式适合多人合作开发大型的Web项目III各司其职,互不干涉IV有利于开发中的分工V有利于组件的重用,更符合软件的工程化管理精神VI模型返回的数据与显示逻辑分离模型数据可以应用任何的显示技术,例如使用JSP 页面、 Velocity 模板或者直接产生 Excel 文档等4.Jsp Model2缺点Web项目的开发难度加大,同时对开发人员的技术要求也提高了自己写的Model2缺点 自己写的Model2控制器太多,不能复用 开发效率低 结构不一致 因此我们可以使用现成的MVC框架:Struts框架 :framework 什么是框架 这个词来源于建筑行业 大部分的建筑主体都是相同的 那么可以提前预制好框架 在此基础上施工 这就是框架 一个半成品软件中的框架 程序的半成品 :实现了其中的一部分 重复的 常用的 通用的部分(接受请求 分发请求 数据类型转换 数据校验 国际化等 流程控制 持久化 ) 在此基础上 程序员不用去管通用功能 直接根据业务 进行快速的开发 1 提高开发效率 2 规范的作用 一个新手 也很容易开发出相对规范的产品在同一个框架上开发的程序 虽然细节不同 但大体的结构是相同的便于维护常用的框架ssh struts spring hibernate一个程序 基本划分为三个部分 与用户交互的表示层 负责业务逻辑的业务层 专门与数据库交互的数据访问层struts - 表示层 mvc 框架 实现了mvc 中的一部分常见功能hibernate - 持久化 框架 (以前数据库处理时使用的是jdbc,现在使用hibernate)spring - 管理系统的实体 降低各部分耦合性 struts的基本工作流程 mvc结构的演变 。Struts 是 Apache 软件基金组织 Jakarta 项目的一个子项目struts版本struts1.X struts2.x 注意:这两个版本其实相差很大,struts2框架是基于另一个MVC框架webwork1 第一个struts程序。a). 创建web工程 b). 添加struts支持(第7页)struts1.3 一般选中Install Struts TLDs步骤b在web-inf下产生struts-config.xml文件,并修改了web.xmlweb.xml 配置总控制器(ActionServlet)。Web.xml中设置了struts1的中心控制器ActionServletStruts1的servlet控制器只有一个,即ActionServletc). 创建dao模式的相关内容Admin实体类,AdminDao类,DaoFactory类D)创建表单E) 创建自定义ActionForm类,必须继承org.apache.struts.action.ActionForm注意:这个类的属性和表单中的文本框的名字完全相同!私有String属性为username,password setters/gettersF) 创建自定义Action类,必须继承org.apache.struts.action.Action类参数名参数说明ActionMapping mapping对应Struts配置文件中的forward元素,主要用来根据业务处理结果实现页面跳转,下面会做详细介绍ActionForm form对应项目中的某个ActionForm,例如本例中的LoginFormHttpServletRequest req当前HTTP请求对象HttpServletResponse res当前HTTP响应对象public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception String name = request.getParameter(username);String pw = request.getParameter(password);LoginForm lf = (LoginForm) form;String name =lf.getUsername();String pw = lf.getPassword(); mapping.findForword(“success”);g). struts-config.xml 配置action.最初样式 配置元素说明Struts 1配置文件的根元素用来配置项目中的ActionFrom,包含子元素,一个子元素配置一个ActionFrom用来配置项目中的业务逻辑控制器Action,包含子元素,一个子元素配置一个Action用来配置本地化消息资源文件,可以实现国际化第一步配置:配置actionform Name可以自定义,不能重复 type是ActionForm类的完整路径第二步配置:配置action 所有的Action都配置在元素中,一个元素配置一个Action表1-1-4 元素的常用属性属性说明name此属性并不是Action的名字,而是与之关联的ActionFrom的名字,即在元素中的名字type用来设置Action的实现类,必须给出完整类名path用来设置路径名,ActionServlet拦截此路径并转发给Action,此路径名必须与表单action属性的值保持一致,以”/”开头scope用来设置相关联的ActionForm的作用域,可以取值request和session,默认值为request action 表1-1-5列出了元素的常用属性。表1-1-5 元素的常用属性属性说明name用来设置一个逻辑名,在Action类中使用,例如: mapping.findForward(success);path用来设置某个视图的路径redirect用来设置是否使用重定向。取值为true时,表示在跳转过程中使用重定向的方式,取值为false时表示使用转发的方式,默认值为falseIndex.jsp如果为false,可以通过以下方式显示ActionForm的信息 $requestScope.loginForm.username $requestScope.loginForm.password ActionForm开发注意点:1 必须是个bean 要继承actionForm 类2 属性名一定要和表单的name 一致 3 在映射文件中配置 其中name 属性是告诉总控制器 我需要使用 这个bean封装数据4 转型 formbean具有常见的数据类型转换 和数据校验功能。 总结 结构 和 流程 : 总控制器 (servlet) 负责接收和分发用户的请求 :-对应进行任务分发的servletaction - 对应用户的一个动作,业务控制器 负责调用model 处理请求 这两部分 对应 mvc 的 控制器 视图 : jsp struts提供了formbean 和大量的struts标签 。而模型 struts则完全没有提供支持。 差别不大 其重点在于与用户交互1 服务器启动 加载actionServlet actionservlet 读取struts-config.xml并实例化mapping对象2 用户发送.do 请求 actionservlet 查找配置文件 找到对应的action 3 如果该action 使用了actionform则 自动创建 form对象 将request 中的参数放入form (还可以做数据类型转换) 4 创建action对象 5 调用action 的execute方法 并将 request response mapping form对象 传递进去 6 action 中 转换form类型 取出参数 调用model 并返回forward 对象 7 actionservlet 根据forward 对象 进行相应的跳转最大的区别在哪里 : 配置文件struts-config.Xml 通过配置文件的使用 成功的降低了 程序各部分的偶和性 提高了扩展性总结:Struts 1运行流程前面我们已经使用Struts 1开发了一个简单的登录程序,下面我们以这个程序为例来介绍Struts 1的运行流程,从而更进一步的了解Struts 1框架。我们看图1.1.10。下面我们按照上图中的运行流程进行详细讲解。(1)客户端浏览器打开login.jsp页面,输入登录名称和登录密码后提交表单,这时客户端向服务器端发送了一个HTTP请求,该请求包含表单数据并以“.do”结尾。(2)服务器端的ActionServlet接收并拦截来自客户端的HTTP请求,同时读取struts-config.xml文件并按照配置(先看action的path,找到对应的action,通过action的name属性找到actionform)将请求中的表单数据封装到一个FormBean中,即LoginForm。(3)ActionServlet按照配置把HTTP请求转发给相应的Action(LoginAction)进行处理。(4)Action(LoginAction)接收到HTTP请求后立即执行execute方法(注意:第四个参数ActionMapping可以看作struts-config.xml中当前action的映射),先从LoginForm中取出表单数据。(5)调用JavaBean(AdminDao)实现登录验证。(6)根据验证结果(mapping.findForward(“success”))返回相应的ActionForward(ActionForward相当于一个forward标记)给ActionServlet。(7)ActionServlet根据配置和返回的ActionForward转发请求到相应的视图。如果登录成功转发到index.jsp,否则转发到fail.jsp。(8)如果转发到了index.jsp,那么该页面调用JavaBean(Admin)取出了登录名称并显示。补充: 实验 : action 是单实例的 只在第一次使用的时候 创建一次所以:我们创建Action时,不要将数据放到方法的外面! 跳

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论