forwardpage=”b.jsp”/>
3.2JavaBean技术介绍
Sun公司定义:
JavaBean是一个可重复使用的软件组件。
实际上JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称bean。
由于javabean是基于java语言的,因此javabean不依赖平台,具有以下特点:
1.可以实现代码的重复利用
2.易编写、易维护、易使用
3.可以在任何安装了Java运行环境的平台上的使用,而不需要重新编译。
JavaBean是一种JAVA语言写成的可重用组件。
为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。
JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。
用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。
用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。
JavaBean可分为两种:
一种是有用户界面的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。
JSP通常访问的是后一种JavaBean。
JavaBean是可复用的平台独立的软件组件,开发者可以在软件构造器工具中其直接进行可视化操作。
JavaBean的组成:
属性、方法、事件
属性:
JavaBean提供了高层次的属性概念,属性在JavaBean中不只是传统的面向对象的概念里的属性,它同时还得到了属性读取和属性写入的API的支持。
属性值可以通过调用适当的bean方法进行。
比如,可能bean有一个名字属性,这个属性的值可能需要调用StringgetName()方法读取,而写入属性值可能要需要调用voidsetName(Stringstr)的方法。
方法:
JavaBean中的方法就是通常的Java方法,它可以从其他组件或在脚本环境中调用。
事件:
Bean与其他软件组件交流信息的主要方式是发送和接受事件。
事件为JavaBean组件提供了一种发送通知给其他组件的方法。
3.3jsp的运行环境
运行jsp,需要有支持jsp的服务器,本系统使用的服务器是tomcat7.0.41服务器。
4系统开发环境
4.1运行环境的介绍
操作系统:
windows7
数据库:
postgresql
开发工具:
EclipseJavaEEIDEforWebDevelopers.版本:
KeplerServiceRelease1
开发语言:
java、jsp
4.2服务器的配置
第一步:
打开pache-tomcat-7.0.41安装目录下的conf目录下的server.xml文件,按需修改服务器的链接端口,默认为:
8080。
第二步:
运行bin目录下的startup.bat(windows下),浏览器地址栏输入http:
//localhost:
8080,打开的是tomcat服务器的首页,如下所示:
4.3数据库的介绍以及后台环境的配置
4.3.1数据库的介绍
PostgreSQL支持大部分SQL标准并且提供了许多其他现代特性:
复杂查询、外键、触发器、视图、事务完整性、MVCC。
PostgreSQL采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。
PostgreSQL的特性覆盖了SQL-2/SQL-92和SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备,比如IP类型和几何类型等;其次,PostgreSQL是全功能的自由软件数据库,很长时间以来,PostgreSQL是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。
4.3.2数据库的后台环境的配置
关于数据库后台环境的配置,主要的是关于允许用户远程登录权限的有关配置,默认是只接受本地访问连接,其他的配置信息基本上可以采用默认的配置了如:
端口号5432。
在配置数据库允许远程登录连接权限需要对pg_hba.conf配置文件进行修改,若相应的权限配置信息配置不正确在调试工程需要对数据库进行连接的相关功能的时候就是出现500错误,提示数据库连接被拒绝。
需要修改的配置文件以及修改的内容如下所示:
修改data目录下的pg_hba.conf:
配置对数据库的访问权限。
在该配置文件的hostallall127.0.0.1/32md5行下添加以下配置,或者直接将这一行修改为以下配置(允许所有ip远程访问):
host all all 0.0.0.0/0 md5
第二章需求分析与可行性研究
1系统说明
本系统是由springsecurity+struts2+mybatis框架组合而成的一个网上图书选购系统,由springsecurity安全框架提供用户的身份认证以及访问控制;struts2实现对系统的一些拦截处理;mybatis主要的是后台数据库的管理。
2系统功能简介
2.1基本功能
2.1.1前台功能模块
前台功能模块需要实现的功能主要是完成与用户的一些交互,如:
登录、注册、浏览图书、对个人信息的修改、购物车、下订单等。
2.1.2后台管理模块:
系统的后台管理模块需要实现的功能主要是对系统全面的管理,例如用户管理、书目管理、订单管理等功能。
2.2用户界面设计
对于本系统的用户界面设计主要是引用国外一些开源的界面设计框架或样式。
其中信息展示页、登录页、注册页、出错提示页采用的是自己设计的css样式,首页、购物车页面、订单页、用户信息管理页、书管理页等引用的是开源框架的设计以及样式。
页面编码:
UTF-8
引用的css样式:
bootstrap.css、theme.css、font-awesome.css、mycss.css
引用的javascript是:
jquery-1.7.2.min.js、bootstrap.min.js
页面的布局:
三个主要的div:
navbar导航条、sidebar-nav侧边栏、content主体部分
2.2.1引用文件说明:
font-awesome.css来自Awesome是一套专门为 TwitterBoostrap设计的图标字体库。
这套图标字体集几乎囊括了网页中可能用到的所有图标,除了包括TwitterBoostrap 的默认图标外,还有社交网络图标、web应用程序图标和编辑器图标等等。
bootstrap.css、bootstrap.js 、bootstrap.min.js来自
bootstrap.css主要是一些基本的css样式,例如页面中分块需表现为浮动、隐藏、块状、自动、鼠标停留、鼠标滑过、图像、按钮等格式。
bootstrap.js 和bootstrap.min.js 文件都将所有插件包含在一个文件中了(前者是未压缩版,后者是压缩版)。
详细的说明参阅:
bootstrap.js 是bootstrap的所有js指令的集合,你看到bootstrap里面所有的js效果,都是由这个文件控制的,这个文件也是一个未经压缩的版本,供开发的时候进行调试用,bootstrap.min.js是bootstrap.js的压缩版,内容和bootstrap.js一样的,但是文件大小会小很多,在部署网站的时候就可以不引用bootstrap.js,而换成引用这个文件。
jquery-1.7.2.min.js来自于less,domore(写得更少,做得更多)。
jQuery是一个快速、简单的JavaScriptlibrary,它简化了HTML文件的traversing,事件处理、动画、Ajax(异步JavaScript和XML,是一种创建交互式网页应用的网页开发技术)互动。
jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
API说明文档地址:
mycss.css是自己编写的一套css样式,主要是定义一些自定义的分类导航等。
2.2.2页面布局
整个页面的分块布局如下图所示:
2.3测试环境规定
操作系统:
WindowsXP、windows7、windows8
浏览器:
chrome、IE7.0以上、firefox
第三章总体设计
1体系结构设计
本系统采用的是springsecurity+struts2+mybatis框架结构的。
下面将对各框架进行说明。
1.1springsecurity
Spring官网上对于springsecurity安全框架的介绍是:
SpringSecurityisapowerfulandhighlycustomizableauthenticationandaccess-controlframework.Itisthede-factostandardforsecuringSpring-basedapplications.是一个强大、高效可定制的身份认证模块和访问控制框架。
SpringSecurity对Web安全性的支持大量地依赖于Servlet过滤器。
这些过滤器拦截进入请求,并且在应用程序处理该请求之前进行某些安全处理。
在本系统中的过滤器并不是采用servlet的过滤器而是采用struts2的过滤。
关于对springsecurity安全框架的相关配置将在第四章详细设计中详细描述。
1.2struts2
Struts2是以WebWork为核心,采用拦截器的机制来处理用户的请求,其体系结构简而言之就是:
用户提交HttpServletRequest,Struts2过滤器拦截并调用ActionMapper确定请求是属于哪个action,根据action返回值查找结果字符串对应的(Result)然后执行这个Result。
关于对Struts2的相关配置将在第四章详细设计中详细描述。
1.3Mybatis
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
Mybatis的功能架构可以分为三层:
API接口层:
主要是提供一些供外部使用的接口。
数据处理层:
负责具体SQL的一些操作(查找、解析、之行)的处理以及对处理结果的映射。
基础支撑层:
负责最基础的功能支撑,包括一些数据库的连接管理、配置文件的加载等。
关于对MyBatis的相关配置将在第四章详细设计中详细描述。
2功能模块划分
2.1.1前台功能模块
用户登录功能:
实现用户的登录
用户注册功能:
对新用户,实现注册,保存用户信息
浏览图书功能:
对图书能够进行动态的查看
查看个人信息功能:
用户对于个人信息的查看
修改个人信息功能:
用户对于个人信息的修改
购物车功能:
能将想要购买的图书加进购物车。
购物车的修改功能:
对购物车中的商品实现删除和修改功能。
提交订单功能:
显示订单的提交,提交成功代表已成功下单,购物成功。
2.1.2后台管理模块:
用户管理:
添加、删除用户功能:
管理员能够添加、删除用户
更新用户信息功能:
管理员能够更新用户信息
图书管理:
图书的增删改查功能:
实现对图书的增删改查,动态的更新图书信息
订单管理:
查看订单功能:
对与已提交成功的订单进行查看。
3数据库设计
3.1E-R图
3.1.1
客户实体图:
3.1.2
图书实体图:
3.1.3
订单实体图:
3.1.4图书类型实体图:
3.1.5整体E-R图:
3.2表结构
对于能否做一个完善的网上购物类型网站,数据库的设计好坏是必须要考虑的。
以下几张表就列出数据库中重要的表以及其字段与该字段的意义。
用户信息表
字段名
数据类型
是否主键
描述
uid
int
是
用户id
Username
VARCHAR(45)
否
用户名
password
VARCHAR(45)
否
密码
email
VARCHAR(45)
否
电子邮箱
Phone_number
VARCHAR(45)
否
用户电话号码
address
VARCHAR(45)
否
用户地址
role
int
否
用户权限,0管理员,1普通用户
图书信息表
字段名
数据类型
是否主键
描述
bid
int
是
书本id
bookname
Varchar(50)
否
书名
Authorname
Varchar(50)
否
作者名
time
date
否
上架时间
type
Varchar(10)
否
书本类型
image
Varchar(50)
否
书本图像
price
float
否
价格
sum
int
否
库存
Sale_munber
int
否
销量
图书类型表
字段名
数据类型
是否主键
描述
类型号
Int
是
图书类型号
类型名
Varchar(10)
否
图书类型
描述
Varchar(50)
否
类型描述
订单信息表
字段名
数据类型
是否主键
描述
oid
int
是
订单号
bid
int
是
书本id
Amount
int
否
购买数量
订单表
字段名
数据类型
是否主键
描述
oid
int
是
订单号
uid
int
否
用户id
txt
Varchar(50)
否
订单备注
status
int
否
订单状态,1为已提交,0为购物车状态
Result
Int
否
订单受理状态,1为已受理,0为未受理
第四章详细设计
1系统概述
本系统是由springsecurity+struts2+mybatis框架组合而成的一个网上图书选购系统,由springsecurity安全框架提供用户的身份认证以及访问控制;struts2实现对系统的一些拦截处理;mybatis主要的是后台数据库的管理。
本系统的主要功能有:
用户登录、注册、浏览图书、对个人信息的修改、购物车、下订单、用户管理、书目管理、订单管理等。
1.1数据流图
1.1.1顶级数据流图:
1.1.2系统数据流图:
1.2
核心用例图:
系统用例图
2系统主要文件
2.1配置文件
系统的主要配置文件有:
applicationContext.xml(spring配置)、security_config.xml(springsecurity框架配置)、struts.xml(struts2过滤器的配置)、mybatis_config.xml(mybatis连接数据库的配置)以及网站的基本配置web.xml文件,其中:
applicationContext.xml、security_config.xml、struts.xml、mybatis_config.xml框架的一些配置信息将在后面的章节中详细的说明。
web.xml配置文件主要的配置信息包括指明spring、springsecurity过滤器的配置文件的路径以及加载spring以及struts的一些控制核心。
web.xml的具体配置信息如下所示:
xmlversion="1.0"encoding="UTF-8"?
>
xsi="http:
//www.w3.org/2001/XMLSchema-instance"xmlns="