原文:
http://www.hao-se.cn/blog/article.asp?id=4
项目概要:商品登记后台管理的模拟系统
主要功能模块:新用户注册、忘记密码取回新密码、商品类别的管理(包括类别登记、维护、重新设置商品的归类)、商品的管理(包括商品的登记、维护)、批处理(商品信息的批量上载、下载)、修正密码功能
技术:采用轻量级的web开发框架(SSH组合-- struts、spring、hibernate)来实现,应用经典的MVC架构
按照包的划分分别描述一下系统中所起的作用(java部分):
Action—控制层(由struts来体现),与struts-config.xml结合,控制页面的流转
Dao—数据访问对象层,负责和数据库打交道,应用结合了hibernate技术,以及jdk1.5的泛型技术,形成一个通用的DAO层
Model—模型层,对应数据库中的表结构,由hibernate技术实现
Serlvet—用于初始化基础数据
Service—服务层(业务层),体现整个系统的业务逻辑,也是整个系统最为复杂关键的部分
Activemq—异步消息发送装置(JMS的一种开源实现),由消息接收装置(consumer包下)、消息转换装置(converter包下)和消息发送装置(producer包下)组成。这里主要是用于邮件的异步发送,在新用户注册、取回密码时都是通过发送邮件来实现的。异步的优点是在不影响当前系统的进程下完成任务。
Dwr—Ajax的实现,这里采用了开源的dwr技术实现。主要利用在整体页面不刷新的情况下,动态的改变部分页面内容,提高用户的体验度。比如动态判断用户、类别、商品code等是否已经存在,获取商品类别的显示菜单等等。
Mail—邮件发送功能,其中邮件内容的生成策略采用freemarker技术来实现
Util—工具类,有image下的图片制作类;upload下的图片上传功能;Digest加密技术;Guid用于hibernate的id的生成器
META-INF—下的说明:因为采用activemq4.1版本的原因,它的xsd文件有一定的出入,所以采用修正过的文件,由spring.schemas加载
Resources—资源文件
hibernate.properties:用于配置hibernate参数
mail.properties:配置邮件系统的参数
displaytag:在前台页面显示中,会采用displaytag技术来显示表格,这里配置相应的参数
ApplicationResources:国际化资源信息
WEB-INF下配置信息的几点重要说明:
首先要说明的是—所有的业务逻辑、action、数据访问层、异步装置、邮件系统…都是交由spring来管理的。所以在spring的包下可以看到action.xml、activemq.xml、dao.xml、dwr.xml、mail.xml、service.xml以及hibernate的核心配置base.xml和组装所以信息的beans.xml。
这是配置文件的核心所在,下面一一介绍:
action.xml—需要和struts包下的struts-config.xml配合使用,这里把action的生命周期也交由spring来管理了。可以看个例子
struts-config.xml下的loginAction
<action path="/loginAction"name="loginForm" parameter="method"
type="org.springframework.web.struts.DelegatingActionProxy"
scope="request" validate="false" input="/jsp/login.jsp">
<forward name="success" path="/jsp/default.jsp" />
</action>
action.xml下的loginAction
<bean name="/loginAction"class="com.iplan.portal.action.LoginAction">
<property name="userService">
<ref bean="userService" />
</property>
</bean>
注意粗体红色的部分,它们是一一对应的,粗体蓝色的部分说明action由spring来接管
注意:这里的action.xml没有在beans.xml中接管,而是在web.xml中体现的。因为struts-config.xml和action.xml是联动的关系,在web.xml中通过servlet中配置struts-config.xml即可。
activemq.xml—配置异步装置,对应java下service包下的activemq中的类信息
dao.xml—数据访问对象配置,baseGenericDAO:泛型dao。下面的userDAO、categoryDAO、productDAO都继承于泛型dao,分别是三个实体的数据访问对象。
dwr.xml—ajax的实现方式,对应java下service包下的dwr中的类信息。
在页面使用时,需要配置dwr下的dwr.xml信息,同时在web.xml中通过servlet配置即可
mail.xml—邮件系统配置,对应java下service包下的mail中的类信息
service.xml—业务信息,有用户、商品类别、商品信息、批处理的业务逻辑。对应java下service包下类信息
base.xml—hibernate的配置
propertyConfigurer:属性配置,包含了hibernate.properties和mail.properties
dataSource:数据源
mySessionFactory:hibernate的SessionFactory
myTransactionManager:hibernate的事务管理
transactionAttributeSource:事务属性源
transactionInterceptor:事务拦截器
以及transactionAdvisor和BeanNameAutoProxyCreator,关于事务这块是用AOP技术实现的
beans.xml—集中处理所有相关的配置文件
在web.xml中配置contextConfigLocation为/WEB-INF/spring/beans.xml,在系统启动过程中即可加载所有spring的配置信息
其它相关配置信息的说明
htmlTemplate下的NodifyFindPwd.ftl:是邮件的模板内容,由freemarker技术来实现
log4j.properties:日志信息,分别写到了控制台和日志文件中去。
写到日志文件分析如下:
log4j.appender.fileout.File=${haose.root}/log/haose_log.txt
其中的${haose.root}是web.xml中的
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>haose.root</param-value>
</context-param>
是应用的上下文物理路径
还有一个技术点,就是在编辑商品信息的时候,点击图片会展示一个放大的图片内容,是使
用了图片特效,用js来实现,在scripts下的AJS_fx.js、AJS.js、gb_scripts.js、loader_frame.html
和css下的gb_styles.cs。这里你的应用名称还是用haose,如果修改了别的名字,
loader_frame.html里有一也是要同时修正的,在<img src="/haose/images/GreyBox/indicator.gif">
这句。
jsp的说明
从index.jsp转到jsp下的login.jsp(用到两个特效,和上面提到的图片特效是一起的。一个是新用户注册,还一个是忘记密码)
登录后进入default.jsp,它是一个frame结构
在jsp下的template中就是frame结构对应的jsp内容了,有header、footer、menu和body,而body部分是被其它内容经常替换的。
其它的如category下、product下、excel下,都是在body部分来一一体现的。
WebRoot下的excel,是批处理下载的excel文件存放的位置
WebRoot下的upload,是登记商品时,图片上传的位置
以上是所有相关的技术内容
关于流程内容,就按照主要功能模块进行,先新用户注册,然后通过邮件收取随机的密码,登录后,可以去修正密码。这个一个过程,同样,如果忘记密码,可以取回密码,也是通过邮件发送的,然后登录,可以去修正密码。
接下来,第一步商品类别的管理,首先得设置类别,然后才可以登记商品。这里建议,商品类别登记好后,不要随意去编辑维护它,其实它属于基础数据的一部分。重新设置商品的归类功能需要在登记商品后使用。
下一步是商品的管理,可以登记、然后维护
批处理其实是批量处理商品登记,和商品登记的效果是一样的,附件中已经给你样本了。
批处理的下载是把数据库中商品导到excel中去,和样本是一样的
然后就是系统功能了,修正密码,这在上面的用户注册、取回密码中都可以同时使用。
运行该系统时,前提的任务是以下几件:
1、 建立一个数据库,这里是以haose为例的,可以看hibernate.properties中的配置信息,匹配即可。(另:表不需要建,运行时自动创建)
2、 设置邮件,在mail.properties中配置,同时在Constants.java中常量SYSTEM_MAILBOX也需要和mail.properties中的mail.username对应
分享到:
相关推荐
这个项目案例涵盖了四个核心的技术:Eclipse、Spring、Struts和Hibernate,这些都是Java开发中的经典工具和技术。 首先,Eclipse是一款广泛使用的开源集成开发环境(IDE),它为Java开发者提供了强大的代码编辑、调试...
本案例代码着重讲解了如何利用Eclipse作为开发工具,Struts作为MVC框架,Hibernate作为ORM(对象关系映射)工具,以及Spring作为依赖注入和企业服务的容器,进行深度整合应用。这些技术的结合,旨在提高开发效率,...
【精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码(第二版)】这一资源涵盖了Java企业级开发中的关键技术和实践,是学习和深入理解Java EE应用开发的宝贵资料。本资源以Eclipse作为集成开发环境,...
- **项目搭建**:首先创建一个包含Struts2、Spring和Hibernate的项目骨架。 - **添加依赖**:在项目的构建路径中添加相应的库文件,并确保正确配置。 - **配置文件设置**:根据框架需求,配置struts.xml、...
在本资源中,"struts2 spring hibernate框架技术与项目实战 光盘源码 上"提供了这三大框架的实践项目代码,帮助开发者深入理解并掌握它们的集成与应用。 Struts2作为MVC(模型-视图-控制器)框架,主要负责处理HTTP...
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE...
《精通J2EE--ECLIPSE、STRUTS、HIBERNATE及SPRING整合应用案例代码-ch06》是一份深入学习J2EE开发技术的重要资源,它聚焦于四大核心框架——Eclipse集成开发环境(IDE)、Struts、Hibernate和Spring的整合应用。...
《精通J2EE--ECLIPSE、STRUTS、HIBERNATE及SPRING整合应用案例代码》是由mystuman提供的一个深度学习J2EE技术的资源包,旨在帮助开发者掌握如何在Eclipse集成开发环境中整合Struts、Hibernate和Spring这三大主流框架...
《精通JavaEE Eclipse Struts2 Hibernate Spring整合应用案例 源代码15章 noticemanager》这个资源是针对Java企业级开发的学习资料,旨在帮助开发者深入理解和实践JavaEE平台上的Struts2、Hibernate和Spring这三个...
总结来说,"精通J2EE--ECLIPSE、STRUTS、HIBERNATE及SPRING整合应用案例代码-ch16"涵盖了Java企业级开发的核心技术,包括使用Eclipse进行开发,Struts处理Web请求,Hibernate处理数据库操作,以及Spring作为整体架构...
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE...
在"精通J2EE"的案例中,我们将学习如何配置Eclipse环境,创建J2EE项目,并利用其强大的插件支持来管理和构建基于Struts、Hibernate和Spring的应用。 Struts是一个开源的MVC(Model-View-Controller)框架,用于构建...
《精通Java EE—Eclipse Struts2 Hibernate Spring整合应用案例(第2版)》是一部针对Java企业级开发的深入教程,特别关注了四个关键的技术框架:Eclipse、Struts2、Hibernate和Spring。这些框架在现代Java应用开发中...
总结来说,"基于Struts Spring Hibernate Ajax的电子宠物案例"是一个综合性的Java Web项目,它结合了多种技术来构建一个完整的应用。通过学习和研究这个案例,开发者可以深入了解这些技术的集成使用,提升在实际开发...
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE...
本文探讨了如何利用Struts、Hibernate与Spring这三个开源框架构建一个强大的、高效的且易于扩展的J2EE分层架构。MVC(Model-View-Controller)设计模式作为这些框架的核心理念之一,被广泛应用于企业级应用开发中。...
5. 整合案例分析,展示如何在一个实际项目中集成这三个框架。 6. 错误处理和日志记录,提高系统的可维护性。 掌握这些知识后,开发者将具备构建大型、复杂Java Web应用的能力,能够灵活应对各种业务需求,提高项目...
JavaWeb整合开发实战--...总之,"JavaWeb整合开发实战--基于Struts2+Hibernate+Spring"这个教程将带领你走进Java Web开发的世界,通过实际操作和案例分析,提升你的开发技能,使你能够自如地应对复杂的企业级项目需求。