cgb2008-京淘day19
1. 京淘購物車業務實現
1.1 實現購物車刪除操作
1.1.1 業務分析
需求: 當使用者點選頁面刪除按鈕時,應該刪除後端資料庫記錄,同時應該重定向到購物車列表頁面.
1.1.2 編輯CartController
/**
* 完成購物車刪除操作
* 1.url地址: http://www.jt.com/cart/delete/562379.html
* 2.請求引數: 562379 itemId /userId
* 3.返回值結果: 重定向到系統首頁
*/
@RequestMapping("/delete/{itemId}")
public String deleteCarts(Cart cart){
long userId = 7L;
cart.setUserId(userId);
cartService.deleteCarts(cart);
return "redirect:/cart/show.html";
}
1.1.3 編輯CartService
@Override
public void deleteCarts(Cart cart) {
cartMapper.delete(new QueryWrapper<>(cart));
}
1.2 購物車許可權控制
1.2.1 需求說明
當使用者在沒有登入的條件下不允許訪問敏感業務. 購物車操作/訂單操作等. 如何實現???
答:使用攔截器的機制
1.2.2 編輯配置類
1.2.3 編輯攔截器
package com.jt.interceptor;
import com.jt.util.CookieUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.HandlerInterceptor;
import redis.clients.jedis.JedisCluster;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component //將攔截器交給spring容器管理
public class UserInterceptor implements HandlerInterceptor {
private static final String JT_TICKET="JT_TICKET";
@Autowired
private JedisCluster jedisCluster;
/**
* 返回值說明:
* 1.false 表示攔截 一般都要配合重定向的方式使用.
* 2.true 表示放行
*
* 如何實現業務:
* 判斷使用者是否登入: Cookie資料 檢查redis中的資料.
* 重定向到系統登入頁面.
*
* @param request
* @param response
* @param handler
* @return
* @throws Exception
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//1.校驗Cookie中是否有結果
Cookie cookie = CookieUtil.getCookie(request, JT_TICKET);
//2.校驗Cookie是否有效
if(cookie != null){
String ticket = cookie.getValue();
if(StringUtils.hasLength(ticket)){
//執行後續任務 校驗redis中是否有結果
if(jedisCluster.exists(ticket)){
//表示使用者登入過 直接返回true
return true;
}
}
//沒有結果,則cookie資料有誤,應該刪除
CookieUtil.addCookie(response, JT_TICKET, "", "/", "jt.com", 0);
}
//3.如果資料為空,則重定向到系統首頁
response.sendRedirect("/user/login.html");
return false; //表示攔截....
}
}
相關文章
- day19
- 2006-京淘Day08
- cgb2007-京淘day11
- 京淘專案筆記04 -- 2020.11.02筆記
- 2006-京淘Day19-1
- 2006-京淘Day20-1
- Javascript抓取京東、淘寶商品資料JavaScript
- 放大鏡:onmousemove版 京東、淘寶版
- 京淘專案總結day02
- 仿淘寶,京東多級地址選擇器
- 京東按圖搜尋京東商品(拍立淘) API 返回值說明API
- Python爬蟲爬取淘寶,京東商品資訊Python爬蟲
- python 識別拼多多,天貓,淘寶,京東域名Python
- Day19 本週心得體會
- 2021天貓,淘寶,京東雙十一什麼時候開始 天貓,淘寶,京東雙11活動時間表彙總
- 文字驗證碼被曝漏洞,淘寶、京東都中招!
- 個推大資料:淘寶聚划算&京東京喜App市場資料洞察 (附下載)大資料APP
- 【Python秒殺指令碼】淘寶或京東等秒殺搶購Python指令碼
- 『福利推薦』京東天貓拼多多淘寶優惠券返利
- 非典逼出了淘寶和京東,新冠病毒能夠逼出什麼?
- 個推大資料:爭奪“最後的流量市場”,淘寶聚划算&京東京喜加速圈地低線城市大資料
- 我做過淘寶、京東和微商,為何要再做一個小程式商城?
- 撩課-Web大前端每天5道面試題-Day19Web前端面試題
- 淘寶京東拼多多自動查券找券返利機器人實現方法分享機器人
- 淘寶API,按圖搜尋淘寶商品(拍立淘)API
- 傳智黑馬java基礎學習——day19(集合list、Set)Java
- 記錄--淘寶、京東複製好友連結彈出商品詳情是如何實現的
- 淘寶、京東、百度他們的網站首頁秒開是如何做到的呢?網站
- 仿京東、淘寶首頁,通過兩層巢狀的RecyclerView實現tab的吸頂效果巢狀View
- “淘寶京東”構建流式計算賣家日誌系統架構的應用實踐架構
- 2018淘寶全球購海淘白皮書
- 淘寶API:淘寶/天貓獲得淘寶商品快遞費用API
- 重磅!京東調整買貴雙倍賠新規:新增抖音 擴大淘寶比價範圍
- 淘寶API分享:獲取淘寶商品評論API
- 淘寶/天貓按圖搜尋淘寶商品(拍立淘) API 返回值說明API
- 淘寶拼多多京東上貨必備API 商品詳情頁資料抓取 APP商品詳情原資料APIAPP
- 淘寶API分享:獲取淘寶商品SKU資訊API
- 淘寶API,按關鍵字搜尋淘寶商品API