项目概要:商品登记后台管理的模拟系统
主要功能模块:新用户注册、忘记密码取回新密码、商品类别的管理(包括类别登记、维护、重新设置商品的归类)、商品的管理(包括商品的登记、维护)、批处理(商品信息的批量上载、下载)、修正密码功能
技术:采用轻量级的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对应
分享到:
- 2008-07-24 13:29
- 浏览 1125
- 评论(0)
- 论坛回复 / 浏览 (0 / 1586)
- 查看更多
相关推荐
一共四个,其中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...
一共四个,其中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...
一共四个,其中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...
SSH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、...
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax+》讲解了JSP/S rvlet技术的基础知识,并提供了一个综合案例展示其具体应用,它们是Java Web服务端技术的基石,也是学习Java Web开发所要必须掌握...
10个Java案例,涵盖了Java的不同知识点: 简单计算器:编写一个程序,接收用户的两个数字输入,...Web应用开发:使用Java的Web框架(如Spring、Struts、Hibernate等),开发一个简单的Web应用,实现用户注册、登录。
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax+》讲解了JSP/S rvlet技术的基础知识,并提供了一个综合案例展示其具体应用,它们是Java Web服务端技术的基石,也是学习Java Web开发所要必须掌握...
12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...
以及基于这些技术的商业化应用程序的开发技巧,在讲解过程中以目前最为流行的开发工具MyEclipse为载体,全面系统地介绍了如何在MyEclipse中开发基于Struts、Hibernate、Spring等主流框架的各种Java应用程序。...
主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用、Spring核心之IoC、...
书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的大部分知识点,可以作为iBATIS学习和Web开发的经典案例,非常值得深入研究。 本书既可为广大的开发人员(不仅仅是Web应用程序开发人员)...