일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- spring 프로젝트
- 정규표현식
- 회원가입 기능
- 스프링 게시판
- 스프링 쇼핑몰 프로젝트
- ResponseEntity
- 스프링 프로젝트
- 스프링 포트폴리오
- BCrypt 적용
- 스프링 파일 삭제
- Bcrypt
- 스프링 프로젝트 기본 설정
- 스프링 게시판 구현
- 스프링 쇼핑몰
- 로그인 기능
- 파일 업로드
- spring 쇼핑몰
- 삭제 구현
- 스프링 업로드
- 로그아웃 기능 구현
- 스프링 HikariCP
- 쇼핑몰 프로젝트
- 스프링 메일 전송
- arraylist
- oracle 설치방법
- 스프링 프로젝트 설정
- 쇼핑몰 포트폴리오
- 스프링 이미지
- 인증번호 전송
- 이미지 출력
- Today
- Total
Kim VamPa
[Spring][쇼핑몰 프로젝트][36] 장바구니 기능(인터셉터 적용) - 3 본문
프로젝트 Github : https://github.com/sjinjin7/Blog_Project
프로젝트 포스팅 색인(index) : https://kimvampa.tistory.com/188
목표
장바구니 추가 기능 구현
장바구니는 로그인한 사용자만 사용할 수 있도록 하기 위해서 관리자 페이지와 같이 '인터셉터 적용'을 해주는 것을 목표로 합니다.
※ Interceptor에 대해선 아래의 포스팅에 따로 정리했습니다.
[spring] Spring Interceptor 란?(HandlerInterceptor, HandlerInterceptorAdapter)
순서
1. servlet-context.xml
2. CartInterceptor.java
1. servlet-context.xml
장바구니 url("cart/**")에 대해서만 적용을 하도록 별도의 Interceptor 클래스를 등록해줄 것입니다. 클래스를 생성해서 작성하기 전에 우리가 생성하고 작업할 Interceptor 클래스가 스프링에서 관리하도록 servlet-context.xml에 설정을 추가해줄 것입니다.
이전에 작성해둔 Interceptor 설정 코드에 아래의 코드를 추가해줍니다. 설정 내용은 com.vam.interceptor 패키지의 CartInterceptor를 등록하고 해당 Interceptor는 "/cart" url을 타는 모든 요청이 CartInterceptor를 거친다는 의미입니다.
<interceptor>
<mapping path="/cart/**"/>
<beans:bean id="CartIntreceptor" class="com.vam.interceptor.CartInterceptor"></beans:bean>
</interceptor>
2. CartInterceptor.class
com.vam.interceptor 패키지에 CartInterceptor.java 클래스를 생성해줍니다.
HandlerInterceptor을 상속해줍니다.
implements HandlerInterceptor
우리는 preHandler 메서드만 사용할 것이기 때문에 preHandler만 오버라이딩 해줍니다.
이 메서드를 작성하고자 하는 이유는 "/cart/**" url을 이용하는 사용자가 요청을 하였을 때 Controller로 요청이 가기 전 요청자가 로그인을 하였는지 확인 한하는 것입니다. 로그인을 하였다면 정상적으로 요청이 Controller로 갈 것이고, 하지 않았다면 메인 페이지로 리다이렉트 할 것입니다.
로그인 시 sesseion "member"라는 키로 로그인 사용자 정보 데이터를 저장해두었습니다. 따라서 session의 "member"를 불러들여서 데이터 있는지 없는지를 통해 로그인 여부를 판단할 것입니다.
앞서 말한 로직을 가지도록 아래의 코드를 추가해주었습니다.
HttpSession session = request.getSession();
MemberVO mvo = (MemberVO)session.getAttribute("member");
if(mvo == null) {
response.sendRedirect("/main");
return false;
} else {
return true;
}
REFERENCE
DATE
- 2020.11.17
'스프링 프레임워크 > 쇼핑몰 프로젝트' 카테고리의 다른 글
[Spring][쇼핑몰 프로젝트][36] 장바구니 기능(장바구니 추가(뷰 구현)) - 5 (6) | 2021.11.19 |
---|---|
[Spring][쇼핑몰 프로젝트][36] 장바구니 기능(장바구니 추가(서버 구현)) - 4 (8) | 2021.11.18 |
[Spring][쇼핑몰 프로젝트][36] 장바구니 기능(Mapper메서드) - 2 (5) | 2021.11.16 |
[Spring][쇼핑몰 프로젝트][36] 장바구니 기능(테이블 추가) - 1 (0) | 2021.11.15 |
[Spring][쇼핑몰 프로젝트][35] 상품 상세 페이지 - 2 (4) | 2021.11.10 |