1. 课程设计博客链接

项目地址

2. 个人负责模块或任务说明

ps:一个人做的项目

  • 一个登录jsp文件,登录成功转入商品界面,

  • 一个商品jsp文件,显示所有商品信息,数据从MySql数据库导入,可以加入购物车,然后跳转到购物车界面,

  • 一个购物车jsp文件,显示添加到购物车的商品信息,可以返回商品界面继续购物,也可以删除某商品,可以清空购物车,购物车界面可以显示商品总价,支付跳转到支付确认界面确认总价,结束系统。

3. 项目主要功能流程图

4. 自己的代码提交记录截图

5. 项目运行截图

6. 项目主要代码:

ShowProducts.jsp中主要代码:

<%
Map<String, Goods> products = new HashMap<String, Goods>();
ArrayList<Goods> list = new Connect().getAllgoods();
int num = 1;
for (Goods e : list)
products.put(String.valueOf(num++), e);
session.setAttribute("products", products);
%>
<%
Set productIdSet = products.keySet();
Iterator it = productIdSet.iterator();
int number = 1;
while (it.hasNext()) {
String id = (String) it.next();
Goods product = (Goods) products.get(id);
%>

Buy.jsp主要代码:

<%
Cart c = (Cart) session.getAttribute("cart");
if (c == null) {
c = new Cart();
session.setAttribute("cart", c);
}
Map products = (HashMap) session.getAttribute("products");//接收商品Map
List<GoodsItem> items = c.getItems();//购物车的商品条目放入List if (action != null && action.trim().equals("add")) {
String id = request.getParameter("id");
Goods p = (Goods) products.get(id);
GoodsItem gi = new GoodsItem();
gi.setGoods(p);
gi.setCount(1);
c.add(gi);
} if (action != null && action.trim().equals("clear")) {
c.clear(); } if (action != null && action.trim().equals("delete")) {
String id = (String) request.getParameter("id");
c.deleteItemById(id);
}
%>

“加入购物车”链接到Buy.jsp文件并传送选中的product.getId()值放到参数id和action方法add:

<a href="Buy.jsp?id=<%=product.getId()%>&action=add">加入购物车</a>(执行add转到购物车页面)

“删除”链接到Buy.jsp文件(本页面)并传送选中的gi.getGoods().getId()值放到参数id和action方法delect:

< a href="Buy.jsp?action=delete&id=<%=gi.getGoods().getId()%>">删除</a>(执行delect刷新本页面)

链接到商品界面:

<a href="ShowProducts.jsp" target="cart">返回</a>

执行clear刷新本页面:

<a href="Buy.jsp?action=clear">清空</a>

链接到支付确认页面,并把总价传送,执行clear

<%
double total = 0;
if (c.getTotalPrice() != 0)
total = c.getTotalPrice();
session.setAttribute("total", total);
%>
<a href="CheckPay.jsp?total=<%=total%>&action=clear">支付</a>

7. 课程设计感想

这个项目功能还太少,页面不够美观,有很大的改进空间。

通过这次课程设计,我学到了不少有用的知识,还有思考方法,实验过程非常艰辛,没日没夜的打代码查资料,还好结果是好的,努力了总会有收获。

2017Java课程设计201521123007的更多相关文章

  1. 2017JAVA课程设计

    1.团队课程设计博客链接 http://www.cnblogs.com/ltykm/p/7063663.html 2.个人负责模块或任务说明 本人任务:定时器具体功能的实现 3.自己的代码提交记录截图 ...

  2. [课程设计]任务进度条&开发日志目录

    任务进度条&开发日志目录 周期 时间 任务 Sprint One   11.14     ●  Scrum团队分工及明确任务1.0    Sprint One   11.15   ●  Scr ...

  3. 课程设计 --- 黑白棋中的 AI

    原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...

  4. Java课程设计——扫雷(winmine)

    因为是我的课程设计,要是有冲突就不好了,转载注明出处!!! 程序很简单,毕竟我是搞acm的,我就只介绍一下闪光点. 中心空白搜索的时候,我用的DFS: 有一点是要注意的,就是JFrame不支持重画,还 ...

  5. [课程设计]Scrum 1.6 多鱼点餐系统开发进度

    [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...

  6. [课程设计]Scrum 1.7 多鱼点餐系统开发进度

    [课程设计]Scrum 1.7 多鱼点餐系统开发进度(点餐菜式内容添加及美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...

  7. [课程设计]Scrum 1.3 多鱼点餐系统开发进度

    [课程设计]Scrum 1.3 多鱼点餐系统开发进度   Scrum 1.3 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追 ...

  8. [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐

    [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐 一.开发背景 多鱼点餐系统是一套比较系统化的针对餐厅点餐服务的产品,从顾客进入餐厅点餐到用餐结束再到最后的结账买单,需要全面的.高效的 ...

  9. [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复)

    [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...

随机推荐

  1. C++ Socket学习记录 -1

    1.IP的转换 1)正转换 结构 sockaddr_in 在C++ 中表明一个IP地址结构,包含地址家,端口以及IP地址等信息 如: sockaddr_in addr; addr.sin_family ...

  2. Chrome打不开Pycharm运行的web应用

    这个现象困扰了我一段时间.比如在Pycharm里面运行一个Flask程序,如图所示 在Chrome中一直打不开,换了Firefox,依然如此,但是用mac自带的safari可以打开. 起初我以为是ip ...

  3. Android 主题theme说明 摘记

    主题Theme就是用来设置界面UI风格,可以设置整个应用或者某个活动Activity的界面风格.在Android SDK中内置了下面的Theme,可以按标题栏Title Bar和状态栏Status B ...

  4. 7.31.2 this关键字

    this用在所有方法中:    用来区分局部变量和成员变量的名字二义性! 如:在set方法中这样写:name = name; 则java会遵循"谁近谁优先"的规则,会给局部变量赋值 ...

  5. SpringBoot切面控制业务逻辑

    业务逻辑:写一个公共拦截类,过滤传进Controller的参数 为了调用接口安全起见,每个需要调用的接口有一个参数accessToken,用于安全验证 注:先进入过滤器Filter,再进入aop,最后 ...

  6. Java获取Object属性值

    做了一个拦截参数的需求,需要获取普通参数和对象参数 参数是Object类型,Object[] paramValues = pjp.getArgs(); 1.获取普通参数 ;i<paramValu ...

  7. 把elipse非maven的Struts2+Spring+Ibatis项目导入Idea中

    1.按图示操作 2.选中自己要得到的项目 3.之后设定得到的项目放在哪里 项目得到之后,对项目点击右键Open Module Settings,点击Project,设置生成的编译文件存储路径 4.单击 ...

  8. JSP的四个作用域

    JSP的作用域一般是对于变量而言的,描述的是变量在某处是否有效(可用) JSP的四个作用域       名称          作用域       page 当前页面有效 request 当前请求中有 ...

  9. SVG渐变

    前面的话 给SVG元素应用填充和描边,除了使用纯色外,还可以使用渐变.本文将详细介绍SVG渐变 线性渐变 有两种类型的渐变:线性渐变和径向渐变.必须给渐变内容指定一个id属性,否则文档内的其他元素不能 ...

  10. JS中的DOM操作和事件

    [DOM树节点] DOM节点分为三大类: 元素节点. 属性节点. 文本节点: 文本节点.属性节点属于元素节点的子节点.操作时,均需要先取到元素节点,再操作子节点:可以使用getElement系列方法, ...