1、I基于 JSP/Servlet校园二手交易平台摘 要本系统采用 JSP/servlet 技术,是使用 Java 编程语言编写的一套校园网二手交易平台软件。系统采用的是最近几年流行的 B/S 开发模式,以互联网方式运行,服务器端只需要安装本系统,而客户端用户只要可以上网,就可以非常方便快捷的通过浏览器访问系统,浏览和发布二手交易信息,免去了传统的 C/S 模式下复杂的安装、配置、维护等操作。同时由于使用面向对象的 Java 语言,所以本系统也具有 Java 语言的面向对象、与平台无关、安全性高、稳定性高、多线程等特性,以及 Java 语言对网络编程技术的支持。使得本系统具有很高的使用价值。系统开
2、发采用了实现 MVC 模式的 Web 应用组件:Struts,实现数据持久化功能的ORM 组件:Hibernate,用 JSP+HTML+JavaScript 进行界面处理,数据库采用比较稳定的MySQL 5.0,并用 JDBC 进行数据库访问。关键词:JSP,Struts,Hibernate,MySQL,二手交易平台IICampus Secondhand Merchandise Platform Based on Jsp/Servlet ABSTRACTThis system is a set of platform software of the campus-wide system se
3、condhand transaction. It adopts the JSP/J2EE technique, and programmed with Java programming language. It also adopts the B/S development mode, which is based on Web and popularize in recent years. It runs in internet ways. Only when the server install this system and the client can visit it, browse
4、 and release some secondhand conveniently and speedily when they go on-line. And so it dispenses with such operation as the complicated installing, installment and support in traditional C/S mode. At the same time, it uses the Java language which towards the OOP(object-oriented programming).So the s
5、ystem has the specific property of towarding OOP, irrelevant with the platform ,the Java languages support to the network programming technique makes the system have high practical value.The System using the components of Web applications: Struts to achieve MVC model, using the ORM components: Hiber
6、nate to achieve data persistence features, using JSP + HTML + JavaScript to Show page. using Relatively stable database MySQL 5.0, and use JDBC to visit.KEY WORDS: JSP,Struts,Hibernate,MySQL,Campus Secondhand MerchandiseIII目 录摘 要 IABSTRACTII1 系统分析 11.1 开发背景 11.2 目的和要求 11.3 可行性研究 12 开发技术及开发环境 32.1 Ja
7、va 语言简介 32.2 J2EE 技术介绍 32.3 Servlet/JSP 技术 32.4 MVC 简介 42.5 Struts 技术 52.6 Hibernate 技术 62.6.1 应用程序的分层体系结构 62.6.2 Hibernate 的应用及 API 简介 72.7 开发环境及环境配置 82.7.1 Java/JSP 系统环境 82.7.2 JSP 环境的安装和环境变量的设置 82.7.3 Eclipse 开发工具 92.7.4 Tomcat 服务器 92.8 数据库开发工具选择及配置 103 系统需求分析及设计 113.1 系统需求分析 113.1.1 系统功能需求 113.1
8、.2 系统界面要求 113.2 概要设计 123.2.1 系统体系结构设计 123.2.2 系统功能模块设计 123.2.3 功能设计的目标与原则 133.3 数据库设计 143.3.1 数据库需求分析 143.3.2 数据库概念结构设计 14IV3.3.3 数据库逻辑表设计 143.3.4 数据库逻辑结构设计 173.4 数据库访问设计 183.4.1 数据库表模型设计 183.4.2 Hibernate 数据库访问配置 183.4.3 定义映射文件 193.4.4 Hibernate Session 工厂 223.4.5 定义和实现 Hibernate DAO223.4.6 Hiberna
9、te Filter 的实现 234 系统功能模块的实现 254.1 系统主页设计 254.1.1 主页显示设计 254.1.2 主页后台设计 264.2 系统登录功能设计 264.3 系统搜索功能设计 274.4 用户注册功能设计 294.4.1 用户注册页面设计 294.4.2 用户注册后台设计 314.5 发布、修改信息设计 314.6 信息管理设计 324.7 信息留言设计 334.8 二手指南设计 345 总结 35致 谢 36参 考 文 献 37附 录 38基于 JSP/Servlet 校园二手交易平台 11系统分析1.1 开发背景随着全世界互联网技术的不断发展,各种基于互联网技术的
10、网络应用不断涌现,网络技术正在不断的深入人们的生活。人们从Internet上获取信息、享受生活、交流感情、网上工作等。Internet正在迅速改变着人们的生活方式。经过我国改革开放多年以后,随着与国际社会的接轨,各种资源的商品化已经逐渐成为了我们这个社会的代名词。在这这情势下,校园二手商品资源也已极大的丰富起来,如何解决一类问题,争取最大利用率的交流这类商品的信息便是一个存在中的问题。本毕业设计便是解决该问题的。1.2 目的和要求在当前社会上,许多的各种类型的电子商务类网站纷纷建立,可以很大程度上的解决人们信息资源的闭塞以及地域上的限制。作为大学校园,伴随着学生的购买能力的提高和每年的升学和毕
11、业,也存在的许多各种类型的二手商品,由于信息交流的落后,很多只限于于校园公告栏或者请人代为宣传的方式进行交易。这种方式有很多局限性和偶然性,并不能满足二手商品畅通交流的要求。于是一种新的二手商品信息交流的方式出现了,就是基于Web的校园网二手商品交易系统。通过这个系统,可以发现每一个校园网用户都是系统的主人,大家可以非常方便的发布自己的信息,浏览别人的发布的信息,还可以对各种二手商品信息作出横向比较,作出自己的最佳选择。由此可见,该系统只是一个交流二手商品信息的平台,与一般的电子商务类网站又有本质的区别。1.3 可行性研究设计这样一个系统,从根本上解决了传统的校园二手信息发布交流方式的弊端,使
12、得校园各种二手商品信息得到了有效的整合,方便了广大用户。且拥有的客户通常只是大学校园网的用户,所有系统规模上来讲不会很大,从经济上来说,由于选择的开发工具和服务器几乎全部为免费的开源软件,并且由于是开发成本较低的基于Web的B/S模式,而非成本费用相对较高的C/S模式,所以从经济上来讲是可行的。从技术上来说,由于是基于Web的,可以相对比较容易面对用户的实际需求而开发。而在现今,各种网络应用的开发已经相当成熟,出现了几大主流的开发语言和工具,都可以非常有效的支持开发这样一个系统。同时作为本系统,也有许多成功的电子商务类网站的经验可以借鉴,所以从技术的角度来说,也是可行的。从运行上来说,由于客户
13、端仅2仅只是需要一个浏览器,通过浏览器来登陆系统,而服务器端也只需要一台服务器,服务器要求一个数据库环境和一个网络应用开发的环境,实现起来比较容易,所以从运行上来说是可行的。同时这样一个系统,在系统管理员合法管理和用户的自觉配合下,不会违规进行任何的不法的活动和交易,发布具有危害性和不适宜的信息,也不存在任何非法牟利的行为,在法律上也是可行的。在各种可行性研究保证和基于用户需求要求下,开发系统的方案经过不断论证和假设,确定出了一个最佳方案。基于 JSP/Servlet 校园二手交易平台 32 开发技术及开发环境2.1 Java语言简介Java语言是美国Sun公司于1995年推出的一种简单的、面
14、向对象的、分布式的、可解释的、键壮的、安全的、结构的、中立的、可移植的、性能很优异的多线程的、动态的语言。其前身为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术。经过Sun公司的工程师的不懈努力以及全世界无数的编程爱好者的使用,Java终于发展成为今天这样一个集桌面(J2SE)、网络(J2EE)、移动平台(J2ME)应用为一体的功能强大的编程语言。目前Java由于其平台无关及分布式特性,最重要的应用是在网络应用上 1。2.2 J2EE技术介绍J2EE技术是Java网络应用的技术,广泛应用于企业级的应用。它是由一套规范(sha
15、nnin,2001)和建立在J2SE平台上的应用编程接口(API)组成。J2EE拥有Sun公司提供免费开发工具,称为J2EE软件开发工具包(Software Development Kit,SDK )(http:/ 。J2EE技术是一种Java网络应用技术的组合,包含有远程方法调用(Remote Method Invocation,RMI)、Java消息服务(Java Message Service,JMS)、JavaMail等通信服务,JDBC、Java命名和目录接口(Java naming and Directory Interface,JNDI)、Java连接器体系结构(Java Con
16、nector Architecture,JCA)、Java事务API/Java事务服务(JTA/JTS)、XML处理API等通用服务以及Servlet、Java服务器页面(JSP)、企业级JavaBean(EJB)等组件技术。任何J2EE的实现都必须要在其特定容器中实现。 2.3 Servlet/JSP技术Servlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。 Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用Java Serv
17、let以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。JSP(JavaServer Pages)是一种基于Java的脚本技术。在JSP 的众多优点之中,其中之一是它能将 HTML 编码从 Web 页面的业务逻辑中有效地分离出来。用 JSP 访问可重用的组件,如 Servlet、JavaBean 和基于 Java 的 Web 应用程序。JSP 还支持在 Web 页面中直接嵌入 Java 代码。
18、可用两种方法访问 JSP 文件:浏览器发4送 JSP 文件请求、发送至 Servlet 的请求。 a) JSP 文件访问 Bean 或其它能将生成的动态内容发送到浏览器的组件。b) 发送至 Servlet 的请求生成动态内容,并调用 JSP 文件将内容发送到浏览器。该访问使得将内容生成从内容显示中分离出来更为方便。JSP最大的优点在于其与平台无关性,具有“一次编写,处处运行”的特点。2.4 MVC 简介模型视图控告器(MVC)是 20 世纪 80 年代 Smalltalk-80 出的一种软件模式,现在已经被广泛使用。a) 模型(Model)模型是应用程序的主体部分。模型表示业务数据,或者业务逻
19、辑。b) 视图(View)视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。c) 控制器(Controller)控制器的工作就是根据用户的输入,控制用户界面显示和更新模型对象的状态。典型的 MVC 模式所包含的模块、每个模块的功能以及模块之间的关系如图 2-1 所示 2:模型封装应用程序状态响应状态查询应用程序功能通知视图改变视图解释模型模型更新请求发送用户输入给控制器允许控制器选择视图控制器定义应用程序行为用户动作映射成模型更新选择响应的视图状态查询通知改变方法调用 事件视图选择用户请求状态改变图 2-1 MVC 组件的关系和功能MVC 模式的出现不仅实现的功能模块和显示模块的
20、分离,同是赛马场还提高了应用系统的可维护性、可扩展性、可移植性和组件的可利用性。在早期的程序中,如果不注意对数功能和显示的解耦合,常常估导致程序的复杂及难以维护,像 VB,Delphi 等 RAD 程序都有这种问题。甚至现在有 C#,Java 有时候也会出现把业务逻辑写在显示模块中的现象。尽管 MVC 设计模式很早的提出了,但在 Web 项目的开发中引入 MVC 却是步履艰难。主要原因是在早期的 Web 项目开发中,程序语言和 Html 的分离一直难以实现,CGI 程序以字条串输出的形式动态的生成 html 内容。直到基于 J2EE 的 JSP Model2 问世时才基于 JSP/Servle
21、t 校园二手交易平台 5得以改观。它用 JSP 技术实现视图的功能,用 Servlet 技术实现控制器的功能,用JavaBean 实现模型的功能。JSP Model2 结构如图 2-2 所示:浏览器控制器( Servlet)视图(JSP)请求响应(Model)JavaBean实例化应用服务器 数据库图 2-2 JSP Model2 结构图在 Model 2 这种框架结构中,Servlet 作为控制器负责处理用户的请求以及创建JSP 页面中所有要使用的 Bean 对象,并且还要根据用户的请求来返回到不同的 JSP 页面。在使用 Model 2 开发框架时,一定要保证在 JSP 页面中不能包含任何
22、的业务处理逻辑。它只是简单地得到对象或者在 Servlet 中创建的 Bean,然后通过这些动态的内容来生成动态显示的页面。Struts 本质上就是在 Model 2 的基础上实现一个 MVC 架构,它只有一个中心控制器,采用定制转向的 URL 并采用 Action 来处理逻辑。2.5 Struts 技术Struts是一个为开发基于模型(Model)视图(View)控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Java Servlet和JSP构建Web应用的一项非常有用的技术。首先事件是指从客户端页面(浏览器)由用户操作触发的事件,Struts使用Action来接受浏
23、览器表单提交的事件,这里使用了Command模式,每个继承Action的子类都必须实现一个方法execute。struts重要的表单对象是ActionForm,它代表了一种应用,这个对象中至少包含几个字段,这些字段是Jsp页面表单中的input字段,因为一个表单对应一个事件,所以,当我们需要将事件粒度细化到表单中这些字段时,也就是说,一个字段对应一个事件时,单纯使用Struts就不太可能,当然通过结合JavaScript也是可以转弯实现的。Struts 是一个基于 Sun J2EE 平台的 MVC 框架,主要是采用 Servlet 和 JSP 技术来实现的。Struts 把 Servlet、J
24、SP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套 MVC 模式,6极大的节省了时间。Struts 包含了一组想相互协作的类、Servlet 和 JSP 标记,它们共同组成了一个可重用的 MVC 模板。通过定义可以看出,Struts 是 Web 应用的开发框架,Struts 包含丰富的标记库和独立于该框架工作的实用程序类。图 2-3 显示了 Struts 的基本结构。客户(浏览器 )控制器(ActionServlet)业务逻辑( Action)视图(JSP)模型(ActijonForm)struts-confi
25、g.xml分配读取转发请求响应实例图 2-3 Struts 基本结构通过图 2-3 可以看出,采用 Struts 框架结构的 Web 应用程序主要由控制器、业务逻辑、模型和视图组成。其中的控制器、模型和视图为 Struts 框架的主要组成部分,而事务逻辑则是我们需要实现的系统业务逻辑处理部分。2.6 Hibernate 技术2.6.1 应用程序的分层体系结构随着计算机应用软件的发展,应用程序逐渐由单层体系结构发展为多层体系结构。其中,三层结构是目前典型的一种应用软件结构。表述层:提供与用户交互的界面,如GUI(图形用户界面) ,web页面等;业务逻辑层:负责各种业务逻辑,直接访问数据库,提供对
26、业务数据的保存、更新、删除和查询操作;数据库层:负责存放管理应用的持久性业务数据。三层结构的特点是:所有下层向上层提供调用的接口,具体实现细节对上层透明。层与层之间存在自上而下的依赖关系,即上层会访问下层的API,但下层不依赖于上层。分离出的持久化层封装了数据访问细节,为业务逻辑层提供了面向对象的API 2。持久(Persistence) ,即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘) 。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。持久层(Persistence Layer) ,即专注于实现数据持久化应用领域的某
27、个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。基于 JSP/Servlet 校园二手交易平台 7三层软件结构如图 2-4 所示:表示层业务逻辑层数据库层表示层业务逻辑层持久化层数据库层三层结构分离出持久化层图 2-4 三层软件结构图数据库的读写是一个很耗费时间和资源的操作,当大量用户同时直接访问数据库的时候,效率将非常低,如果将数据持久化就不需要每次从数据库读取数据,直接在内存中对数据进行操作,这样就节约了数据库资源,而且加快了系统的反映速度。增加持久化层提高了开发的效率,使软件的体系结构更加清晰,在代码编写和系统维护方面变得更容易。特别是在大型的应用里边,会更有利。同时,持久化层作
28、为单独的一层,人们可以为这一层独立的开发一个软件包,让其实现将各种应用数据的持久化,并为上层提供服务。从而使得各个企业里做应用开发的开发人员,不必再来做数据持久化的底层实现工作,而是可以直接调用持久化层提供的 API。2.6.2 Hibernate的应用及 API简介Hibernate是一种Java语言下的对象关系映射解决方案。它是一种自由、开源的软件。它用来把对象模型表示的对象映射到基于SQL的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate不仅管理Java类到数据库表的映射(包括从Java数据类型到SQL数据类型的映射) ,还提
29、供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。Hibernate对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,它既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。最具革命意义的是,Hibernate可以在应用EJB(EnterpriseJavaBeans是Java应用于企业计算的框架)的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate 使用 Java 反射机制 而不是字节码增强程序来实现透明性。H
30、ibernate 的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。Hibernate 支持各种关系数据库,从一对一到多对多的各种复杂关系。Hibernate 核心接口如图 2-5 所示:8Configuration配置 HibernateSessionFactory初始化 HIbernateSession负责对象操作Query执行数据库查询Criteria执行数据库查询Transaction管理事务创建创建执行执行执行图 2-5 Hibernate 核心接口框图2.7 开发环境及环境配置2.7.1 Java/JSP系统环境开发及测试的系统环境,我选择了Microsoft Windows Advanced Server 2000。由于其本身就是为服务器版的,适合用于搭设成为服务器端。要开发JSP,首先必须要求有Java环境,我选择了JavaTM Platform, Standard E