毕业设计(论文)-基于JetSpeed的数字化教务信息门户的设计和开发.doc_第1页
毕业设计(论文)-基于JetSpeed的数字化教务信息门户的设计和开发.doc_第2页
毕业设计(论文)-基于JetSpeed的数字化教务信息门户的设计和开发.doc_第3页
毕业设计(论文)-基于JetSpeed的数字化教务信息门户的设计和开发.doc_第4页
毕业设计(论文)-基于JetSpeed的数字化教务信息门户的设计和开发.doc_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)资料设计(论文)题目: 基于JetSpeed的数字化教务信息门户 的设计和开发 系部: 计算机科学与技术 专 业: 计算机科学与技术 学 生 姓 名: 班 级:数据库一班 学号 指导教师姓名: 职称 副教授 最终评定成绩 教务处 二七年十月制目 录第一部分 毕业论文一、毕业论文第二部分 外文资料翻译一、外文资料原文二、外文资料翻译第三部分 过程管理资料一、 毕业设计(论文)课题任务书二、 本科毕业设计(论文)开题报告三、 本科毕业设计(论文)中期报告四、 毕业设计(论文)指导教师评阅表五、 毕业设计(论文)评阅教师评阅表六、 毕业设计(论文)答辩评审表2009 届本科生毕业论文资料第一部分 毕业论文(2009 届)本科生毕业论文基于JetSpeed的数字化教务信息门户的设计和开发系部: 计算机科学与技术 专 业: 计算机科学与技术 学 生 姓 名: 班 级:数据库1班 学号 指导教师姓名: 职称 副教授 最终评定成绩 2009 年 5月 本科生毕业论文基于JetSpeed的数字化教务信息门户的设计和开发系 (部):计算机科学与技术 专 业:计算机科学与技术学 号:学生姓名:指导教师: 副教授 2009 年 5 月 毕业设计(论文) 摘 要本文主要介绍了如何用portal和jetspeed技术来实现一个数字化教务信息门户系统。论文阐述了portal(门户)的概念,功能及其JSR168规范标准;说明了jetspeed的框架,工作流程及其核心技术;叙述了spring框架对portlet的支持和hibernate的配置。本文还介绍了系统的需求分析,数据库设计,及其测试用例,比较详细的描述了整个系统的实现过程。本系统主要是对教务信息的管理和发布以及浏览,采用功能强大的java语言和灵活的xml语言,用myEclipse工具来开发,使用了spring Framework框架,底层数据用hibernate来封装,数据库用的是mysql。利用portlet组件来来实现个性化和系统集成,并通过jetspeed来进行部署,最后采用tomcat6.0作为web运行服务器。关键词:门户系统,portal,jetspeed,springABSTRACTThis paper describes how to use portal and jetspeed technology to achieve a digitize educational information portal system. The paper described the portal concept,function and JSR168 standards and the jetspeed framework, workflow and its core technology; described the spring framework and hibernate support for portlet configuration. This paper also introduced the system of needs analysis, database design and test cases, a more detailed description of the implementation of the entire system. The system is mainly for the management of academic information and publishing, as well as browsing, the use of powerful java language and flexible xml language, myEclipse tools used to develop, use a spring Framework framework, the underlying data used to hibernate package, the database is used mysql. Portlet components to use to achieve personal and system integration, and to deploy in the jetspeed, and finally using tomcat6.0 running as web server.Keywords: Gate System ,Portal,Jetspeed,Spring目 录摘 要IABSTRACTII第1章 portal11.1 什么是portal11.1.1 Portal Server11.1.2 Portlet Container11.1.3 portlet11.2 基本概念21.2.1 广义注解21.2.2 狭义注解21.2.3 建设网站的意义21.3 portal的主要功能31.4 portal流程31.5 portal标准4第2章 jetspeed62.1 jetspeed简介62.2 Jetspeed框架结构和核心技术62.3 jetspeed主要组成部分72.3.1 注册机制72.3.2 安全机制72.3.3 内容整合72.3.4 WAP82.3.5 个性化定制82.3.6 缓冲机制82.3.7 PSML82.4 工作流程92.5 Jetspeed-2安全机制10第3章 spring123.1 spring概述123.2 Spring对portlet的支持12第4章 hibernate164.1 hibernate简介164.2 Hibernate的配置174.3 hibernate的优点18第5章 需求分析195.1 引言195.1.1 编写目的195.2 任务概述195.2.1 任务目标195.2.2 运行环境195.3 数据需求分析205.4 功能需求分析205.4.1 一般用户205.4.2 管理员205.4.3 功能模块图215.4.4 主要功能描述表215.5 UML图之用例图235.5.1 用户用例图245.5.2 管理员用例图24第6章 数据库设计266.1 E-R 图266.2 数据表设计286.2.1 管理员表286.2.2 角色表296.2.3 用户角色关系表296.2.4 新闻信息表296.2.5 通知信息表306.2.6 公告信息表306.2.7 信息类别表30第7章 系统实现317.1 登陆模块的设计与实现317.2 管理员管理教务信息327.2.1 显示教务信息327.2.2 增加教务信息357.2.3 修改教务信息387.2.4 删除教务信息397.2.5 根据标题查询教务信息397.2.6 信息类型管理437.3 用户浏览教务信息447.3.1 教务信息浏览447.3.2 用户查询教务信息477.3.3 公告栏显示51第8章 系统测试538.1 登陆测试538.2 查询测试548.3 修改测试56结 论59参考文献60致 谢61IV 毕业设计(论文) 第1章 portal1.1 什么是portalPortal 的组成可以分为三部分:(1) Portal Server;(2) Portlet Container;(3) Portlet。 1.1.1 Portal Server 一个 Portal(门户网站)就是指一个 Web-based 的系统,通常都会提供个人化设置、单一登陆、以及由各种不同来源或不同网站取得各式各样的信息,并且将这些信息放在网页之中组合而成的呈现平台,门户网站会有精巧的个人化设置去提供定制的网页,当不同等级的使用者来浏览该页面将获得不同的信息内容。1.1.2 Portlet Container portlet container 是提供 portlets 执行的环境,包含了许多 portlets 并且管理他们的生命周期,他也会永远保存着 portlets 的喜好设置,一个 portlet container 接收到来自 portal 的请求后,接着将这个请求传递给存在 container 的 portlet 执行。portlet container 没有义务去组合 portlets 产生的信息內容,这个工作必须由 portal 来处理。portal 和 portlet container 可以放在一起视为同一个系统的组件,或者分开成为两个独立的组件。1.1.3 portlet一个 Portlet 是以 Java 技术为技术的 Web 组件,由 Portlet Container 所管理,专门处理客户的 request 以及产生各种动态的信息内容。Portlets 为可插式 ( pluggable ) 的客户界面组件,提供呈现层成为一个信息系统。这些由 portlet 产生的内容也被称为片段 (fragment),而片段是具有一些规则的Markup( HTML、XHTML、WML ),而且可以和其他的片段组合而成一个复杂的文件。而 Portlet 中的内容正常来说是与其他 Portlet 的内容聚合而成为一个 Portal 网页。而 Portlet 的生命周期是被 Portlet Container 所管理控制的。客户端和 portlets 的互动是由 portal 通过典型的 request/response 方式实现,正常来说,客户会和 portlets 所产生的内容互动,举例来说,根据下一步的连接或者是确认送出的表单,结果 portal 将会接收到 portlet 的动作,将这个处理状况转向到目标 portlet。这些 portlet 内容的产生可能会因为不同的使用者而有不同的变化,完全是根据客户对于这个 portlet 的设置。1.2 基本概念门户(portal)。原意是指正门、入口,现多用于互联网的门户网站和企业应用系统的门户系统。 1.2.1 广义注解 这里是一个应用框架,它将各种应用系统、数据资源和互联网资源集成到一个信息管理平台之上,并以统一的用户界面提供给用户,使企业可以快速地建立企业对客户、企业对内部员工和企业对企业的信息通道, 使企业能够释放存储在企业内部和外部的各种信息。 1.2.2 狭义注解 所谓门户网站,是指通向某类综合性互联网信息资源并提供有关信息服务的应用系统。门户网站最初提供搜索引擎、目录服务,后来由于市场竞争日益激烈,门户网站不得不快速地拓展各种新的业务类型,希望通过门类众多的业务来吸引和留住互联网用户,以至于目前门户网站的业务包罗万象,成为网络世界的“百货商场”或“网络超市”。从现在的情况来看,门户网站主要提供新闻、搜索引擎、网络接入、聊天室、电子公告牌、免费邮箱、影音资讯、电子商务、网络社区、网络游戏、免费网页空间,等等。在我国,典型的门户网站有新浪网、网易和搜狐网等。1.2.3 建设网站的意义网站不是为了赶一时的潮流或是博取一个好名声,而是要通过互联网这个全球性的网络来宣传企业、开拓市场,同时,降低企业的管理成本、交易成本和售后服务成本,并通过开展一系列的电子商务活动获得更多的利润,这些均与企业的经营目的是一致的。所以,只有把信息技术同企业的管理体系、生产流程和商务活动紧密结合起来,才能正确地建设和维护这个网站,并使网站发挥作用,为企业服务。1.3 portal的主要功能1、单点登录(SSOSingle Sign-On):Portal提供对各种应用系统和数据的安全集成,用户只需从Portal服务器登录一次就可以访问其它应用系统和数据库。对于安全性要求较高的业务系统,如电子银行、电子交易系统等,通过传递用户身份信息,如数字证书信息、数字签名信息等进行二次身份认证,保证单点登录的安全性。单点登录既减少了用户在多个应用系统反复登录多次认证的麻烦,更是简化了各种应用系统对用户及其权限的一致性维护管理。2、资源整合:能够把各种不同应用的内容聚合到一个统一的页面呈现给用户,实现同应用系统实时交换信息。能够从各种数据源如数据库、多种格式的文件档案、Web页面、电子邮件等集成用户所需的动态内容。3、定制与个性化:能够为不同角色的用户制定不同功能权限的Portal页面。同时,用户自己也能够按照喜好在规定的权限下定制自己风格的页面和内容,如可以定制Portal页面,取舍不同功能和内容的Portlet窗口,自行布置Portlet窗口的摆放位置,可以对Portlet窗口外观,如标题,图标,颜色等进行个性化设置。4、协作功能:为用户提供即时讨论,聊天,论坛,电子邮件以及语音或视频会议等功能。5、工作流:支持根据业务处理规则建立起来的工作流任务处理,比如审批流程等待办事宜。6、信息检索:从多种数据源检索动态信息资料。7、客户端:除了Web浏览器外,可以为PDA和手机提供接口,实现移动接入服务1。1.4 portal流程1. 一个客户端(例如:一个web浏览器)在被验证之后向Portal发出HTTP请求;2. Portal(或称为Portal Server)接收到请求;3. Portal判断请求是否包含与组成门户网站网页的portlet有关的动作;4. 如果存在与某个portlet相关的动作,Portal请求portlet容器调用portlet处理动作;5. Portal通过portlet容器调用portlet,获得被包含在产生的门户网站网页中的内容片段;1 JetExpress Tutorial PortalEB/OL. /tutorials/jetspeed-2/ ,2009-3-1.6. Portal将portlet产生的结果聚集于门户网站的网页,然后将网页返回至客户端。在下图中需要注意的是Portal服务器是建立在Http服务器的基础上的。Portal服务器不可独立的运行。图1.1 portal流程1.5 portal标准建立一个以标准为依托的Portal才能很好地保护自己的投资,既便于同现有应用系统连接,也使得同第三方的相关产品更容易接口。在2003年先后发布的JSR-168和WSRP两大标准为Portal的发展奠定了基础,结束了战国纷争的局面,Portal的发展和应用将会更加广阔长远。下面介绍几个与Portal紧密相关的技术标准:1、WSDLWeb Service Description LanguageWeb服务描述语言。WSDL是用来描述Web服务和说明如何与Web服务通信的XML语言。WSDL语言使用XML格式来描述信息的接口、访问格式和处理形式。WSDL描述信息内容。2、SOAPSimple Object Access Protocol简单对象访问协议。SOAP是一种在无中心的分布式环境下,应用系统之间交换结构化信息和特定类型的信息所使用的基于XML的轻量级协议。SOAP允许任何信息对象在任何语言、任何平台上使用多种传输协议实现传输处理。SOAP定义信息的传输处理。在Web应用环境中,通常把SOAP同WSDL结合起来,利用HTTP协议实现应用系统之间交换各种类型的信息对象。3、JSR -168Java Specification Request - Portlet SpecificationJava Portlet规范。JSR-168为业界明确了Portal的定义,制定了Portlet规范标准,从而解决了基于Java的Portal之间,以及同其他Web应用系统之间的互操作性。遵循JSR-168的Portlet将具有适用于所有Portal服务器和Web应用系统,支持多种类型的客户端,支持本地化和国际化,具备确定的安全性,允许Portal应用程序热部署和重新部署。4、WSRPWeb Services for Remote Portlets远程Portlet Web服务协议。WSRP定义了Portal和Portlet容器服务之间标准化接口的一个Web服务标准。WSRP允许在Portal之间或其他Web应用上即插即用,具有互操作性,提供可视化的、面向用户的远程Web服务。远程Portlet在远程服务器上作为Web服务运行,其服务可以发布到公共的或单位自己的UDDI服务器上。Portal或其他支持WSRP的应用系统通过UDDI服务来查找并使用远程系统提供的WSRP服务内容。WSRP的典型应用是把天气预报、即时新闻、股市行情等嵌入到自己的Portal中(在国外有专门的WSRP内容提供商提供这种服务)。WSRP使用了WSDL定义应用程序的接口,并以SOAP作为通讯标准。5、其他规范标准此外还有一些与Portal有一定关联的技术标准,在开发建立Portal应用中将会使用到:UDDI:Universal Description,Discovery and IntegrationJSR-170/283:Java Specification Request - Content Repository for Java Technology APIJAAS:Java Authentication and Authorization ServiceLDAP:Lightweight Directory Access ProtocolSAML:Security Assertion Markup LanguageBPEL:Business Process Execution Language for Web Services第2章 jetspeed2.1 jetspeed简介Jetspeed是Apache组织开发的一个采用Java和XML的开放源代码的企业信息门户的实现。门户可以让终端用户可以很方便的访问网络资源(应用、数据库等)。用户可以通过Web浏览器、WAP手机、寻呼机以及其它一些智能设备来访问Portal。Jetspeed就像是中心的控制器,可以很方便地以各种形式展示那些来自不同数据源的数据。通过Jetspeed展示的数据形式完全独立于内容的类型。这就意味着Jetspeed可以集成各种各样的数据源,如:XML、RSS、SMTP。然后通过XSL技术将数据组织成Jsp页面或Html页面传给客户端。Jetspeed还支持模板和内容的发布框架,比如:Cocoon, WebMacro 和 Velocity。2.2 Jetspeed框架结构和核心技术Jetspeed采用Turbine做主要的框架支持,Turbine为Jetspeed提供用户认证、页面布局管理和计划服务等。Portlet可以直接使用Turbine服务提供的RunData对象。Jetspeed向用户展示的页面由Turbine控制产生,它的主要内容部分由一些标准的Portlet构成。Portlet设计的目标是: 一个页面上可以提供很多小的WEB应用程序给用户; 这些WEB应用程序的背景色、标题栏颜色、图标都可以更换; 可以用缓冲子系统维持跨多个Portlet的应用; 可以对所有的WEB应用程序进行管理、维护,并提供给用户; 简单的选择就可以让用户定制页面,这些页面除了一个页面可以显示多个Portlet之外,和Turbine的显示页面很相识; 由于缓冲子系统的存在,使得系统可以快速运行。这使得即使要和数据库打交道得复杂Portlet也可以快速生成Html页面; 很容易开发整个系统,开发人员不必知道整个Jetspeed的运行机制。 Portlet可以通过多种方式形成页面。可以通过JDBC从数据库记录产生页面;可以通过XMLXSLHTML产生页面;可以通过其它途径如CoCoon形成页面; Portlet允许对它的显示风格进行定制,比如背景色、尺寸等。 Portlet通过PortletController来管理。这个PortletController是标准接口的实现,开发者可以定制它们; Portlet交给PortletControl来处理,PortletControl给Portlet加上显示风格后返回Portlet的内容; Jetspeed内通过XML标记文件分类管理Portlet; Portlet接受一个PortletConfig参数,这个参数中包括Url地址和一些参数的哈希表; 大多数简单的Portlet可以通过继承AbstractPortlet来实现。2.3 jetspeed主要组成部分2.3.1 注册机制Jetspeed的注册登记部分存储了Jetspeed引擎中大多数的动态配置信息,其中包括所有可提供的Portlet的登记信息、布局信息登记、用户自定义信息等。Jetspeed的注册机制采用可插入的Turbine服务体系。因此可以根据自己的需要采用不同的实现。现有两个已提供的默认实现:基于XML文件的实现;基于OJB 的SQL数据库的实现。2.3.2 安全机制Jetspeed安全服务基于以下一些组件接口:PortalAuthentication,PortalAccessController,UserManagement,RoleManagement,GroupManagement,PermissionManagement,CredentialsManagement。这些组件接口都是可插入的。Jetspeed提供了这些接口的一个或多个默认实现,大多数这些实现都是基于数据库的安全机制。安全服务和Portal Server中的一些标准的基础安全对象接口一起工作。这些安全对象包括:JetspeedUser、Role、Group、Permission。2.3.3 内容整合能够支持内容整合是Portal和普通WEB网站、普通WEB应用之间相比最大的优势。Jetspeed中的内容整合是通过OCS(Open Content Syndication)来支持的。Jetspeed同样也支持RSS(Rich Site Summary)。OCS和RSS都是基于XML的应用程序,用来支持页面的部分共享、频道列表、公共标题栏等实现。2.3.4 WAPJetspeed支持WAP(Wireless Application Protocol)。这项技术使得用户可以通过移动终端来访问Portal页面,可以进行多应用程序的简单集成和页面组织。Portlet可以将页面的形式以WML来表示。Jetspeed目前支持WML 1.1和1.2标准。2.3.5 个性化定制支持个性化定制是Portal的另一大优点。Jetspeed可以让用户很容易的进行个性化定制。用户可以很方便创建页面,为每一个页面选择具体的Portlet内容、页面布局、显示风格。用户个性化必须在系统权限允许的范围内进行。2.3.6 缓冲机制为了让Jetspeed更好的支持远程内容的显示和内容的发布,必须采用缓冲机制。2.3.7 PSMLPSML(Portal Structure Markup Language)使得在Jetspeed内允许内容组织和提取。PSML由两部分有关联的标记部分组成。registry markup:描述Jetspeed引擎内可提供的资源;site markup:描述在用户的页面中显示了哪些Portlet,是怎么组织的,需要那些显示属性。2.4 工作流程图2.1 jetspeed工作流程引擎部分是Jetspeed-2,而Container是Pluto Portlet Container,Portlet就是自己写的Portlet;所以这张图正好对照JSR168中的PortalPortlet ContainerPortlet的概念。上图描述的的工作流程:1、reques送至server后由JetspeedServlet接收。JetspeedServlet通过Jetspeed(org.apache.jetspeed.Jetspeed)取得ComponentManager,然后通过ComponentManager取得RequestContextComponent。2、RequestContextComponent会针对这个 request建立一个RequestContext,并且让这个request和新建的RequestContext能互相参照。3、 呼叫Engine(org.apache.jetspeed.JetspeedEngine)的service()方法,这个方法会把刚刚建立的RequestContext传入,这样后面的组件才能使用。4、 在service()方法中,Engine会依据request的目标URL来取得相对应的Pipeline(org.apache.jetspeed.pipelineJetspeedPipeline)来处理。Pipeline使用了chain of responsibility的pattern,是由一堆Valve串起來的 。5、 各个Valve依序执行,其中某些Valve会和Container动作,某些Valve会负责产生要response的portal页面。在这个过程中,Continer会执行相关的Portlet,并将結果返回至Pipeline,也就是Valve chain中。6、 将产生的portal页面传回给user,流程結束。由上面的介绍,应该可以体会到Pipeline在J2中是非常重要的,这里附上Pipeline的官方UML图做参考。图2.2 Pipeline 的UML图Jetspeed-2本身是Spring-based的架构,主要的Spring设定都在webappsjetspeedWEB-INFassembly下。JetspeedServlet在init时会建立Spring容器并载入这些xml文件,而之前提到的ComponentManager就可以通过name或class在Spring容器中寻找需要的component。有关J2的component,请务必参考/jetspeed-2/guides/guide-components.html及源代码。 看一下assembly目录中的pipelines.xml。这个XML是用来组合各个Pipeline和设定各Pipeline和其对应的URL。先看一下最后一段bean id=pipeline-map的部份,在这边可以看到URL和其相对应的Pipeline。另外找到bean id=jetspeed-pipeline这一段,可以看到这個Pipeline中Valve的组合,而这个Pipeline也是default的Pipeline。 2.5 Jetspeed-2安全机制J2使用JAAS的来处理security有关的问题。在j2捆绑的tomcat中,从bin同级别目录conf中查找Catalinalocalhostjetspeed.xml,打开这个文件可看到有关JAAS Realm及login的设定。大致上来说,JAAS包含Principal、Permission、Policy三个概念。在J2中有user、role、group三种Principal。而Permission基本上有page、portlet,tab等等,当然也可以增加自定的Permission。至于Policy,J2并没有使用JAAS的policy,而是使用自带的RdbmsPolicy,也就是把Policy的信息存在资料库中;而通过适当的设置, J2也可以使用相关App Server的JAAS。 底下是官方的security组加的架构图: 图2.3 security组加的架构图在J2中,核心的部份就是J2 Security Coarsed Services里的4个Manager组件:UserManager,RoleManager,GroupManager,PermissionManager, J2的JAAS login module实际上是使用UserManager来进行authentication;UserManager通过OJB自数据库中取出user的信息例如UserPrincipal、Crendential等并进行authorization. J2在security的部份也提供了SPI的设计供开发人员加入自定的认证方式,例如使用LDAP,参考底下官方的连接:/jetspeed-2/multiproject/jetspeed-security/ldap.html ,可以知道如何使用LDAP来进J2上的认证。 第3章 spring3.1 spring概述Spring 框架包含了一个 MVC 层,提供了构建 Web 应用程序的功能。 Spring MVC 支持多种视图技术,例如 JSP、Velocity、Tiles、iText 和 POI。同时,相对于 Struts,JSF 等其它 Web 层框架,使用 Spring MVC 框架可以更充分地发挥 Spring 框架本身提供的组件装配和 AOP 的威力。针对 JSR-168 Portlet,Spring 同样提供了一套类似的 MVC 框架。Portlet 工作流程和 Servlet 的主要差异在于,Portlet 的请求处理有两个独特的阶段:动作(Action)阶段和呈现(Render)阶段。动作阶段会有后台数据改变或动作的代码,这些代码只会执行一次。显示阶段会产生用户每次刷新时看到的显示内容。在单个请求的整个处理过程中,动作阶段只会被执行一次,而显示阶段可能会被执行多次。这就要求在改变系统持久状态的活动和产生显示内容的活动之间,有一个清晰的分层,Spring Portlet MVC 框架很好地体现了这一点。相对于 Servlet 的作用域,JSR-168 Portlet 的 session 分为两种,一种是作用于整个页面并被页面上所有 Portlet 共享的 globalsession,它实质上就是 Servlet 的 session;另一种仅仅作用于单个 portlet 应用程序。针对 Web 开发,Spring 2.x 不仅新增了 request,session 两种 beanscope,而且专门针对 JSR-168 Portlet 新增了 globalSession 和 session 两种 bean scope2。3.2 Spring对portlet的支持Spring Portlet MVC 框架存在控制器(Controller)和视图(View):1.控制器 C 缺省的处理器是一个非常简单的 Controller 接口,它提供了两个方法来处理 Portlet 请求的两个阶段:动作请求和显示请求: void handleActionRequest(request,response) /动作阶段处理动作请求 ModelAndView handleRenderRequest(request,response) /显示阶段应该处理显示请求,并返回合适的模型和视图这个框架包含了许多相同的控制器实现层次,比如,AbstractController,SimpleFormController等。它在数据绑定、命令对象使用、 模型处理和视图解析等方2 郭锋.Spring从入门到精通M. 北京:清华大学出版社,2006.面和 Servlet 框架相同。 2.视图 V 这个框架利用了一个特殊的桥 Servlet ViewRendererServlet 来使用 Servlet 框架里的视图显示功能,这样,Portlet 请求就被转化为 Servlet 请求,Portlet 视图能够以通常的 Servlet 底层代码来显示。这意味着,在 Portlet 里仍能使用当前所有的显示方法,如 JSP、Velocity 等。 Web 作用范围的 BeanSpring Portlet MVC 支持 Web Bean,这些 Bean 的生命周期存在于当前的 HTTP 请求或 HTTP Session(一般的和全局的)里,容器的 WebApplicationContext 提供。相对于 Spring 1.x,Spring 2.x 新增了以下针对于 Web Bean 的作用域:Request 作用域 注意以下 bean 定义:针对每次 HTTP 请求,Spring 容器都会创建一个全新的 loginAction 实例,且该实例仅在当前 HTTP 请求内有效,因此可以根据需要放心的更改所建实例的内部状态,而其他请求中创建的实例,将不会看到这些特定于某个请求的状态变化。当处理请求结束,request 作用域的 bean 实例将被销毁。Session作用域 注意以下 bean 定义:针对某个 HTTP Session,Spring 容器会创建一个全新的 userPreferences 实例,且仅在当前 HTTP Session 内有效。与 request 作用域一样,您可以根据需要放心的更改所创建实例的内部状态,而别的 HTTP Session 中创建的实例,将不会看到这些特定于某个 HTTP Session 的状态变化。当 HTTP Session 结束后,在该 HTTP Session 作用域内的 bean 将被销毁。在 Portlet 中,这类 Bean 的作用域是单个 portlet 的 session。global session 作用域 global session 作用域类似于标准的 HTTP Session 作用域,不过它仅仅在基于 portlet 的 Web 应用中才有意义。Portlet 规范定义了全局 Session 的概念,它被所有构成某个 portlet web 应用的所有 portlet 所共享。在 global session 作用域中定义的 bean 被限定于全局 Portlet Session 的生命周期范围内。 DispatcherPortletPortlet MVC 是一个请求驱动的框架,它围绕着 Portlet 设计,把请求转发给控制器,提供了便利的 Porltet 应用开发功能。和一般的 Portlet 一样,需要在 Portlet Web 应用的 portlet.xml 中声明。在 PortletMVC 框架里,每个 DispatcherPortlet 都有自己的 WebApplicationContext,它不仅接管了所有在根 WebApplicationContext 注册的 Bean,而且还可以在 Portlet 作用范围内对这些 Bean 进行重载,重载后的 Bean 可以定义成对于特定的 Portlet 实例可见。在初始化 DispatcherPortlet 时,框架会在 Web 应用的 WEB-INF 目录下寻找 portlet-name-portlet.xml,将其中定义的 Bean 注册到自己的 WebApplicationContext 上。ViewRendererServlet为了复用所有 Spring WebMVC 里的视图技术,必须把 PortletRequest/PortletResponse 转换HttpServletRequest/HttpServletResponse,然后调用 View 的 render 方法。为此,DispatcherPortlet 使用了一个特殊的 servlet:ViewRendererServlet。必须在 web.xml 文件里为您的 web 应用声明一个 ViewRendererServlet 的实例: ViewRendererServlet org.springframework.web.servlet.ViewRendererServlet ViewRendererServlet /WEB-INF/servlet/view处理器映射通过处理器映射,可以把 portlet 请求对应到合适的处理器上。在 Spring WebMVC 里,处理器映射通常是基于 URL 的。但是在 Portlet 里没有 URL,必须使用其它的机制来控制映射。最常见的是根据 portlet 模式和请求参数,但在 portlet 请求里的任何对象都可以用在自定义的处理器映射中。根据 portlet 模式和请求参数,主要有下列处理器映射可用:PortletModeHandlerMapping 基于当前的 portlet 模式(比如:view, edit, help)。ParameterHandlerMapping 在不改变 portlet 模式的情况下在多个控制器间切换,把一个请求参数作为 key 来控制映射。ParameterHandlerMapping 使用一个特定的请求参数来控制映射。这个参数的缺省名是 action,可以通过 parameterName 属性来改变。 Bean设置如下: 异常处理和 Web MVC 一样,Portlet MVC 提供了 HandlerExceptionResolver 来处理异常,PortletMVC 同样也提供了具体的 SimpleMappingExceptionResolver,可以将抛出的异常对应到一个视图名。第4章 hibernate4.1 hibernate简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session

温馨提示

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

评论

0/150

提交评论