项目个人思考
来自尚硅谷javaWeb视频学习
主要是用的是jsp(类似html)+jquery+servlet+tomcat等配置的书城项目,我修改成了图书馆借书系统。


首先可以查看input 应该是再完成了修改之后出发,jsp(类似html),中有绑定jquery(js)事件
下列代码有删减,且大小写与尚硅谷原视频不同
注意看class为updateCount的input 在change事件触发了
location.href ="http://localhost:8080/BookLib/CartServlet?action=updateCount&count="+count+"&id="+id;
的修改,于是通过CartServlet的事件触发了图书的更改
<head>
<meta charset="UTF-8">
<title>预借书籍</title>
<script type="text/javascript">
$(function () {
// 给输入框绑定 onchange 内容发生改变事件
$(".updateCount").change(function () {
// 获取商品名称
var name = $(this).parent().parent().find("td:first").text();
var id = $(this).attr('bookId');
// 获取商品数量
var count = this.value;
if ( confirm("你确定要将【你确定要将【" + name + "】商品修改数量为:" + count + " 吗?") ) {
//发起请求。给服务器保存修改
location.href =
"http://localhost:8080/BookLib/CartServlet?action=updateCount&count="+count+"&id="+id;
} else {
// defaultValue 属性是表单项 Dom 对象的属性。它表示默认的 value 属性值。
this.value = this.defaultValue;
}
});
});
</script>
</head>
<body>
<div id="main">
<table>
<tr>
<td>书籍名称</td>
<td>数量</td>
<td>单价</td>
<td>金额</td>
<td>操作</td>
</tr>
<c:if test="${empty sessionScope.cart.items}">
<%--如果购物车空的情况--%>
<tr>
<td colspan="5"><a href="index.jsp">亲,当前购物车为空!快跟小伙伴们去浏览商品吧!!!</a>
</td>
</tr>
</c:if>
<c:if test="${not empty sessionScope.cart.items}">
<%--如果购物车非空的情况--%>
<c:forEach items="${sessionScope.cart.items}" var="entry">
<tr>
<td>${entry.value.name}</td>
<td>
<input class="updateCount" style="width: 80px;"
bookId="${entry.value.id}"
type="text" value="${entry.value.count}">
</td>
<td>${entry.value.price}</td>
<td>${entry.value.totalPrice}</td>
<td><a class="deleteItem" href="CartServlet?action=deleteItem&id=${entry.value.id}">删除</a></td>
</tr>
</c:forEach>
</c:if>
</table>
</body>
同时,update事件之后,有一个重定向 resp.sendRedirect(req.getHeader(“Referer”));重定向会导致页面刷新,重新解析编译等处理jsp,导致更新的数据库数据重新显示在界面上。(我是这么理解的,)
protected void updateCount(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
IOException{
// 获取请求的参数 商品编号 、商品数量
int id = WebUtils.parseInt(req.getParameter("id"),0);
int count = WebUtils.parseInt(req.getParameter("count"), 1);
// 获取 Cart 购物车对象
Cart cart = (Cart) req.getSession().getAttribute("cart");
if (cart != null) {
// 修改商品数量
cart.updateCount(id,count);
// 重定向回原来购物车展示页面
resp.sendRedirect(req.getHeader("Referer"));
}
}

本文分享了如何将JavaWeb的书城项目改造为图书馆借书系统,涉及JSP页面中jQuery事件绑定,以及Servlet处理更新图书数量的逻辑,包括重定向和数据库操作的细节。

被折叠的 条评论
为什么被折叠?



