毕业设计-SSI框架的电子商务信息平台的研究和构建_第1页
毕业设计-SSI框架的电子商务信息平台的研究和构建_第2页
毕业设计-SSI框架的电子商务信息平台的研究和构建_第3页
毕业设计-SSI框架的电子商务信息平台的研究和构建_第4页
毕业设计-SSI框架的电子商务信息平台的研究和构建_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、XXXXXX大学毕业论文(设计)题 目 基于SSI框架的电子商务信息平台的研究和构建 工商 学 院 XXX 专 业 08 级 2 班学生姓名 XXX 学 号 指导教师 XXX 职 称 完成日期 2011-11-30 教务处 制基于SSI框架的电子商务信息平台的研究和构建【摘 要】近年来,在网络技术的迅速发展和J2EE平台被广泛采用的背景下,基于多层B/S结构的Web体系结构逐渐发展并成为主流。但是,在多层Web体系结构的设计中,普遍存在着程序可重用度低、功能模块可扩展性差、维护工作繁琐及开发中分工协作困难等问题。设计一个松耦合和紧内聚的系统一直是软件工程领域重点研究的问题。本系统基于Sprin

2、g+Struts+iBATIS(简称SSI)轻量级复合型框架,很好的解决了上述问题,同时解决了视图层、业务层和控制层的分离,提供了对象到关系数据库的持久化支持。本文将研究整合Spring、Struts和iBATIS,并在电子商务信息平台中进行应用。【关键词】Spring Struts iBATIS Ajax 电子商务信息平台 目录引言3第一章 系统实现原理31.1表示层框架31.2业务层框架31.3持久层框架31.4集成三种框架技术31.4.1客户层41.4.2表示层41.4.3业务层41.4.4持久层4第二章 电子商务信息平台的设计52.1系统平台定位52.2用户管理系统52.3信息显示系统

3、62.4信息发布系统62.5信息查询系统6第三章 系统代码实现63.1 整合项目开发基本框架63.1.1 准备工作63.1.2 向项目中加入Spring框架63.1.3 向项目中加入Struts框架73.1.4 配置数据源83.1.5 为项目配置Spring事务管理93.1.6 配置项目定时器93.1.7 向项目中加入iBATIS框架103.1.8 向项目中加入AJAX框架123.1.9 向项目中加入URL重写框架153.2 具体代码实现153.2.1持久层实现163.2.2 业务逻辑层的实现223.2.3控制层实现243.2.4展示层页面实现263.2.5平台页面展示37第四章 总结43参考

4、文献43引言 伴随着我国网络互联的普遍推广,拥有终端PC机的人数正在大幅增加,进行网络购物和电子支付的人数也必将会越来越多, 电子商务占有的市场份额也必会增加, 也将会出现更多的电子商务网站。但是,众多中小企业还有相当部分由于各因素的制约而没有开展电子商务, 这就造成了这些中小企业在面对竞争国际化、 炽热化的今天很容易处于劣势, 这是我国中小企业亟待解决的问题。作为企业的对外沟通的平台,电子商务信息平台可以巩固和树立企业形象,成为产品品牌宣传和业务推广的有力渠道,是与经销商或合作伙伴之间沟通、业务合作往来的主要纽带,节省了企业成本,提高了效率。因此,对电子商务信息平台的研究和构建有极其重要的意

5、义。第一章 系统实现原理1.1表示层框架表现层框架主要有 Struts和 Tapestry。Struts框架在创建W eb应用时能容易地分离表示层和业务层, 它是在 J SP M ode l 2的基础上实现的一个 MVC框架。 Struts框架主要由模型、 视图、控制器三部分组成, 模型由实现业务逻辑的 JavaBean或 E J B组件构成, 控制器由 ActionSe rv l e t和 Action实现,视图由一组 JSP文件构成。Tapestry与 Struts应用框架不同的是,它是基于组件,而不是面向脚本语言 (比如 JSP和 Ve locity)的,组件是由一个定义文件 (以 XM

6、L的格式 )、 一个 HTML模板、 一个 JAVA 类构成的。Tapestry的组件可以被套嵌并包裹其它组件,因此可以组合形成一个更大的组件或逻辑页面。组件的行为模式为W eb页面编程提供了很大的方便,事件处理也方便很多。 S truts框架由于出现时间早,所以使用相对广泛,它的社区非常活跃,很容易找到很多现成的开源功能标签以供使用以及样例程序可供参考,而且运行比较稳定,因此本文表示层采用 S truts框架。1.2业务层框架业务组件层轻量级解决方案主要包括 Spring、H ivemind等。但是目前使用最为广泛的还是 Spring框架,Spring框架是一个基于IoC和AOP(面向方面编

7、程 )的构架。采用 IoC使得它可以很容易地实现 bean的装配,提供了简洁的 AOP并据此实现事务管理等,但是它不具备处理应用分布式的能力。 Spr i ng的核心要点是: 支持不绑定到特定 J 2EE服务的可重用业务和数据访问对象。这样的对象可以在不同 J 2EE环境 (Web或EJB)、独立应用程序、 测试环境之间重用。1.3持久层框架持久层框主要有 H i bernate和各种JDO产品,以及 i BATIS 。Hibernate是一个开源的O /RMappi ng框架,它对 JDBC进行了非常轻量级的对象封装,可以应用在任何使用 JDBC的场合,可以在应用 EJB的J2EE框架中取代

8、CMP ,完成数据持久化的重任 iBATIS是一个简易的SQLMap工具,它是将手工编写的在xm l配置文件中的 SQL语句映射成 Java对象。使用 i BAT IS提供的 O /R M appi ng机制,对业务逻辑实现人员而言,面对的是纯粹的 Java对象,这一层与通过 H i bernate实现O /R M app i ng而言基本一致,而对于具体的数据操作,H i bernate会自动生成 SQL语句,而 iBATIS则要求开发者编写具体的SQL语句。相对 H iberna te等全自动O /R M appi ng机制而言,i BATIS以SQL开发的工作量和数据库移植性上的让步,为

9、系统设计提供了更大的自由空间。本文采用 i BATIS作为持久层框架,充分发挥其自由灵活的特点。1.4集成三种框架技术:将S truts框架,Spri ng框架和i BATIS框架集成在一起,实现无缝连接,可达到提高软件开发效率的目的。集成后的框架分为五个逻辑层,自顶向下依次是客户层、 表示层、 业务层、 持久层、 数据源层,图 1为五个逻辑层的分布情况以及三个框架分别所居的层次。图 1 整合后的分层结构图1.4.1客户层 该层完成与用户的交互功能,负责传送客户请求,接收系统响应,显示处理结果。主要由 HTML代码、JSP代码和标签组成,属应用系统的前端界面部分。1.4.2表示层 该层主要负责

10、处理用户请求,并将请求信息发送到业务层进行处理,业务层处理完之后,将处理结果返回到客户层,基于 MVC模式的 S truts框架工作在表示层,它还负责处理应用程序的异常以及对提交的表单进行数据校验。1.4.3业务层 该层负责处理用户请求的业务逻辑。业务层采用轻量级容器 Spring IoC,它通过配置 XML文件进行各层间的交互,为表示层提供业务模型组件。业务模型组件通过调用持久层 DAO 操纵数据库,完成业务逻辑。 IoC还提供事务处理、 缓冲池等容器组件,提升系统性能,保证数据完整性。1.4.4持久层 该层主要实现对数据库的操作。 i BAT IS框架工作在持久层,i BAT IS DAO

11、 通过调用 SQLM ap ,完成对数据库的操作,实现业务层的调用。 i BAT IS SQLM ap使用 X M L描述符将JavaBeans等映射到 SQL语句,通过 JDBC实现与底层关系数据库的交互。数据源层 由关系型数据库系统 (如: SQL Serve r ,Oracle等 )构成数据源层。集成后的框架具备了三种框架的技术优势,将 Struts的MVC机制,Spr i ng的控制反转机制,以及 i BATIS的 SQL M ap映射机制融合在一起。集成框架在 W eb应用程序开发中的优势主要体现在:(1) Struts框架的 MVC模式将表现逻辑和业务逻辑分离,摆脱了原有模式的高耦

12、合性,提高了开发效率。(2) Spring框架提供了轻量级的管理业务组件的 IoC容器。实现了对 EJB技术的替代和更好的组件重用性,降低对象之间的依赖,使得程序的调试修改更为简单。(3) i BATIS框架实现了 DAO 和 SQL M ap的分离,使系统的设计更清晰、 更易维护、 更易单元测试。而且通过灵活使用SQL语句基本上可以实现不使用数据访问框架能够实现的所有功能,甚至更多。(4) 三框架的融合大大减少了软件开发的代码量,降低了各模块间的耦合度,使得程序更易调试、 修改与维护,提高了工作效率。(5) 三框架都是开源项目,可以免费获取,不需要 E J B服务器,应用程序部署在 WEB服

13、务器上,节省开支、 降低了开发成本。第二章 电子商务信息平台的设计2.1系统平台定位作为电子商务信息平台,目的是为IT行业的用户提供最快最新的IT行业的信息、提供便利的在线服务,使企业的利益最大化。为会员单位和其他企事业单位提供IT各行业国内外新技术、新产品、先进管理经验和市场信息;为企业提供国际交流、贸易洽谈、市场开拓机会;开展营销活动,定期举办展销会等贸易促进活动,发布各种信息,提供相关服务。此平台将充分利用计算机联网改变了传统的信息传递方式,提供了快速获取最新信息的手段这一优势,及时发布IT行业实时动态信息,为用户提供全方位的行业信息服务。电子商务信息平台可以巩固和树立企业形象,成为产品

14、品牌宣传和业务推广的有力渠道,是与消费者之间交流的重要渠道,是与经销商或合作伙伴之间沟通、业务合作往来的主要纽带,节省了企业成本,提高了效率,而且也为用户节约了时间。2.2用户管理系统作为电子商务信息的展现平台,所以有必要对用户进行会员与非会员的区分,给会员赋予特殊权限,可以使用具有商业机密的信息,而非会员则只能浏览一些大众性的信息。用户管理系统的主要功能是管理和维护会员和非会员的权限和信息。(1)在Mysql上创建本电子商务平台的数据库(2)建用户的档案信息表(3)设置与用户信息相关的字段。(4)设计用户界面。为了方便新用户注册,老用户及时登录,我们将用户管理模块放在了首页的最醒目的位置主页

15、的右上方。这个模块主要包括四个内容:新用户注册、用户登录、用户修改密码以及用户忘记密码的处理。 a新用户注册。当用户填写好自己的会员信息并提交后,我们设计了一个用于处理会员信息的在后台服务器端运行的程序,用于将会员所提交的信息实时的写入数据库中。 b会员身份确认模块。用户提交了注册信息后,我们要为系统管理员设计一个查阅用户信息和确认会员身份的系统,这就是会员身份确认模块。 c忘记密码处理模块。用户在注册时需要提交密码提示问题与答案,如果用户忘记了密码,但没有忘记密码提示问题的答案,那么我们可以设计出一个让用户通过回答密码提示问题的程序来让用户获得密码。在数据库中只需通过比较该用户提交的密码提示

16、问题的答案是否与原来存在数据库中的答案相匹配来判断是否给他提供正确的密码。2.3信息显示系统传达企业电子商务信息,包括图片新闻、商城快讯、一周热点排行、新闻专题、电商服务、精彩推荐、厂商动态和电商世界,紧跟时代脉搏,把握无限商机。(1)建立新闻数据库表。由于新闻信息量大、时效性强、新闻类别多,所以采用分类显示的方法。这样一来,就需要根据新闻类别的不同建立不同的新闻数据库表。 (2)设置与新闻信息相关的字段,例如新闻编号,新闻标题,新闻内容,新闻发布时间等,其中新闻编号和新闻发布时间在程序设计中起着相当重要的作用。这是因为用户总是想在最先看见最新的新闻,所以,我们在设计程序时,必须将新闻的显示次

17、序按照新闻的发布时间的降序排列,这样就可以保证用户最先看到的新闻一定是最先发布的。 (3)新闻信息的分页显示。2.4信息发布系统 为企业提供方便的在线信息发布功能,使企业及时地发布供应和需求信息。充分利用网络信息的时效性强、准确性高、便于存储和检索方便的功能,奠定企业进行网络营销决策和计划的基础。2.5信息查询系统 方便用户进行各种对感兴趣的信息进行检索,寻求商机,节省时间和资源。这部分包括分类查询和条件查询两部分。第三章 系统代码实现3.1 整合项目开发基本框架3.1.1 准备工作(1) 配置开发环境¨ JDK版本:jdk1.6.0¨ J2EE容器:Tomcat 6.0&

18、#168; 数据库:MySQL 5.1.23¨ 系统:Windows XP Profession¨ 开发工具:MyEclipse6.5.0、Dreamweaver8.0、PhotoShop CS3¨ 本系统使用的框架版本:Struts2.0、Spring2.5、Ibatis(2)下载相关jar包到Spring、Struts和iBATIS官方网站下其最新压缩包,将下载的三个框架分别解压缩。新建一个Web Project(名称为SSH_NEWS)。3.1.2 向项目中加入Spring框架将Spring解压缩以后spring-framework-2.5.6dist目录中

19、的spring.jar复制到Web项目的WEB-INF/lib目录中(Spring核心jar包)。复制spring-framework-2.5.6liblog4j中的log4j相关的jar文件到项目中WEB-INF/lib目录中(日志jar包)。打开WEB项目中的WEB-INF目录中的web.xml文件,添加及结合项目实际情况配置以下内容 <context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/applicationCont

20、ext.xml</param-value></context-param><!Log4j-><context-param><param-name>log4jConfigLocation</param-name><param-value>/WEB-INF/config/perties</param-value></context-param><context-param> <param-name>log4jRefreshInterval</p

21、aram-name> <param-value>60000</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener><listener><listener-class>org.springframework.web.util.Log4jConfigListene

22、r</listener-class></listener>3.1.3 向项目中加入Struts框架将解压之后的strutsstruts-appsstruts2-blank-WEB-INFlib下面的六个基本jar文件复制到Web项目的WEB-INF/lib目录中打开WEB项目中的WEB-INF目录中的web.xml文件,添加及结合项目实际情况配置以下内容<!- Struts2 filter -> <filter> <filter-name>struts2-cleanup</filter-name>

23、; <filter-class> org.apache.struts2.dispatcher.ActionContextCleanUp </filter-class> </filter> <filter-mapping> <filter-name>struts2-cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>struts2<

24、;/filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>3.1.4 配置数据源Spring提

25、供了对多种数据连接池的支持,本项目选中c0p0来作为数据库的连接,直接将spring-framework-2.5.6libc3p0下面的c3p0-.jar复制到Web项目的WEB-INF/lib目录中(1)为了是后边修改数据库相关信息更加方便,在WEB-INFconfig目录中创建perties,具体内容:jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql:/localhost:3306/eshop?useUnicode=true&characterEncoding=utf-8jdbc

26、.username=rootjdbc.password=mysql(2)在WEB项目中的WEB-INFconfig目录中的Spinrg的配置危机applicationContext.xml文件,配置以下内容:<!- 加载perties文件 -><bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler"/><bean id="propertyConfigurer"class=&quo

27、t;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>/WEB-INF/config/perties</value></list></property></bean><!- 配置JNDI数据源 -> <bean id="dataSource"class

28、="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass"><value>$jdbc.driverClassName</value></property><property name="jdbcUrl"><value>$jdbc.url</value></property><property name="user">

29、<value>$jdbc.username</value></property><property name="password"><value>$jdbc.password</value></property><property name="maxPoolSize" value="5" /> <property name="minPoolSize" value="2" /> </b

30、ean>3.1.5 为项目配置Spring事务管理在WEB项目中的WEB-INFconfig目录中的Spinrg的配置危机applicationContext.xml文件,添加以下内容:<!- 事务管理 -><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSou

31、rce"/></bean><!- 管理事务操作 -><aop:config><aop:pointcut id="servicesPointcut" expression="execution(*com.eda.*.service.impl.*.*(.)"/><aop:advisor advice-ref="txAdvice" pointcut-ref="servicesPointcut"/></aop:config><!-

32、 事务控制 -><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="add*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name=&quo

33、t;delete*" propagation="REQUIRED" /><tx:method name="query*" read-only="true"/> </tx:attributes></tx:advice>3.1.6 配置项目定时器由于项目需要根据后台的数据生成实时的数据信息,因此需为项目配置一个时间调度器,让项目可以根据设定的时间实时执行我们所提供的方法,生成最新的信息。Spring提供对调度器的支持,将spring-framework-2.5.6libquartz下面的

34、quartz-all-1.6.1.jar复制到Web项目的WEB-INF/lib目录中,同时将struts-lib项目commons-collections-3.2.jar复制到Web项目的WEB-INF/lib目录中编写相应的从数据库中读取数据生成最新信息的java类,本项目中此类为JspToHtml.java,项目中将根据设定的时间执行JspToHtml类中的buildHtml方法。详细代码请附件源码。在applicationContext.xml文件,添加以下内容:<!- 调度器配置 -><bean id="jspToHtml"clas

35、s="com.emotion.util.config.JspToHtml"><property name="emotionService"><ref bean="emotionService" /></property><property name="commentService"><ref bean="commentService" /></property><property name="linkI

36、nfoService"><ref bean="linkInfoService" /></property><property name="navigationService"><ref bean="navigationService" /></property></bean><bean id="methodInvokingJobDetail"class="org.springframework.schedulin

37、g.quartz.MethodInvokingJobDetailFactoryBean"><property name="targetObject"><ref bean="jspToHtml" /></property><!- 指定JspToHtml中buildHtml,将根据设定的时间执行这个方法 -><property name="targetMethod" ><value>buildHtml</value></propert

38、y></bean><bean id="simpleTrigger"class="org.springframework.scheduling.quartz.SimpleTriggerBean"><property name="jobDetail"><ref bean="methodInvokingJobDetail" /></property><property name="startDelay"><value&

39、gt;0</value></property><!设定时间,单位为毫秒-><property name="repeatInterval"><value>600000</value></property></bean><beanclass="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><

40、list><ref bean="simpleTrigger"></ref></list></property></bean>3.1.7 向项目中加入iBATIS框架由于Spring压缩包里面已经有了iBATIS的jar包,直接spring-framework-2.5.6libibatis下面的ibatis-26.jar复制到Web项目的WEB-INF/lib目录中在iBATIS中SqlMapClientFactoryBean是一个工厂bean,它暴露了两个关键属性用于注射IBatis配置文件和相

41、关的数据源。在工厂内部,通过读取IBatis配置文件,Spring会创建出IBatis的核心组件SqlMapClient,并向相关的DAO进行注射。 SqlMapProductDao继承了SqlMapClientDaoSupport,后者暴露出一个sqlMapClient属性,用于接受Spring的注射。SqlMapClientDaoSupport会对其中封装的SqlMapClientTemplate做相应的设置,所以DAO子类便可在取用SqlMapClientTemplate时正常地工作了。 首先在WEB-INF/config中创建iBATIS配置文件sqlMapConfig.xml,通过它

42、加载相应的sql配置文件,具体内容如下<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapConfig PUBLIC "-/iBATIS.com/DTD SQL Map Config 2.0/EN" ""><sqlMapConfig><settingscacheModelsEnabled="false"enhancementEnabled="true"lazyLoadingEna

43、bled="true"errorTracingEnabled="true"maxRequests="32"maxSessions="10"maxTransactions="5"useStatementNamespaces="true"/><!加载相应的sql文件-> <sqlMap resource="com/emotion/model/sql/EmotionArticle.xml"/> <sqlMap resource

44、="com/emotion/model/sql/Comment.xml"/> <sqlMap resource="com/emotion/model/sql/Navigation.xml"/> <sqlMap resource="com/emotion/model/sql/LinkInfo.xml"/> <sqlMap resource="com/emotion/model/sql/UserVO.xml"/></sqlMapConfig>在application

45、Context.xml文件,添加对iBATIS的支持:/省略<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"><!- 加载ibatIS配置文件 -><property name="configLocation"> <value>WEB-INF/config/sqlMapConfig.xml</value></property><prop

46、erty name="dataSource" ref="dataSource" /><property name="lobHandler" ref="lobHandler"/></bean>/省略 相应的Dao以及Service则由Spring容器通过依赖注入来管理:/省略<bean id="userDao" class="com.emotion.dao.impl.UserDaoImpl"><property name=&quo

47、t;sqlMapClient" ref="sqlMapClient" /></bean><!- 文章 -><bean id="emotionDao" class="com.emotion.dao.impl.EmotionDaoImpl"><property name="sqlMapClient" ref="sqlMapClient" /></bean><bean id="emotionService&qu

48、ot; class="com.emotion.service.impl.EmotionServiceImpl"><property name="emotionDao" ref="emotionDao"/><property name="commentDao" ref="commentDao"/></bean>/省略3.1.8 向项目中加入AJAX框架在目前的Web2.0热潮中,Ajax已成为人们谈论最多的技术术语!其实,AJAX(Asynchronous

49、 JavaScript and XML)是多种技术的综合,它使用XHTML和CSS标准化呈现,使用DOM实现动态显示和交互,使用XML和XSTL进行数据交换与处理,使用XMLHttpRequest对象进行异步数据读取,使用Javascript绑定和处理所有数据。在本项目中,将使用目前比较流行的两个ajax框架ajaxAnywhere和dwr。配置dwr框架DWR(Direct Web Remoting)是一个开源的类库,可以帮助开发人员开发包含Ajax技术的网站。它可以允许在浏览器里的代码使用运行在Web服务器上的Java函数,就像它在浏览器里一样。DWR包含两个主要的部分,其一是运行在浏览器

50、客户端的Javascript,这部分被用来与服务器通信,并更新页面内容;其二是运行在服务器端的Java Servlet,这部分被用来处理请求并将响应结果发送给浏览器。在项目通过根据用户评论是提交的用户名和密码,查询是否有次用户存在,存在则将相应的信息返回到页面/判断是否匿名/省略function checkUser()var comment1= document.getElementById("commentVO.comment").value; comment1 = comment1.replace(/(s*)|(s*$)/g,""); if(comm

51、ent1='') alert("请输入评论内容");return false; /匿名 if(document.getElementById("notuser").checked)comment();/不匿名,检查用户名和密码elsevar userVO = new UserVO();var name=document.getElementById("username").value;var pwd=document.getElementById("pwd").value;name = name.r

52、eplace(/(s*)|(s*$)/g,"");pwd = pwd.replace(/(s*)|(s*$)/g,"");if(name='')alert("请填写用户名!");return; if(pwd='')alert("请填写密码!");return;userVO.loginName=name;userVO.loginPwd=pwd;userDao.loadUser(userVO,callBack);function callBack(data)if(data=null|da

53、ta='')alert("用户名或密码不正确!");elsedocument.getElementById("commentVO.userId").value=data.id;comment();/省略上dwr官方网站下载最新的jar包,本项目中为2.0.3版本,将dwr的jar包添加到web项目中。首先,在WEB-INF目录下创建dwr的配置文件dwr.xml 在web.xml中配置dwr的servlet: /省略 <servlet> <servlet-name>dwr</servlet-name>

54、<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>config-tcps</param-name> <param-value>/WEB-INF/dwr.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-

55、value>true</param-value> </init-param></servlet><servlet-mapping> <servlet-name>dwr</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>/省略配置ajaxAnywhere使用AjaxAnywhere可以将页面简单的划分为多个区域(zone),然后调用AjaxAnywher刷新(Refresh)那些指定的区域,而不是整个

56、页面。在本系统中,对于新闻的评论采用了ajaxAnywhere,当我们提交评论时,既可以在无需刷新整个页面的情况下,在下方的评论列表中看到提交的评论。如下图中,只刷新最新评论区域,同时也可以看到右上角的loading标志,如图3-1:图3-1 异步加载展示图向项目中添加ajaxAnywhere的jar包,在web.xml配置相应的过滤器:<filter> <filter-name>AjaxAnywhere</filter-name> <filter-class>org.ajaxanywhere.AAFilter</filter-class&

57、gt; </filter> <filter-mapping> <filter-name>AjaxAnywhere</filter-name> <url-pattern>*.jsf</url-pattern> </filter-mapping> <filter-mapping> <filter-name>AjaxAnywhere</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapp

58、ing> <filter-mapping> <filter-name>AjaxAnywhere</filter-name> <url-pattern>*.action</url-pattern></filter-mapping>3.1.9 向项目中加入URL重写框架通过URL重写,可以缩短url,隐藏实际路径提高安全性,易于用户记忆和键入,易于被搜索引擎收录。向项目中添加URL重写的jar包,本系统中使用的是urlrewritefilter-3.1.0.jar。首先在WEB-INF中创建URLWRITER的配置文件u

59、rlrewrite.xml,具体内容如下:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE urlrewrite PUBLIC "-//DTD UrlRewrite 3.0/EN" ""> <urlrewrite> <rule> <from>/InfoView_(0-9+).html$</from> <to type="forward">/emo

60、tionAction.load.action?emotionArticleVO.atricleId=$1</to> </rule> <rule> <from>/queryInfo_(0-9+).html$</from> <to type="forward">/emotionAction.queryForList.action?emotionArticleVO.auditFlag=Y&amp;emotionArticleVO.flag=$1</to> </rule> <

61、;rule> <from>/index.jsp$</from> <to type="forward">/l_index.jsp</to> </rule> <rule> <from>/index.html$</from> <to type="forward">/l_index.jsp</to> </rule></urlrewrite>其次在web.xml中配置相应的过滤器/省略<filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter </filte

温馨提示

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

评论

0/150

提交评论