书城项目-第九阶段

书城项目-使用AJAX请求验证用户名是否可用、书城项目-使用AJAX请求修改添加商品到购物车的实现

3.1、使用 AJAX 验证用户名是否可用

UserServlet 程序中 ajaxExistsUsername 方法:

    protected void ajaxExistsUsername(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 获取请求的参数username
        String username = req.getParameter("username");
        // 调用userService.existsUsername();
        boolean existsUsername = userService.existsUsername(username);
        // 把返回的结果封装成为map对象
        Map<String,Object> resultMap = new HashMap<>();
        resultMap.put("existsUsername",existsUsername);

        Gson gson = new Gson();
        String json = gson.toJson(resultMap);

        resp.getWriter().write(json);

    }

regist.jsp 页面中的代码:

$("#username").blur(function () {

				// 1. 获取用户名
				var username = this.value;

				$.getJSON("http://localhost:8080/JavaWeb_Code_Book/userServlet",
						"action=ajaxExistsUsername&username=" + username,
						function (data) {
							//console.log(data)
							if (data.existsUsername){
								$("span.errorMsg").text("用户名已存在!");
							} else {
								$("span.errorMsg").text("用户名可用!");
							}
						})

			})

3.2、使用 AJAX 修改把商品添加到购物车

CartServlet 程序:

/**
     * 加入购物车
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    protected void ajaxAddItem(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//        System.out.println("加入购物车");
//        System.out.println("商品编号:" + req.getParameter("id"));

        // 获取请求的参数 商品编号
        int id = WebUtils.parseInt(req.getParameter("id"),0);
        // 调用bookService.queryBookById(id):Book得到图书的信息
        Book book = bookService.queryBookById(id);
        // 把图书信息,转换成为CartItem商品项
        CartItem cartItem = new CartItem(book.getId(),book.getName(),1,book.getPrice(),book.getPrice());
        // 调用Cart.addItem(CartItem);添加商品项
        Cart cart = (Cart) req.getSession().getAttribute("cart");
        if (cart == null) {
            cart = new Cart();
            req.getSession().setAttribute("cart",cart);
        }
        cart.addItem(cartItem);

        System.out.println(cart);

        // 最后一个添加的商品名称
        req.getSession().setAttribute("lastName", cartItem.getName());

        // 6. 返回购物车总的商品数量和最后一个添加的商品名称
        Map<String, Object> resultMap = new HashMap<String,Object>();

        resultMap.put("totalCount",cart.getTotalCount());
        resultMap.put("lastName",cartItem.getName());

        Gson gson = new Gson();
        String resultMapJsonString = gson.toJson(resultMap);

        resp.getWriter().write(resultMapJsonString);

    }

pages/client/index.jsp 页面

html 代码:

			<div style="text-align: center">
				<c:if test="${empty sessionScope.cart.items}">
					<%-- 购物车为空的输出 --%>
					<span id="cartTotalCount"></span>
					<div>
						<span style="color: red" id="cartLastName">当前购物车为空</span>
					</div>
				</c:if>
				<c:if test="${not empty sessionScope.cart.items}">
					<%-- 购物车非空的输出 --%>
					<span id="cartTotalCount">您的购物车中有${sessionScope.cart.totalCount}件商品</span>
					<div>
						您刚刚将<span style="color: red" id="cartLastName">${sessionScope.lastName}</span>加入到了购物车中
					</div>
				</c:if>

			</div>

javaScript 代码:

<script type="text/javascript">
		$(function () {
			// 给加入购物车按钮绑定单击事件
			$("button.addToCart").click(function () {
				/**
				 * 在事件响应的function函数 中,有一个this对象,这个this对象,是当前正在响应事件的dom对象
				 * @type {*|jQuery}
				 */
				var bookId = $(this).attr("bookId");
				//location.href = "http://localhost:8080/JavaWeb_Code_Book/cartServlet?action=addItem&id=" + bookId;

				// 发ajax请求, 添加商品到购物车
				$.getJSON("http://localhost:8080/JavaWeb_Code_Book/cartServlet",
						"action=ajaxAddItem&id=" + bookId,
						function (data) {
							//console.log(data);
							$("#cartTotalCount").text("您的购物车中有" + data.totalCount + "件商品");
							$("#cartLastName").text(data.lastName);

						})
			})
		})
	</script>
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇