`
jinnianshilongnian
  • 浏览: 21513903 次
  • 性别: Icon_minigender_1
博客专栏
5c8dac6a-21dc-3466-8abb-057664ab39c7
跟我学spring3
浏览量:2420516
D659df3e-4ad7-3b12-8b9a-1e94abd75ac3
Spring杂谈
浏览量:3010259
43989fe4-8b6b-3109-aaec-379d27dd4090
跟开涛学SpringMVC...
浏览量:5640608
1df97887-a9e1-3328-b6da-091f51f886a1
Servlet3.1规范翻...
浏览量:260219
4f347843-a078-36c1-977f-797c7fc123fc
springmvc杂谈
浏览量:1597953
22722232-95c1-34f2-b8e1-d059493d3d98
hibernate杂谈
浏览量:250370
45b32b6f-7468-3077-be40-00a5853c9a48
跟我学Shiro
浏览量:5860615
Group-logo
跟我学Nginx+Lua开...
浏览量:702889
5041f67a-12b2-30ba-814d-b55f466529d5
亿级流量网站架构核心技术
浏览量:785757
社区版块
存档分类
最新评论

【第十一章】 SSH集成开发积分商城 之 11.1 概述 ——跟我学spring3

阅读更多

11.1  概述

11.1.1  功能概述

       本节将通过介绍一个积分商城系统来演示如何使用SSH集成进行开发。

       积分商城一般是购物网站的子模块,提供一些礼品或商品用于奖励老用户或使用积分来折换成现金,如图11-1所示。

 

图11-1 购物网站与积分商城

       积分商城功能点:

  • 后台管理

         交易管理模块:用于查看积分交易历史;

         商品管理模块:用于CRUD积分兑换商品;

         日报或月报:用于发送给运营人员每日积分兑换情况,一般通过email发送;

         ……

  • 前台展示

         商品展示:展示给用户可以使用积分兑换的商品;

         支付模块:用户成功兑换商品后扣除用户相应积分

         添加积分模块:提供接口用于其他产品赠送积分使用,如每天在线10小时赠送50积分,购买相应商品增加相应积分;

         订单管理模块:订单管理模块可以使用现有购物平台的订单管理。

 

购物平台、用户系统及积分商城交互如图11-2所示,其中用户系统负责用户登录,购物平台是购物网站核心,积分商城用于用户使用积分购买商品。

 

图11-2 购物平台、用户系统及积分商城交互

 

由于积分商城也是很复杂,由于篇幅原因不打算完全介绍,只介绍其中一个模块——商品(兑换码)管理及购买,该模块主要提供给用户使用积分兑换一些优惠券或虚拟物品(如移动充值卡)等等。

 

11.1.2技术选型

由于本节是关于SSH集成的,因此选用技术如下:

  • 平台:Java EE;
  • 运行环境:Windows XP,JDK1.6;
  • 编辑器:Eclipse3.6 + SpringSource Tool Suite;
  • Web容器:tomcat6.0.20;
  • 数据库:mysql5.4.3;
  • 框架:Struts2.0.14、Spring3.0.5、Hibernate3.6.0.Final;
  • 日志记录:log4j1.2.15;
  • 数据库连接池:proxool0.9.1;
  • 视图技术:JSP 2.0。

       技术选定了,应该考虑平台架构了,这关系到项目的成功与否。

 

11.1.3系统架构

       积分商城系统架构也将采用经典的三层架构,如图11-3所示:

 

图11-3 三层架构

       分层的目的是约束层次边界,每层的职责和目标应明确和单一,每层专注自己的事情,不要跨越分层边界,具体每层功能如下:

  • 数据访问层:封装底层数据库或文件系统访问细节,从而对业务逻辑层提供一致的接口,使业务逻辑层不关心底层细节;
  • 业务逻辑层:专注于业务逻辑实现,不关心底层如何访问,并在该层实现如声明式事务管理,组装分页对象;
  • 表现层:应该非常轻量级及非常“薄(功能非常少,几乎全是委托)”,拦截用户请求并响应,表现层数据验证,负责根据请求委托给业务逻辑层进行业务处理,本层不实现任何业务逻辑,且提供用户交互界面;
  • 数据模型层:数据模型定义,提供给各层使用,不应该算作三层架构中的某一层,因为数据模型可使用其他对象(如Map)代替之。

系统架构已选定,在此我们进行优化一下,因为在进行基于SSH的三层架构进行开发时通常会有一些通用功能、如通用DAO、通用Service、通用Action、通用翻页等等,因此我们再进行开发时都是基于通用功能进行的,能节省不少开发时间,从而可以使用这些节约的时间干自己想干的事情,如图10-4所示。

 

 

图10-4 基于通用层的三层架构

11.1.4项目搭建

       1、创建动态web工程:

              通过【File】>【New】>【other】>【Web】>【Dynamic Web Project】创建一个Web工程,如图11-5所示;

 

图11-5 Web工程配置

1、 项目结构,如图11-6所示:

 

图11-6 项目结构

3、项目属性修改:

3.1、字符编码修改,如图11-7所示,在实际项目中一定要统一字符编码:

 

图11-7 修改项目字符编码

       3.2、类路径输出修改,如图11-8,将类路径输出改为/WEB-INF/classes下:

 

图11-8 类路径修改

       4、准备jar包:

       4.1、Spring项目依赖包,到下载的spring-framework-3.0.5.RELEASE-with-docs.zip中拷贝如下jar包:

dist\org.springframework.aop-3.0.5.RELEASE.jar

dist\org.springframework.asm-3.0.5.RELEASE.jar

dist\org.springframework.beans-3.0.5.RELEASE.jar

dist\org.springframework.context-3.0.5.RELEASE.jar

dist\org.springframework.core-3.0.5.RELEASE.jar

dist\org.springframework.expression-3.0.5.RELEASE.jar

dist\org.springframework.jdbc-3.0.5.RELEASE.jar

dist\org.springframework.orm-3.0.5.RELEASE.jar

dist\org.springframework.transaction-3.0.5.RELEASE.jar

dist\org.springframework.web-3.0.5.RELEASE.jar

 

  

       4.2、Spring及其他项目依赖包,到spring-framework-3.0.5.RELEASE-dependencies.zip中拷贝如下jar吧:

com.springsource.net.sf.cglib-2.2.0.jar

com.springsource.org.aopalliance-1.0.0.jar

com.springsource.org.apache.commons.beanutils-1.8.0.jar

com.springsource.org.apache.commons.collections-3.2.1.jar

com.springsource.org.apache.commons.digester-1.8.1.jar

com.springsource.org.apache.commons.logging-1.1.1.jar

com.springsource.org.apache.log4j-1.2.15.jar

com.springsource.org.apache.taglibs.standard-1.1.2.jar

com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar

 

 

       4.3、Hibernate依赖包,到hibernate-distribution-3.6.0.Final.zip中拷贝如下jar包:

hibernate3.jar

lib\jpa\hibernate-jpa-2.0-api-1.0.0.Final.jar

lib\required\dom4j-1.6.1.jar

lib\required\javassist-3.12.0.GA.jar

lib\required\jta-1.1.jar

lib\ required \slf4j-api-1.6.1.jar

lib\required\antlr-2.7.6.jar

 

       4.4、数据库连接池依赖包,到proxool-0.9.1.zip中拷贝如下jar包:

lib\proxool-0.9.1.jar

lib\proxool-cglib.jar

 

       4.5、准备mysql JDBC连接依赖包:

mysql-connector-java-5.1.10.jar

 

 

       4.6、slf4j依赖包准备,到下载的slf4j-1.6.1.zip包中拷贝如下jar包:

slf4j-log4j12-1.6.1.jar

 

       4.7、Strut2依赖包,到struts-2.2.1.1.zip中拷贝如下jar包:

lib\struts2-core-2.2.1.1.jar         

lib\xwork-core-2.2.1.1.jar      

lib\freemarker-2.3.16.jar            

lib\ognl-3.0.jar           

lib\struts2-spring-plugin-2.2.1.1.jar

lib\commons-fileupload-1.2.1.jar 

 

 

       jar包终于准备完了,是不是很头疼啊,在此推荐使用maven进行依赖管理,无需拷贝这么多jar包,而是通过配置方式来指定使用的依赖,具体maven知识请到官方网站http://maven.apache.org/了解。

 

 

原创内容,转载请注明出处【http://sishuok.com/forum/blogPost/list/2514.html

10
2
分享到:
评论
2 楼 wubingyang527 2016-07-20  
renzhehongyi 写道
楼主你好,有个问题需要请教:
问题:项目中添加jsp-api.jar后报错如下:
g.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:527)
java.lang.NullPointerException
org.apache.jsp.WEB_002dINF.jsp.common.error_jsp._jspInit(error_jsp.java:22)
经过网上查明后包重复,去掉jsp-api.jar,可是去掉后项目运行报如下错误:
java.lang.ClassNotFoundException: TagSupport
再上网查找到临时解决方案:
(http://bbs.csdn.net/topics/360119294)
问题“基本”解决了。   为什么说“基本”呢,因为出了个很奇怪的现象,在项目部署之前要加入jsp-api.jar和servlet-api.jar这两个包,这样在启动tomcat时才不会报错, 但是在浏览器上运行项目时,就出问题了(意思是项目下的jar和tomcat下的jar重复了)。
   我现在的做法就是:先在项目中加入jsp-api.jar和servlet-api.jar这两个包,后面启动tomcat(不报错),运行页面(报错),然后停止tomcat,去tomcat的webapps下把项目里面的jsp-api.jar和servlet-api.jar这两个包删除,然后再次启动tomcat(正常),运行页面(正常)。我现在的疑问:
   为什么tomcat明明有jsp-api.jar和servlet-api.jar这两个包,而如果项目在不加入这两个包的时候,启动tomcat就会报错的(就是找不到HttpSessionListener.class这个类)。在加入那两个包后,在项目运行一次后又说这两个jar和tomcat重复了,难道tomcat在myeclipse中运行时,不加载自己的lib吗?而当项目被编译后,在webapps里面,启动tomcat时才会加载自己的lib吗?

其实没有报错的 tomcat 自带了 jsp-api 和 servlet-api 两个包,但是你没有引用 tomcat 所以在编写程序的时候就找不到相关的 HttpSessionListener.class的类,那些类是运行时需要的,你可以将jsp-api.jar和servlet-api.jar设置为provided
1 楼 renzhehongyi 2015-06-14  
楼主你好,有个问题需要请教:
问题:项目中添加jsp-api.jar后报错如下:
g.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:527)
java.lang.NullPointerException
org.apache.jsp.WEB_002dINF.jsp.common.error_jsp._jspInit(error_jsp.java:22)
经过网上查明后包重复,去掉jsp-api.jar,可是去掉后项目运行报如下错误:
java.lang.ClassNotFoundException: TagSupport
再上网查找到临时解决方案:
(http://bbs.csdn.net/topics/360119294)
问题“基本”解决了。   为什么说“基本”呢,因为出了个很奇怪的现象,在项目部署之前要加入jsp-api.jar和servlet-api.jar这两个包,这样在启动tomcat时才不会报错, 但是在浏览器上运行项目时,就出问题了(意思是项目下的jar和tomcat下的jar重复了)。
   我现在的做法就是:先在项目中加入jsp-api.jar和servlet-api.jar这两个包,后面启动tomcat(不报错),运行页面(报错),然后停止tomcat,去tomcat的webapps下把项目里面的jsp-api.jar和servlet-api.jar这两个包删除,然后再次启动tomcat(正常),运行页面(正常)。我现在的疑问:
   为什么tomcat明明有jsp-api.jar和servlet-api.jar这两个包,而如果项目在不加入这两个包的时候,启动tomcat就会报错的(就是找不到HttpSessionListener.class这个类)。在加入那两个包后,在项目运行一次后又说这两个jar和tomcat重复了,难道tomcat在myeclipse中运行时,不加载自己的lib吗?而当项目被编译后,在webapps里面,启动tomcat时才会加载自己的lib吗?

相关推荐

    跟我学Spring3(11.3)SSH集成开发积分商城之实

    【Spring3 SSH集成开发】 Spring、Struts2和Hibernate(SSH)是Java Web开发中非常流行的三大框架。它们各自负责应用程序的不同层面:Spring提供依赖注入和面向切面编程,Struts2处理MVC模式,而Hibernate则专注于...

    跟我学spring

    【第十一章】SSH集成开发积分商城。SSH即Spring + Struts + Hibernate的组合,是一种常用的Web开发架构。11.1节概述SSH集成开发积分商城,11.2节讨论如何实现通用层,11.3节探讨如何实现积分商城层。 【第十二章】...

    跟我学spring3(8-13)

    【第十一章】 SSH集成开发积分商城: 1. **11.1 概述**:SSH指的是Spring、Struts2和Hibernate的组合,本章将这些技术整合到一个积分商城的实例中,演示了SSH框架在实际项目中的应用。 2. **11.2 实现通用层**:这...

    跟我学spring3(8-13).pdf

    1. **11.1 概述**:SSH(Spring、Struts、Hibernate)是经典的Java企业级开发组合,本章节展示了如何在Spring中整合Struts和Hibernate,实现一个积分商城的案例。 2. **11.2 实现通用层**:通用层通常包括数据访问...

    跟我学spring3(8-13)1

    4. **第十一章:SSH集成开发积分商城** - **11.1 概述**:这一章以一个具体的积分商城项目为例,介绍SSH(Spring、Struts2和Hibernate)的集成开发过程。 - **11.2 实现通用层**:讲解了如何设计和实现通用的服务...

    跟我学spring3(8-13)

    《跟我学Spring3》是一本全面介绍Spring框架的教程,主要涵盖了Spring对ORM支持、事务管理以及与其他Web框架的集成等内容。以下是对其中关键知识点的详细解析: 1. **Spring对ORM的支持**: - **8.1 概述**:这...

    SSH集成开发

    SSH集成开发是Java Web开发中的一个经典组合,它由Spring、Struts2和Hibernate三个开源框架组成,分别负责控制层、表现层和持久层的管理。这个集成项目旨在提供一个全面的解决方案,使得开发者能够更高效地构建企业...

    轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书1

    《轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书1》是一本专注于Java EE企业级应用开发的书籍,主要涵盖了Struts 2、Spring和Hibernate这三个流行开源框架的整合应用。这本书对于Java...

    SSH框架概述——适用得很!

    SSH框架,全称为Struts+Hibernate+Spring,是Java Web开发中的一个流行组合,用于构建高效、可扩展的多层Web应用程序。这三个组件分别负责不同的职责,共同构成了强大的MVC(Model-View-Controller)架构。 Struts...

    ssh集成开发宝典

    SSH集成开发宝典是一本深度探讨Java Web开发中三大框架——Struts、Spring和Hibernate集成应用的权威指南。这本书旨在帮助开发者从基础到高级全面掌握SSH框架的使用,提升开发效率,实现高质量的Web应用程序。 ...

    SSH集成Spring+hibernate+security 用户管理

    SSH集成是Java开发中一种常见的技术栈组合,主要包括Spring、Hibernate和Struts(或Spring MVC)这三个框架。在这个项目中,SSH被用来构建一个用户管理系统,实现了用户的基本操作以及权限控制功能。以下是对这些...

    SSH集成开发宝典

    Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层...Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

    spring3 学习

    《跟我学Spring3》是一本全面介绍Spring框架的教程,主要涵盖了Spring对ORM支持、事务管理、Web框架集成以及SSH集成开发等多个方面。Spring作为Java领域最流行的应用框架之一,其强大的功能和灵活性使得它在企业级...

    适合javabeginer学习SSH的项目,可以研究其源码——SSH框架.zip

    适合javabeginer学习SSH的项目,可以研究其源码——SSH框架

    ssh集成开发jar包(struts+spring+hibernate)

    SSH是Java开发中的一种经典企业级应用框架组合,由Struts、Spring和Hibernate三个开源框架组成。这个压缩包“ssh集成开发jar包”包含了这三个框架的核心库,方便开发者在项目中进行快速集成和开发。 **Struts框架**...

    网上商城——SSH电子商城

    【网上商城——SSH电子商城】项目是一个典型的Java企业级应用示例,主要采用了Spring、Struts和Hibernate这三大框架,也被称为SSH框架。这个项目旨在提供一个完整的网上购物平台的实现,涵盖了电子商务系统中的关键...

    轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书3

    《轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书3》是一本专注于Java EE轻量级开发技术的专著,它深入探讨了Struts 2、Spring和Hibernate(SSH)这三大流行开源框架的集成与应用。...

Global site tag (gtag.js) - Google Analytics