北京工业大学 网络编程基础课设 报告(2)
6、动态模型:
7、EJB接口设计:
7.1、BookinfoFacade管理图书信息(封装数据库)
7.1.1、search(String key)
描述:根据关键字从数据库中查找图书信息记录(数组); 条件:书名、作者或出版社中包含关键字; 具体实现: @Override
public ArrayList<Bookinfo> search(String key) { List<Bookinfo> all = this.findAll(); if(all.isEmpty()) { return null; }
北京工业大学(北工大) 计算机学院 计算机科学与技术 实验/课程设计 报告/心得/总结/预习报告
ArrayList<Bookinfo> result=new ArrayList<Bookinfo>() ; for(Bookinfo current : all) {
if(current.getTitle().toLowerCase().contains(key)||current.getAuthor().toLowerCase().contains(key)||current.getPress().toLowerCase().contains(key)) { result.add(current); } }
return result; }
7.1.2、find(String isbn)
描述:根据书号(主键),找出图书信息记录; 具体实现:由系统自动生成。
7.2、CartBean管理购物车信息(本次会话有效)
7.2.1、add(String isbn) 添加记录
描述:向购物车添加一条记录 具体实现: @Override
public void add(String isbn, String title, double price, int number) { cartList.add(new CartBean(isbn, title, price, number)); }
7.2.2、gets() 获得购物车的全部记录
具体实现: @Override
public ArrayList<CartBean> gets() {
ArrayList<CartBean> result = new ArrayList<CartBean>(); for (CartBean current : cartList) {
result.add(new CartBean(current.getIsbn(), current.getTitle(), current.getPrice(), current.getNumber())); }
return result;
} 7.2.3、set(String isbn, int num) 设置购买数量 具体实现: @Override
public void set(String isbn, int number) { for (CartBean current : cartList) {
if (current.getIsbn().equals(isbn)) { current.setNumber(number);
北京工业大学(北工大) 计算机学院 计算机科学与技术 实验/课程设计 报告/心得/总结/预习报告
}
}
7.2.4、exists(String isbn) 查询购物车中是否已经存在此种商品 具体实现:
@Override
public boolean exists(String isbn) { for (CartBean current : cartList) {
if (current.getIsbn().equals(isbn)) { return true; } }
return false;
}
8、控制器(CtrlServlet)的输入信息: 8.1、来自查询页
page=”search”&key=关键字
8.2、来自图书目录页
page=”directory”&submit=”cart”&choose=书号拼接字符串 page=”directory”&submit=”search”
8.3、来自购物车页
page=”cart”&submit=”order” page=”cart”&submit=”continue” page=”cart”&submit=”search”
9、控制器算法概要:
9.1、模糊查询search
描述:按照key从Bookinfo查找图书,将查询结果命名为directory保存在session中,并重定向到Directory.jsp中。 具体实现:
//index->Directory,根据关键字构造查询结果
if (request.getParameter("page").equals("index")) { key = request.getParameter("key");
//将根据关键字查询到的结果存到session中 request.getSession().setAttribute("directory", bookinfoFacade.search(key.toLowerCase()));
response.sendRedirect("Directory.jsp");
北京工业大学(北工大) 计算机学院 计算机科学与技术 实验/课程设计 报告/心得/总结/预习报告
9.2、查看购物车
描述:根据选定的图书对应的checkbox的选定情况构造chooses书号拼接字符串,然后在CtrlServlet中根据空格分割,调用cartBean.exists(String isbn)方法检测购物车中是否已存在次图书。在购物车中不存在此商品的情况下根据isbn号调用bookinfoFacade.find(String isbn)找到对应的图书信息存入CartBean,并重定向到Cart.jsp中。 具体实现:
//Directory->Cart将所选的书籍添加到购物车中
else if (request.getParameter("page").equals("Directory")
&& request.getParameter("submit").equals("cart")) { String choose = request.getParameter("chooses"); String[] chooses = choose.split(" "); for (int i = 0; i < chooses.length; i++) { if (!cartBean.exists(chooses[i])) {
cartBean.add(chooses[i], bookinfoFacade.find(chooses[i]).getTitle(), bookinfoFacade.find(chooses[i]).getPrice(), 1); } }
request.getSession().setAttribute("cart", cartBean.gets()); response.sendRedirect("Cart.jsp"); }
9.3、结算
描述:根据用户输入的图书数量更新CartBean中对应的图书的数量信息,并将address信息以address为名存储到session中,重定向到Order.jsp页面。 具体实现:
//Cart->Order,购物车生成订单
else if (request.getParameter("page").equals("Cart")
&& request.getParameter("submit").equals("order")) { Enumeration names = request.getParameterNames(); while (names.hasMoreElements()) {
String name = (String) names.nextElement(); if (!name.equals("page") && !name.equals("submit") && !name.equals("address")) {
for (int i = 0; i < request.getParameter(name).length(); i++) {
if (!Character.isDigit(request.getParameter(name).charAt(i))) { response.sendRedirect("Cart.jsp");
//这里必须终止处理请求,否则会出错TODO:Why? return; } }
this.cartBean.set(name, Integer.valueOf(request.getParameter(name))); }
北京工业大学(北工大) 计算机学院 计算机科学与技术 实验/课程设计 报告/心得/总结/预习报告
}
request.getSession().setAttribute("cart", this.cartBean.gets()); request.getSession().setAttribute("address", request.getParameter("address"));
response.sendRedi …… 此处隐藏:3255字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




