已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Web容器接受到以JSP为扩展名的URL的访问请求时,会把该访问请求交给JSP引擎去处理,JSP引擎负责解释执行JSP页面。当一个JSP页面第一次被访问时,JSP引擎会将该页面翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,最后由web容器像调用普通Servlet一样的方式来转载和解释执行这个class类的文件。JSP语言的四种注释:1、”/“:对单行java代码进行注释;2、”/* */“:对多行java代码进行注释;3、”“:对多行标记代码进行注释;4、”“:对多行HTML代码进行注释JSP语言有三种指令标记:1、page指令:对当前JSP页面的特性进行说明;2、include指令:包含另外的JSP页面和HTML页面;3、taglib指令:用于jsp技术的标记库。指令标记的语法格式为:指令的常见属性有:language 属性:用来指定JSP页面所使用的脚本语言extends属性:用来指定JSP页面编译成class文件时所继承的父类;conterntType属性:用来设置响应正文的MIME类型;pageEncoding属性:用来设置JSP页面的字符所使用的字符集编码。Servlet如果想访问Servlet程序。必须通过该Servlet程序的映射路径访问而不是其名字。同时还要注意Servlet程序的映射路径一定要以/开始,或者以*.do的形式出现。但是这种方式/*do是错误的。Struts1.3.10的完整版包含的文件结构:apps:包含了基于Struts1.3.10的示例应用;docs:包含了Struts1.3.10的相关文档,包括Struts1.3.10的快速入门、Struts1.3.10的文档和Struts1.3.10API等内容;lib:包含了Struts1.3.10的核心类库;src:包含了Struts1.3.10的全部源代码。如果想在java Web项目中使用Struts2,只要把Struts2解压后lib文件夹下的Struts-core-2.x.jar、xwork-2.x.jar、ogn-2.x.jar、freemarker-2.x.jar、commons-logging-1.0.4.jar五个必要的类库,复制到java web 应用的WEB-INF/lib路径下就可以了。如果需要在dos窗口下动手编译Struts2.1.6相关的程序,则还需要将spring-core-2.0.8.jar添加到系统的classpath环境变量里。Struts1.x框架由5部分组成:核心控制器ActionServlet:该控制器继承于java.servlet.http.HttpServlet类,其作用就是截取所有请求,然后根据配置文件struts-config.xml把打包到组件ActionForm中的请求转发到相应的业务层控制器(Action)上。封装信息的组件ActionForm:其实际上是一种JavaBean,主要用于进行视图和控制器之间表单数据的传递。业务控制器Action:通常每个动作对于一个Action,其会调用业务逻辑模型的方法、更新业务模型状态和控制业务流程。业务逻辑模型:对于大型应用来说,其一般由JavaBean或EJB来实现,主要用于实现业务的逻辑。配置文件struts-config.xml:ActionServlet会根据该文件决定将请求发给哪个Action对象。当ActionServlet接收到一个请求时,将执行如下流程:1、把请求信息保存到ActionForm对象中,根据配置信息决定是否需要表单验证,如果需要,则调用ActionForm对象的vaildate()方法。2、ActionServlet根据配置文件信息决定把请求转发给哪个Action,如果相应的Action实例不存在就创建该实例,然后调用该Action的execute()方法。3、Action的execute()方法会返回一个ActionForward对象,ActionServlet会把请求转发给ActionForward对象指向的JSP组件。4、ActionForward对象指向的JSP组件生成动态网页返回给浏览器。分析Struts2.x框架 Struts2.x框架由3部分组成: 核心控制器FilterDispatcher:负责拦截所有用户的请求,如果用户的请求以action结尾,该请求将被转入Struts2.x框架处理。 业务控制器组件:实现Action类的实例,该类通常包含一个能返回一个字符串(逻辑视图名)的execute()方法,用来实现项目的业务控制。 业务逻辑组件:跟Struts1.x框架的业务逻辑组件一样,同意由javaBean或EJB来实现。当所有请求被核心控制器FilterDispatcher拦截时,将执行如下流程:1、FilterDispatcher将会请求转发给ActionProxy(Action代理),Action代理会根据配置文件struts.xml决定转发给哪个Action。2、在请求转发给Action过程中,会经过一系列拦截器,这些拦截器负责将请求解析并且转发给相应的Action。3、经过相应Action的execute()方法处理,会得到一个视图名的结果。根据结果结合相应的模板产生相应的输出流。4、输出流也可以经过一系列的拦截器后,传送给浏览器。 SSH:Struts(表示层)+Spring(业务层)+Hibernate(持久层)Struts:Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。(View:沿用JSP,HTTP,Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)Hibernate:Hibernate是一个持久层框架,它只负责与关系数据库的操作。Spring:Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。我们知道,传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使的程序结构分为几层,有负责前台展示的 JSP、负责流程逻辑控制的Servlet以及负责数据封装的Javabean。但是这种结构仍然存在问题:如JSP页面中需要使用符号嵌入很多的 Java代码,造成页面结构混乱,Servlet和Javabean负责了大量的跳转和运算工作,耦合紧密,程序复用度低等等。Struts 为了解决这些问题,出现了Struts框架,它是一个完美的MVC实现,它有一个中央控制类(一个 Servlet),针对不同的业务,我们需要一个Action类负责页面跳转和后台逻辑运算,一个或几个JSP页面负责数据的输入和输出显示,还有一个 Form类负责传递Action和JSP中间的数据。JSP中可以使用Struts框架提供的一组标签,就像使用HTML标签一样简单,但是可以完成非常复杂的逻辑。从此JSP页面中不需要出现一行包围的Java代码了。 可是所有的运算逻辑都放在Struts的Action里将使得 Action类复用度低和逻辑混乱,所以通常人们会把整个Web应用程序分为三层,Struts负责显示层,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写。 使用JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。 Hibernate 这时出现了 Hibernate框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作是,不用再关注数据库表。我们不用再去一行行的查询数据库,只需要持久化类就可以完成增删改查的功能。使我们的软件开发真正面向对象,而不是面向混乱的代码。我的感受是,使用Hibernate比JDBC方式减少了80%的编程量。 现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层的Struts需要调用一个业务类,就需要new一个业务类出来,然后使用;业务层需要调用持久层的类,也需要new一个持久层类出来用。通过这种new的方式互相调用就是软件开发中最糟糕设计的体现。简单的说,就是调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调用,复用度极低。如果一个类做了修改,则依赖它的很多类都会受到牵连。 为此,出现Spring框架。 Spring Spring的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以 Spring框架最核心的就是所谓的依赖注射和控制反转。 现在的结构是,Struts负责显示层,Hibernate负责持久层,Spring负责中间的业务层,这个结构是目前国内最流行的Java Web应用程序架构了。另外,由于Spring使用的依赖注射以及AOP(面向方面编程),所以它的这种内部模式非常优秀,以至于Spring自己也实现了一个使用依赖注射的MVC框架,叫做Spring MVC,同时为了很好的处理事物,Spring集成了Hibernate,使事物管理从Hibernate的持久层提升到了业务层,使用更加方便和强大。 Struts框架是2000年就开始起步了,到目前已经发展了5年,技术相当成熟,目前全球Java开发中Struts框架是显示层技术中当之无愧的王者。它拥有大量的用户群和很好的开发团队。这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑给排水系统水封高度计算方法选择原则制定方法选择
- 中西医诊治糖尿病肾病进展
- 肠道炎症预防控制流程
- 神经科帕金森病康复训练要点
- 绘画构图设计课件
- 病理科组织病理学教程
- 二年日记教学设计
- 滚动轴承轴系结构设计
- 室内设计案例讲解
- 环境光与设计
- 人大强基考试试题及答案
- 心理健康课题中期报告范文
- 2025年重庆市中考生物试卷真题(含标准答案)
- DB32T 5124.3-2025 临床护理技术规范 第3部分:成人危重症患者有创动脉血压监测
- T-FDSCX 002-2024 福鼎白茶标准
- 中外航海文化知到课后答案智慧树章节测试答案2025年春中国人民解放军海军大连舰艇学院
- 【高考真题(含答案)】安徽省新高考2024年化学试卷(含答案)
- 《SPIN销售法精髓》课件
- 电信生产安全事故案例分析(新版.)
- 律师事务所开拓客户培训
- 旁站监理记录表(塔吊拆除)
评论
0/150
提交评论