JSP课程设计Word文件下载.docx
- 文档编号:4004413
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:33
- 大小:1.37MB
JSP课程设计Word文件下载.docx
《JSP课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《JSP课程设计Word文件下载.docx(33页珍藏版)》请在冰点文库上搜索。
\jspweb,然后运行D:
\resin-2.1.13\bin\httpd.exe,在浏览器输入http:
//localhost:
8080/j1.jsp,看到了“我是JSP!
”的字样了吧,你的Servlet服务器就这样配置成功了,为了能编译Servlet类,还需要做的事情是:
把D:
\resin-2.1.13\lib加入到windows的CLASSPATH的环境变量中。
2-2JSP、ASP和PHP技术之比较
JSP与ASP、PHP技术都是目前网上最流行的在服务器端运行的脚本技术,JSP能用JavaBeans技术封装,达到商业逻辑的目的,ASP对应之的是COM组件,因此两者都能用于开发商业逻辑,PHP则更像于一个纯脚本,仅适合于普通的网站开发,而不能用作商业逻辑而被冠以“PersonHomePage”的名称,这是最贴切不过的了。
JSP与ASP相比,JSP具有跨平台、安全、强大的可伸缩性的特点,而果硬要挑一些毛病,JSP相对别的脚本更加难掌握,因为精通JSP必须精通Java语言,对于中小型项目,我们要考虑开发人员、开发速度、开发成本等问题,在这方面ASP和PHP会比JSP更容易胜出。
值得一提的是,ASP的最新版本ASP.NET与原来的ASP性质完全是不同的,它和JSP一样,都是一种编译性的脚本,本身完全与强大的Net框架结合,完美的支持Xml的各种应用,与昔日的ASP不可同日而语,但是无论是ASP还是ASP.NET,它都摆脱不了Windows平台本身,这是ASP一个致命的缺点。
第3章系统设计
本系统采用三层架构设计,它的工作原理如图3-1所示。
图3-1三层架构模型
采用三层构架以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。
3.1数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
3.1.1数据库需求分析
针对一般在线书店的需求,得出如下需求信息。
▪用户分为游客和已注册用户。
▪订单分为单张详细订单和总订单。
▪一个用户可以购买多本图书。
▪一个用户对应一张订单。
▪一个列表对应多张订单。
针对本系统功能分析,总结出如下的需求信息。
▪用户,包括数据项:
用户ID、用户名、密码。
▪图书,包括数据项:
图书编号、图书名、价格、图书介绍。
▪订单列表,包括数据项:
订单编号、图书编号、购书数量。
▪订单,包括数据项:
订单编号、用户编号、下单时间。
从本系统中规划出的实体有:
用户实体、图书实体、订单实体、订单列表实体。
实体之间关系的E-R图如图3-5所示。
11N
N
图3-5实体关系E-R图
用户信息实体的E-R图如图3-6所示。
图书实体的E-R图如图3-7所示。
订单实体的E-R图如图3-8所示。
订单列表实体的E-R图如图3-9所示。
图3-6图书实体E-R图
图3-7用户实体E-R图
图3-8订单实体E-R图
图3-9订单列表实体E-R图
3.1.2数据库逻辑结构设计
在线书店数据库中各个表的设计结果如下面的标和所示。
表3.1为图书信息列表book。
表3.1图书信息表book
字段名
数据类型
长度
允许空
说明
ID
int
4
自动编号,主键
bookname
书名
bookclass
varchar
255
图书类别
author
100
yes
图书作者
publish
float
8
出版社
bookNo
书号
Content
text
16
内容介绍
price
tinyint
1
价格
Amount
总数量
Leav_number
库存量
picture
封面
reg_time
datetime
入库时间
表3.2为用户信息列表shop_user。
表3.2用户信息表shop_user
自动编号,会员编号
username
no
用户名
password
密码
Names
会员级别
Sex
50
名字
Addr
地址
Phone
25
电话
Post
邮编
邮箱
Retime
注册时间
RegIpAddr
20
注册ip
表3.3为订单表,记录订单信息orders。
表3.3订单信息表orders
自动编号,订单编号
order_id
会员编号
user_id
图书编号
quantity
订购数量
submit_time
提交订单时间
consignmentTime
交货时间
totalprice
总价
content
备注
ipAddr
用户ip
isPayoff
11
是否付款
isSale
是否发货
表3.4为订单列表,记录订单列表信息allorder。
表3.4订单列表allorder
自动编号,卡类型编号
orderID
订单号
BookNo
数量
表3.5书店管理员信息表,记录管理员信息bookadmin。
表3.5管理员信息表bookadmin
AdminUser
管理员用户名
AdminPass
yes
管理员密码
表3.6图书分类信息表,记录图书分类信息bookclass。
表3.6图书分类表bookclass
Classname
30
第4章详细设计
4.1系统概述
4.1.1用户界面部分
图书选购(可按分类查找图书,或者通过关键字进行查询)。
购物车功能。
查看图书详细信息。
用户注册。
用户登录。
查看用户的订单信息。
修改用户个人信息。
4.1.2管理界面部分
现有图书管理:
修改,删除,查看。
用户管理:
查看,修改,删除。
订单管理:
查看订单清单,更新订单付款,出货状态,删除订单。
添加新图书。
添加图书分类。
4.2详细代码及说明
4.2.1实现bookshop.run包
1:
login.java
这是一个以客户为中心的交易平台,只有成为了系统的合法用户才能够使用这个系统,因此需要检验每个用户的合法性,管理用户登录的login.java正是要完成这样的功能。
类中定义了个private属性和他们对应的setX()/getX()方法和默认构造函数和execute()getSql()操作。
private属性分别是:
privateStringusername;
//登录用户名
privateStringpasswd;
//登录密码
privatebooleanisadmin;
//是否管理员登录
privatelonguserid=0;
//用户ID号
重要操作:
主要介绍execute()
execute()操作
功能:
从数据库中查询用户信息。
返回值:
boolean型,如果取值成功返回true,否则,返回false。
设计思路:
获得数据库连接对象Connection对象,ResultSet对象和Statement对象――》调用getSql()方法获得sql语句――》执行sql语句。
程序主干部分代码:
publicbooleanexecute()throwsException{
………
try{
con=DataBase.getConnection();
stmt=con.createStatement();
rs=stmt.executeQuery(getSql());
}catch(Exceptione){
e.printStackTrace();
}
while(rs.next()){
if(!
isadmin)
{
userid=rs.getLong("
id"
);
}
flag=true;
………}
2:
op_book.java
该类主要负责图书的管理,包括图书的修改,查询,删除和添加等。
op_book类有以下属性:
privatebookabooks=newbook();
//新的图书类
privatejavax.servlet.http.HttpServletRequestrequest;
//建立页面请求
privatebooleansqlflag=true;
//对接收到的数据是否正确
privateVectorbooklist;
//显示图书列表向量数组
privateintpage=1;
//显示的页码
privateintpageSize=5;
//每页显示的图书数
privateintpageCount=0;
//页面总数
privatelongrecordCount=0;
//查询的记录总数
publicStringsqlStr="
"
;
op_book类有以下方法(省去了属性对应的getX()/setX()方法):
book_search();
完成图书查询,包括分类,关键字查询。
delete();
负责图书的删除。
getOnebook();
主要完成图书的单本查询,用于支持页面的“查看详细信息”。
insert();
负责图书的添加。
to_String();
把字符串以“ISO8859-1”编码形式输出,使页面正常显示。
update();
负责修改图书信息。
getRequest();
负责接受页面传递过来的参数,分解并将参数存放到abooks对象中。
重要操作:
主要介绍getRequest()
getRequest()方法
功能:
负责从页面接受表单数据并分解,设置abooks对象相应属性。
参数设计:
页面传递的Request对象,其中包括表单数据。
返回值:
boolean型,true表示成功,否则返回false。
设计思想:
获取页面传递的Request对象—》分解Request对象—》获取表单参数值—》把参数值设置成图书对象abooks相对应的属性值。
程序主干代码:
publicbooleangetRequest(javax.servlet.http.HttpServletRequestnewrequest){
request=newrequest;
StringBookName=request.getParameter("
BookName"
abooks.setBookName(to_String(BookName));
Stringauthor=request.getParameter("
author"
abooks.setAuthor(to_String(author));
Stringpublish=request.getParameter("
publish"
abooks.setPublish(to_String(publish));
Stringbookclass=request.getParameter("
bookclass"
abooks.setBookClass(bc);
Stringbookno=request.getParameter("
bookno"
abooks.setBookNo(to_String(bookno));
Stringpicture=request.getParameter("
picture"
abooks.setPicture(to_String(picture));
price=newFloat(request.getParameter("
price"
)).floatValue();
abooks.setPrice(price);
amount=newInteger(request.getParameter("
amount"
)).intValue();
abooks.setAmount(amount);
StringContent=request.getParameter("
Content"
abooks.setContent(to_String(Content));
……..
3:
op_user.java:
为了使用上的方便,我们把对用户的管理,包括用户的添加,删除,修改,查询等集合成一个管理类。
该类具有以下属性:
privateuseruser=newuser();
//新的用户对象
privateVectoruserlist;
//显示用户列表向量数组
//显示的页码
privateintpageSize=8;
//每页显示的图书数
privateStringmessage="
//出错信息提示
privateStringusername="
//注册后返回的用户名
privatelonguserid=0;
//注册后返回的用户ID
该类具有的主要方法(省去了属性相关的getX()/setX()操作):
add():
负责用户的添加。
delete():
负责删除指定ID的用户。
get_alluser():
取出书店所有用户的信息。
getGbk():
返回指定字符串的GBK编码。
getUserinfo():
负责取得用户的详细信息。
update():
负责修改用户资料。
getRequest():
获取表单数据,并分解存储。
4:
op_buy.java
我们把业务逻辑和对订单以及和订单列表的管理集成到了该类当中。
该类具有以下属性:
privateHttpSessionsession;
//页面的session;
privatebooleansqlflag=true;
//对接收到的数据是否正确
privateVectorpurchaselist;
//显示图书列表向量数组
privateVectorallorder;
//订购单列表
privateVectororder_list;
//订单清单列表
privateintbooknumber=0;
//购书总数量
privatefloatall_price=0;
//购书总价钱
privatebooleanisEmpty=false;
//库中的书数量是否够购买的数
privateintleaveBook=0;
//库存数量
privateStringorderId="
//用户订单号
privatebooleanisLogin=true;
//用户是否登录!
//显示的页码
privateintpageSize=15;
//每页显示的订单数
privateintpageCount=0;
//页面总数
privatelongrecordCount=0;
//查询的记录总数
该类的主要操作(省去了属性相关的getX()/setX()操作)
addnew():
负责向购物车中添加新购买的图书。
delete():
负责从数据库中删除指定ID的订单。
modiShoper():
负责修改购物车中已选的图书。
delShoper():
负责删除购物车中的物品。
getAllorder():
负责从数据库中的订单列表中查询指定用户的订单列表。
getGbk():
获得指定字符串的GBK编码。
getOrder():
获得单个订单对象。
payout():
提交购物车,把订单插入到数据库中。
update():
该方法负责当用户付款后,把数据中对应订单的是否付款标记修改成已付状态。
主要介绍addnew()
addnew()方法
负责向购物车中添加一条新记录。
参数设计:
页面传递的request对象。
boolean类型,成功返回true,否则返回false。
从页面获得表单数据(request对象中)---》获得图书编号等参数值—》判断购买数量是否合法—》如果是可以操作,否则不能操作—》判断是否第一次购买—》如果是第一次购买,按第一次购买操作—》否则查询购买列表,找是否有相应项,有则直接修改数量—》否则添加新记录。
函数代码:
publicbooleanaddnew(HttpServletRequestnewrequest)throwsException{
…………
request=newrequest
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 课程设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)