本科毕设论文j2ee的ssh框架的搭建和性能优化.docx
- 文档编号:6238864
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:21
- 大小:96.74KB
本科毕设论文j2ee的ssh框架的搭建和性能优化.docx
《本科毕设论文j2ee的ssh框架的搭建和性能优化.docx》由会员分享,可在线阅读,更多相关《本科毕设论文j2ee的ssh框架的搭建和性能优化.docx(21页珍藏版)》请在冰豆网上搜索。
本科毕设论文j2ee的ssh框架的搭建和性能优化
保定电力职业技术学院
顶岗实习技术应用论文
题目J2EE的SSH框架的搭建和性能优化
系部信息工程与管理系
目录
J2EE的SSH框架的搭建和性能优化-3-
摘要-3-
1.引言-3-
2.Spring+Struts+Hibernate简介-4-
2.1Struts框架结构-4-
2.1.1Model部分-4-
2.1.2.View部分-4-
2.1.3.Controller组件-5-
2.2Spring-5-
2.2.1.轻量-5-
2.2.2.控制反转-5-
2.2.3.面向切面-5-
2.2.4.容器-5-
2.2.5.框架-6-
2.3Hibernate-6-
2.3.1.Session接口-6-
2.3.2.SessionFactory接口-6-
2.3.3.Configuration接口-7-
2.3.4.Transaction接口-7-
2.3.5.Query和Criteria接口-7-
3.阐述SSH整合框架-7-
3.1集成SSH框架-7-
4.基于SSH框架的Web应用系统的实现-8-
4.1数据持久层-8-
4.2业务逻辑层-8-
4.3表示层-10-
5SSH性能的优化-10-
5.1Struts优化-10-
5.1.1 logging和开发模式-10-
5.1.2. 拦截器-11-
5.1.3.缓存和过期时间-11-
5.1.4.Ajax theme(Dojo)或者Calendar标签-11-
5.1.5.freemark载入模板-11-
5.1.6.freemark模板缓存-11-
5.1.7. 模板路径-11-
5.1.8.session-11-
5.1.9.标签的使用-12-
5.2Spring优化-12-
5.3Hibernate优化-13-
5.3.1、数据库设计-13-
5.3.3、主配置-14-
5.3.4、缓存-14-
5.3.5、延迟加载-14-
5.3.6、方法选用-15-
5.3.7、集合的选用-15-
5.3.8、事务控制-15-
5.3.9、批量操作-16-
5.3.10、Hibernate的缓存-16-
5.3.11Hibernate性能调优-18-
6.结语-20-
致谢-21-
参考文献-22-
J2EE的SSH框架的搭建和性能优化
姓名:
李朝云班级:
软件1101班学号:
180111121
摘要
针对当前Web应用程序开发面临的问题,结合目前比较流行的开源框架Spring、Struts和Hibernate,提出了一种开发J2EEWeb应用的轻量级解决方案,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。
并且,通过案例具体说明了如何将这一方案应用到实际项目中。
关键词:
J2EE MVC Struts Spring Hibernate
1.引言
大型企业级Web应用系统的开发通常要求有一个良好的软件架构、便于协作开发和扩展升级,而传统的开发模式不能很好地满足这些要求。
本文针对当前Web应用程序开发面临的问题,结合目前比较流行的开源框架SSH(Spring、Struts、Hibernate),提出一种开发J2EE企业级Web应用的轻量级解决方案,并通过案例具体说明如何将这一方案应用到实际项目中。
2.Spring+Struts+Hibernate简介
SSH在J2EE项目中表示了3种框架,即Spring+Struts+Hibernate。
Struts对Model,View和Controller都提供了对应的组件。
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它由RodJohnson创建。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,可以应用在任何使用JDBC的场合,可以在Servlet/JSP的Web应用中使用,也可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
2.1Struts框架结构
如图:
Struts对Model,View和Controller都提供了对应的组件。
在右图中,ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求。
Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。
2.1.1Model部分
由ActionForm和JavaBean组成,其中ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。
JavaBean则封装了底层的业务逻辑,包括数据库访问等。
2.1.2.View部分
该部分采用JSP实现。
Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。
对应上图的JSP部分。
2.1.3.Controller组件
Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。
系统核心控制器,对应上图的ActionServlet。
该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。
该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。
业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。
对应Action部分。
2.2Spring
简介
◆目的:
解决企业应用开发的复杂性
◆功能:
使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:
任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
2.2.1.轻量
从大小与开销两方面而言Spring都是轻量的。
完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。
并且Spring所需的处理开销也是微不足道的。
此外,Spring是非侵入式的:
典型地,Spring应用中的对象不依赖于Spring的特定类。
2.2.2.控制反转
Spring通过一种称作控制反转(IoC)的技术促进了松耦合。
当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
2.2.3.面向切面
Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。
应用对象只实现它们应该做的——完成业务逻辑——仅此而已。
它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
2.2.4.容器
Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。
然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
2.2.5.框架
Spring可以将简单的组件配置、组合成为复杂的应用。
在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。
Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。
它们也为Spring中的各种模块提供了基础支持。
2.3Hibernate
简介 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate的核心接口一共有5个,分别为:
Session、SessionFactory、Transaction、Query和Configuration。
这5个核心接口在任何开发中都会用到。
通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
下面对这五个核心接口分别加以介绍。
2.3.1.Session接口
Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。
)。
但需要注意的是Session对象是非线程安全的。
同时,Hibernate的session不同于JSP应用中的HttpSession。
这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。
2.3.2.SessionFactory接口
SessionFactory接口负责初始化Hibernate。
它充当数据存储源的代理,并负责创建Session对象。
这里用到了工厂模式。
需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
2.3.3.Configuration接口
Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。
在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
2.3.4.Transaction接口
Transaction接口负责事务相关的操作。
它是可选的,开发人员也可以设计编写自己的底层事务处理代码。
2.3.5.Query和Criteria接口
Query和Criteria接口负责执行各种数据库查询。
它可以使用HQL语言或SQL语句两种表达方式。
3.阐述SSH整合框架
SSH在J2EE项目中表示了3种框架。
那么怎样将三者结合起来形成一个框架呢?
3.1集成SSH框架
集成SSH框架的系统从职责上分为四层:
表示层、业务逻辑层、数据持久层和域模块层。
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。
具体做法是:
用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring完成业务逻辑。
系统的基本业务流程是:
在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。
在业务层中,管理服务组件的SpringIoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。
而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。
这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。
而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。
4.基于SSH框架的Web应用系统的实现
下面将通过一个实际的系统来展示如何进行基于SSH框架的Web应用开发。
该系统是为某通信公司运营部开发的一个问答式系统,功能类似于XX知道和新浪爱问。
由于系统的模块较多,下面就以一个用户管理模块为例来说明系统的开发实现过程,并将按照数据持久层、业务逻辑层、表示层的顺序说明系统构建过程。
4.1数据持久层
数据持久层由Java对象持久化类和数据访问对象(DAO)组成。
每个数据库表都对应着一个持久化对象,这样就给予了开发者使用OO思想设计和开发的便利,同时也屏蔽了具体的数据库和具体的数据表、字段,消除了对数据库操作的硬编码在重用性上的弊端。
用户信息表的部分结构如表1所
Hibernate通过映射(Mapping)文件将对象(Object)与关系型数据(Relational)相关联,因此需要编写和数据库表相对应的Java持久化类以及对应的映射文件。
有了Java持久化类后就可以在此基础上实现数据访问类。
在Spring框架中,数据访问类可以从辅助类HibernateDaoSupport继承,这极大地方便了Hibernate框架在Spring中的使用,相应的部分代码如下:
publicclassUserDao
extendsHibernateDaoSupport{
publicintadd(Useruser){
returnInteger.ParseInt(this.getHibernateTemplate().save(user).toString());
}
publicListfindAll(){
returnthis.getHibernateTemplate().loadAll(User.class);
}
}
具体的Hibernate数据源、session工厂、事务管理、缓冲连接池等功能都由业务层的Spring容器提供。
4.2业务逻辑层
业务逻辑层由Spring框架支持,提供了处理业务逻辑的服务组件。
开发者需要对业务对象建模,抽象出业务模型并封装在Model组件中。
由于数据持久层实现了Java持久化类并且封装了数据访问对象(DAO),因此可以在Model组件中方便地调用DAO组件来存取数据。
Spring的IoC容器负责统一管理Model组件和DAO组件以及Spring所提供的事务处理、缓冲连接池等服务组件。
在用户管理模块中,通过业务建模创建了用户模型UserService类,封装了对用户的权限管理以及积分管理等功能。
UserService类通过调用数据访问类UserDao实现对用户数据的操作。
这些组件的关系将通过配置Spring框架的applicationContext.xml联系起来,配置文件的主要内容如下:
//www.springframework.org/schema/beans" xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xmlns: context="http: //www.springframework.org/schema/context" xmlns: aop="http: //www.springframework.org/schema/aop" xmlns: tx="http: //www.springframework.org/schema/tx" xsi: schemaLocation="http: //www.springframework.org/schema/beanshttp: //www.springframework.org/schema/beans/spring-beans-2.5.xsd http: //www.springframework.org/schema/contexthttp: //www.springframework.org/schema/context/spring-context-2.5.xsd http: //www.springframework.org/schema/txhttp: //www.springframework.org/schema/tx/spring-tx-2.5.xsd http: //www.springframework.org/schema/aophttp: //www.springframework.org/schema/aop/spring-aop-2.5.xsd"> class="mons.dbcp.BasicDataSource"destroy-method="close"> value="com.mysql.jdbc.Driver"> value="jdbc: mysql: //localhost: 3306/JXCproject"> class="sessionfactory.SesstionFactory"> --行政区域实体类 [CDATA[^[\w\.]+Test[\w]+$]]> 4.3表示层 表示层结合JSP和Struts的TagLib库处理显示功能,利用ActionServlet将请求(*.do)映射到相应的Action,并由Action调用业务逻辑的服务组件,然后根据处理结果跳转到Forword对象指定的响应页面。 业务流程的部署由struts-config.xml完成。 下面以一个显示所有用户信息的请求(ListUser.do)为例来说明配置文件的使用。 基于J2EE的Web应用以其层次性、平台无关性的优势已经逐渐成为了电子商务、电子政务主要的解决方案。 本文针对传统的J2EEWeb应用开发的弊端,介绍了一种利用轻量级框架来快速搭建Web应用的解决方案,并且通过其在实际项目中的应用,证明了采用此方案可以帮助开发人员在短时间内建立结构清晰、可重用性好、维护扩展方便的Web应用程序。 5SSH性能的优化 5.1Struts优化 5.1.1 logging和开发模式 关闭logging和开发模式(devMode), devMode是在struts.properties中设置的, 关闭logging需要修改web.xml文件,加入以下参数 5.1.2. 拦截器 除非需要,否则不要使用拦截器(interceptor). 如果一个Action不需要全栈的拦截器的话,就使用basicStack拦截器或移除不需要的拦截器。 5.1.3.缓存和过期时间 正确设置页面的Cache-Control 和 Expires 使用正确的HTTP头(缓存控制和过期时间) 当返回一个html页面的时候,要保证html页面包含正确的header,使得浏览器可以知道怎样缓存该html页面。 5.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 论文 j2ee ssh 框架 搭建 性能 优化
![提示](https://static.bdocx.com/images/bang_tan.gif)