JAVAWEB课程设计实验报告.docx

上传人:b****8 文档编号:9133426 上传时间:2023-05-17 格式:DOCX 页数:13 大小:113.70KB
下载 相关 举报
JAVAWEB课程设计实验报告.docx_第1页
第1页 / 共13页
JAVAWEB课程设计实验报告.docx_第2页
第2页 / 共13页
JAVAWEB课程设计实验报告.docx_第3页
第3页 / 共13页
JAVAWEB课程设计实验报告.docx_第4页
第4页 / 共13页
JAVAWEB课程设计实验报告.docx_第5页
第5页 / 共13页
JAVAWEB课程设计实验报告.docx_第6页
第6页 / 共13页
JAVAWEB课程设计实验报告.docx_第7页
第7页 / 共13页
JAVAWEB课程设计实验报告.docx_第8页
第8页 / 共13页
JAVAWEB课程设计实验报告.docx_第9页
第9页 / 共13页
JAVAWEB课程设计实验报告.docx_第10页
第10页 / 共13页
JAVAWEB课程设计实验报告.docx_第11页
第11页 / 共13页
JAVAWEB课程设计实验报告.docx_第12页
第12页 / 共13页
JAVAWEB课程设计实验报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

JAVAWEB课程设计实验报告.docx

《JAVAWEB课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《JAVAWEB课程设计实验报告.docx(13页珍藏版)》请在冰点文库上搜索。

JAVAWEB课程设计实验报告.docx

JAVAWEB课程设计实验报告

 

第一章概述

【实验目的】

1.掌握java-web网站设计的全过程;

2.进一步熟练Servlet技术、数据库、标签等一般java-web应用技术;

3.掌握整个java-web应用架构、目录结构以及服务器使用。

【需求分析】

1.设计一个较完善的网上军靴商店;

2.账户模块:

提供用户注册、登录,考虑用户数量增减,需要用数据库技术;

3.商品显示模块:

出于增加销售量考虑,需要有简单广告功能,并提供商品详细参数;推广商品,网站需要对热销商品展示以及商品分类显示、商品查询;

4.订单管理模块、订单详细信息模块:

显示已保存的订单的详细信息;

5.购物车模块:

添加/删除商品,结帐,显示订单信息。

第二章网上商店结构分析与设计

【前言】

随着信息化技术在生活中的应用越来越广泛,网上购物也逐渐成为人们的一种生活方式。

本系统正是基于这样一种环境下应运而生。

本电子商城为前台部分,前台主要实现会员的网上购物业务流程、用户注册、用户资料修改。

本商城主要利用javaservlet技术进行开发,有很强的逻辑性、可扩展性,便于维护。

商城界面设计主要实用了CSS,美化了店面。

其次本商城设计还使用了JSP技术、JDBC技术、JavaBean技术、css。

2.1系统结构图

 

图2.1系统整体框图

 

2.2系统功能分析

  新品上市模块:

在首页框架中显示新品列表

  畅销商品模块:

在首页框架中显示畅销列表

  购物车模块:

显示已点击购买但没结账的商品

  结账模块:

直接显示当前订单

  查看商品信息模块:

显示当前商品详细信息

商品分类模块:

分类显示商品

全部商品模块:

显示商品列表

  查询商品模块:

搜寻商品,显示商品信息

  用户注册模块:

实现用户注册统功能分析

第三章详细设计

3.1数据库设计

商品表(shoe)

用户表(user)

用户订单表(orderinfo)

3.2商品模块实现

3.2.1模块功能实现和关键代码说明

先由JSP页面发出请求调用mypack包下GetshoeServlet,调用里面的doGet方法,然后调用db.executeQuery(sql)方法,查询数据库,查到热销商品的列表,保存进requeset对象的resault变量里,然后通过调用取出其中的值,显示到主页面。

商品查询模块按商品ID、关键词查询,商品显示模块使用同样方法根据不同条件查询数据库。

 

 主要代码如下:

 

protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)

throwsServletException,IOException{

req.setCharacterEncoding("utf-8");

StringtypeId=req.getParameter("typeId");

StringshoeId=req.getParameter("shoeId");

Stringkeyword=req.getParameter("keyword");

Stringsql="select*fromshoe";

Stringsql1="select*fromshoewheretypeId=?

";

Stringsql2="select*fromshoewhereshoeId=?

";

Listshoelist=newArrayList();

HttpSessionsession=req.getSession();

BookDBdb=null;

CachedRowSetresult=null;

try{

db=newBookDB();

if(typeId!

=null){

if(typeId.equals("0")){

result=db.executeQuery(sql);

}else{

result=db.executeQuery(sql1,typeId);

}

while(result.next()){

Shoeshoe=newShoe();

shoe.setType(result.getString

(1));

shoe.setShoeId(result.getInt

(2));

shoe.setName(result.getString(3));

shoe.setPrice(result.getFloat(4));

shoelist.add(shoe);

}

session.setAttribute("shoelist",shoelist);

resp.sendRedirect(req.getContextPath()+"/catalog.jsp");

}

if(shoeId!

=null){

result=db.executeQuery(sql2,Integer.parseInt(shoeId));

if(result.next()){

ShoeshoeDetail=newShoe();

shoeDetail.setType(result.getString

(1));

shoeDetail.setShoeId(result.getInt

(2));

shoeDetail.setName(result.getString(3));

shoeDetail.setPrice(result.getFloat(4));

shoeDetail.setSale_amount(result.getInt(5));

session.setAttribute("shoedetail",shoeDetail);

}

resp.sendRedirect(req.getContextPath()+"/shoedetail.jsp");

}

if(keyword!

=null){

result=db.executeQuery(sql);

while(result.next()){

if(result.getString(3).contains(keyword)){

Shoeshoe=newShoe();

shoe.setType(result.getString

(1));

shoe.setShoeId(result.getInt

(2));

shoe.setName(result.getString(3));

shoe.setPrice(result.getFloat(4));

shoelist.add(shoe);

}

}

session.setAttribute("shoelist",shoelist);

resp.sendRedirect(req.getContextPath()+"/catalog.jsp");

}

}catch(Exceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

3.3用户注册/登录模块实现

3.3.1模块功能实现和关键代码说明

先由JSP页面发出请求调用mypack包下UserRegistServlet/UserLoginServlet,调用里面的doGet方法,然后调用db.executeQuery(sql1,username,password)方法,更新数据库。

 主要代码如下:

登录(UserLoginServlet):

HttpSessionsession=req.getSession();

try{

db=newBookDB();

result=db.executeQuery(sql1,username,password);

if(result.next()){

user=newUser();

user.setUsername(result.getString

(1));

user.setPassword(result.getString

(2));

user.setMail(result.getString(3));

user.setTel(result.getString(4));

session.setAttribute("user",user);

resp.sendRedirect(req.getContextPath()+"/index.jsp");

}else{

resp.sendRedirect(req.getContextPath()+"/login.jsp?

statu=no");

}

注册(UserRegistServlet):

Stringusername=req.getParameter("username");

Stringpassword=req.getParameter("password");

Stringmail=req.getParameter("mail");

Stringtel=req.getParameter("tel");

Stringsql1="select*fromuserwhereusername=?

";

Stringsql2="insertintouservalues(?

?

?

?

)";

BookDBdb;

CachedRowSetresult=null;

try{

db=newBookDB();

result=db.executeQuery(sql1,username);

if(result.next()){

resp.sendRedirect(req.getContextPath()+"/regist.jsp?

statu=no");

}else{

db.executeUpdata(sql2,username,password,mail,tel);

resp.sendRedirect(req.getContextPath()+"/regist.jsp?

statu=ok");

}

3.4购物车模块实现

3.4.1模块功能实现和关键代码说明

图3.1购物车模块流程图

 

 

  先由JSP页面发出请求调用org.action包下的findId方法,findId调用DaoImpl包里的findOrderById,把得到的结果,保存到session里取名order1通过orderdetail里取变量得到这个值,显示到主页面。

主要代码如下:

Add()方法:

publicsynchronizedvoidadd(StringshoeId,Shoeshoe){

if(items.containsKey(shoeId)){

ShoppingCartItemscitem=(ShoppingCartItem)items.get(shoeId);

scitem.incrementQuantity();

}else{

ShoppingCartItemnewItem=newShoppingCartItem(shoe);

items.put(shoeId,newItem);

}

numberOfItems++;

}

 

Remove()方法:

publicsynchronizedvoidremove(StringshoeId){

if(items.containsKey(shoeId)){

ShoppingCartItemscitem=(ShoppingCartItem)items.get(shoeId);

scitem.decrementQuantity();

if(scitem.getQuantity()<=0)

items.remove(shoeId);

numberOfItems--;

}

}

Gettotal()方法:

publicsynchronizeddoublegetTotal(){

doubleamount=0.0;

for(Iteratori=getItems().iterator();i.hasNext();){

ShoppingCartItemitem=(ShoppingCartItem)i.next();

Shoeshoe=(Shoe)item.getItem();

amount+=item.getQuantity()*shoe.getPrice();

}

returnroundOff(amount);

}

privatedoubleroundOff(doublex){

longval=Math.round(x*100);//cents

returnval/100.0;

}

publicsynchronizedvoidclear(){

items.clear();

numberOfItems=0;

}

}

3.5结算功能模块

从showcart.jsp转到cashier.jsp,调用HandleOrderServlet的db.buyBooks(cart)方法和db.executeUpdata()方法更新数据库。

主要代码如下:

Stringsql="insertintoorderinfovalues(?

?

?

?

?

)";

BookDBdb;

try{

db=newBookDB();

db.buyBooks(cart);

db.executeUpdata(sql,orderId,username,cardname,cardnum,payment);

resp.sendRedirect(req.getContextPath()+"/cashier.jsp?

makeorder=ok");

}catch(Exceptione){

.printStackTrace();

}

 

第四章总结

【技术总结】

1.一个Servlet往往对应了不同的操作,一个对象的增删改查,都放在了一个Servlet里面实现,这样设计可有效减少Servlet数量;

2.对于网页页面效果要求较高的时候,多采用JSP来编写,对于后台处理要求较高时,多采用Servlet。

3.尽量使用和数据库版本一致的驱动,否则jdbc连接可能不正常;

4.在编写样式表之前一定要注意CSS文档的编码类型一定要和HTML文档的字符集类型一致。

【心得体会】

通过这次课程设计,使我加深了对javaweb应用结构的理解,掌握了javaweb应用设计的流程及各个模块间协同关系,学会了使用css美化个人设计。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2