JAVAWEB课程设计报告Word格式.docx
- 文档编号:470905
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:13
- 大小:121.80KB
JAVAWEB课程设计报告Word格式.docx
《JAVAWEB课程设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《JAVAWEB课程设计报告Word格式.docx(13页珍藏版)》请在冰点文库上搜索。
增加、修改、删除操作
用户信息的管理:
对用户的信息的查看、修改、删除等操作
订单管理:
查看当前订单的状态、删除订单等操作
开发平台
集成开发环境:
Myeclipse7.5
简单而言,Myeclipse是Eclipse的一个插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错,而且6.0版本以后都不需要安装
Eclipse了,7.5以后连服务器都不需配置安装了,它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernateo
Web应用服务器:
Tomcat6.0
Tomcat6.0是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。
实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
数据库服务器:
SqlServer2005
SQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
此外SQLServer2005结合了分析、报表、集成和通知功能。
系统设计与实现
系统整体设计
浏览者主要是对信息的显示、收集的工作,其中没有逻辑处理代码。
分为两类:
用户和管理员,用户是指前端用户可见部分,注册用户和游客均可浏览,管理员部分仅是管理员账号可操作部分。
此部分为jsp页面,页面大体设计如下:
(图)
这是页面的总体框架设计情况,共划分了四个主区域:
header,导航栏,main,bottom
Header包含页面头的部信息,各页面基本相同:
headerl,header2;
其中导航栏部分又包含八部分;
Main包含部分比较多,因为导航栏的改变而改变;
bottom包含页脚部分:
bottom,bottom1,bottom2。
这样划分页面可以做到页面的复用性,提高了页面的灵活性。
每个页面只需编写不同的小部分便可,减少了代码的重复、冗余。
控制器中的Form其实也是一种bean类,为Action服务,其中包含了相对应的Action中配置的页面的可收集内容,负责由ActionServlet将该页面请求中内容剥离放入Action配置的对应的Form中,然后作为参数传递给Action,所以Form中并没有实际的处理方法,只有一些对应页面的属性,和对应属性的getter/setter方法,如果有必要验证页面传来的参数是否合法可以重写validate()方法来实现对页面中属性的验证,验证不通过责由核心控制器返回到请求页面至客户端,由于本项目由Validator框架来实现的验证所以没有实现validate方法。
只有对应
的getter/setter方法。
Action部分:
此部分为中间组件,只是起到了调用逻辑的功能,接受到
ActionServlet传来的参数后调用相应的Bean完成相应的逻辑。
具体分类表如下:
Action
逻辑方法
usershopping
接受到提交订单页面传来的请求,处理相应的逻辑,将客户的订单按提交得到的数据保存到库中并与对应的用户名关中。
LoginCheckServle
接受到客户登陆请求,并取出密码用户名,到库中校验,返回相应的操作(已注册予以登陆并取出相应的订单放入用户对象中、已注册但被冻结不予以登陆资格、未注册密码错误)
LogoutServlet
销毁当前客户对应的Session,返回到主面
PieceSearchServlet
该Action接受搜索引擎传递过来的请求,然后调用逻辑bean,将参数作为关键字在库中查找相对应的符合结果,将所有的结果返回到页面上进行显示。
CustomerDaoJDBCImpl
通过与数据库连接,查询用户信息
GoodsCatalogDaoJDBCImpl
通过与数据库连接,查询获取商品分类信息
GoodsDaoJDBClmpl
searchCatalog
该Action接受请求后,调用逻辑bean查询该图书分类的所有有关书籍信息,返回到页面上
GoodsCatalog
获取商品详细信息
ShoppingCartltem
Buy:
接受客户传来的请求,该请求中包含客户要放入购物车的书籍的id,然后搜索购物车中是否有该书籍,有则将书籍的数目+1,没有则实例一个item,数量为1,放入车中。
Modify:
提供了修改书籍数量的操作,按对应的item的id重新对车中的书籍数量遍历修改
ShoppingCart
Clear:
将购物车清空,并将session中信息清空
Delete:
接受用户要删除的书籍id,然后从车中将书籍删除
各功能的实现
搜索:
通过的书名对库中的书籍进行查找,显示到客户端
以下为搜索对应的Action代码:
publicclassPieceSearchServletextendsHttpServlet(
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,lOException(
doPost(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,lOException(
request.setCharacterEncoding("
utf-8"
);
response.setContentType(ntext/html;
charset=utf-8"
Stringname=request.getParameter("
goods"
GoodsDaodao=newGoodsDaoJDBCImpl();
List<
Goods>
goods=dao.findGoodsByName(name);
request.setAttributeC'
results"
goods);
RequestDispatcher dispatcher =
request.getRequestDispatcher("
piecesearch.jspn);
dispatcher.forward(request,response);
)
本Action主要是从页面请求中取出书籍的检索关键字,然后交给后台dao.findGoodsByName(name)方法来查找,该方法返回一个linkedlist类型,其中包含了根据关键字检索到数目所有结果.然后返回到提交请求的页面.
截图:
对用户的登陆、注册操作
用户的登陆部分:
(代码)
LoginCheckServlet的方法:
packagecn.sdcet.onepiece.web;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.RequestDispatcher;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importcn.sdcet.onepiece.dao.CustomerDao;
importcn.sdcet.onepiece.dao.jdbc.CustomerDaoJDBCImpl;
importcn.sdcet.onepiece.domain.Customer;
publicclassLoginCheckServletextendsHttpServlet(
/**
* Constructoroftheobject.
*/
publicLoginCheckServlet()(
super();
* Destructionoftheservlet.<
br>
publicvoiddestroy()(
super.destroy();
//Justputs"
destroy"
stringinlog
//Putyourcodehere
* ThedoGetmethodoftheservlet.<
*
* Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget.
* @paramrequesttherequestsendbytheclienttotheserver
* @paramresponsetheresponsesendbytheservertotheclient
* @throwsServletExceptionifanerroroccurred
* @throwslOExceptionifanerroroccurred
* ThedoPostmethodoftheservlet.<
* Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost.
*@throwslOExceptionifanerroroccurred
usernamen);
Stringpasswd=request.getParameter("
password"
CustomerDaodao=newCustomerDaoJDBCImpl();
if(dao.hasMatchUser(name,passwd))(
HttpSessionsession=request.getSession();
Customercustomer=dao.findCustomerByName(name);
session.setAttribute("
user"
customer);
RequestDispatcher dispatcher
request.getRequestDispatcher("
index,jsp"
}else(
request.setAttribute("
message”,”用户名或密码不正确,
request.getRequestDispatcher('
login.jspn);
jsp页面:
<
body>
%
Stringmessage=(String)request.getAttribute("
messagen);
usemamen);
if(name==null)(
name=nn;
%>
formaction=”logincheck”method=”post”>
tablewidth="
30%nborder="
0"
align="
center"
bgcolor="
#000000"
>
tr>
tdcolspan="
2"
>
fontcolor=#ffffff>
用户登录<
/font>
/td>
/tr>
tdwidth="
24%"
用户名:
tdwidth="
76%"
input type="
text"
name="
username"
value="
%=name%>
"
/>
td>
密码:
inputtype="
name="
/>
label>
submit"
button"
id="
value="
提交"
/label>
/table>
/form>
if(message!
=null){
divalign="
center"
%=message%>
/div>
/body>
在这里是将客户登陆时传递过来的用户名、密码取出来调用Dbbean的方法来查找是否存在该用户,查找的时候先从管理员表里查找,然后再查找客户表,最后返回一个包含客户信息的Customer类事例,两表都不存在信息则返回一个简单的错误页面用户登录界面:
登录成功会跳转到首页
密码或用户名错误时会提示相应的提示信息:
用户名或密码不正确
登陆前截图:
登陆后截图:
登陆后可将书籍加入到购物车
加入购物车的Action对应的方法:
publicclassShoppingCartltem(
privateGoodsgoods;
privateintquantity;
〃购买数量
publicShoppingCartItem(Goodsgoods)(this,goods=goods;
this.quantity=1;
publicShoppingCartItem(Goodsgoods,intquantity)(this.goods=goods;
this.quantity=quantity;
*添加一个商品
publicvoidincrementQuantity()(this.quantity++;
*减少一个商品
publicvoiddecrementQuantiry()(
if(this.quantity>
0)(
this.quantity—;
publicGoodsgetGoods()(returngoods;
publicvoidsetGoods(Goodsbook)(this.goods=book;
publicintgetQuantity()(
returnquantity;
publicvoidsetQuantity(intquantity)(this.quantity=quantity;
} 该方法主要是接受页面传来的参数,封装成一个Item,然后从session中取
出购物车(没有则实例一个),然后查看该车中是否包含该Item,有则Item的quantity的数量+1;
没有则将Item放入购物车中,最后后将购物车放回session中。
返回到请求页面。
此处为了防止刷新重复提交请求用到了Struts的Token机制(详细见代码)。
截图(登陆后单击加入购物车连接,最后跳转到购物车页面):
查看购物车中现有书籍、对购物车中的书籍数量进行修改、清空购物车
查看:
此处代码省略,此处是从页面中循环遍历购物车,然后将Item还原为book
在页面上打印出来即可。
修改:
修改对应的Action方法:
publicclassShoppingCart(
privateHashMap<
Integer,ShoppingCartItem>
carts=newHashMap<
Integer,
ShoppingCartItem>
();
*向购物车中增加一本书
* @parambook需要添加的图书
publicvoidadd(Goodsgoods)(
intid=goods.getGood_id();
if(carts.containsKey(id))(
〃购物车中存在该条目,取出条目然后数量加1
ShoppingCartltemitem=carts.get(id);
item.incrementQuantity();
〃购物车中不存在该条目,创建…个新的条目
ShoppingCartltemitem=newShoppingCartltem(goods);
carts.put(id,item);
*获取购物车的所有条目
* @return购物车条目列表
publicList<
getltems()(
items = new
ArrayList<
(carts.values());
returnitems;
*从购物车中删除一个条目
* @parambookid要删除图书的ID
publicvoiddeleteltem(intgoodsld)(
if(carts.containsKey(goodsld))(
carts.remove(goodsld);
)-
*修改图书的购买数量
* @parambookid要修改的图书Id
* @paramnumber新的购买数量
publicvoidsetQuantity(intgoodsld,intnumber)(
if(carts.containsKey(goodsld))(ShoppingCartltemitem=carts.get(goodsld);
item.setQuantity(number);
*清空购物车
publicvoidclear()(
carts.clear();
*获取购物车中商品总价
*@return购物车中商品总价格
publicfloatgetPayment()(
floattotal=0;
for(ShoppingCartItemitem:
items)(total+=item.getGoods().getPrice()*item.getQuantityO;
} j j j
returntotal;
}此处修改数量时提交请求是提交的车中所有的Item的数目(数组的形式),在该方法中取出数组,便利购物车中所有Item,将Item的数量修改,返回到客户端。
运行截图(以上为例,修
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVAWEB 课程设计 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)