반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 객체리터럴
- 인터넷프로토콜
- 자바스크립트객체리터럴
- sort
- NPM
- 코딩
- 틱택토구현
- 자바스크립트함수
- 인프런무료강좌
- 자바스크립트파라미터
- 인프런자바스크립트
- EntityFramework
- 비주얼스튜디오
- 자바스크립트recude
- 객체의비교
- Blazor
- 자바스크립트틱택토
- 콜백함수
- 고차함수
- 인프런인강
- 인프런
- .NET
- 제로초
- slice
- 인프런강의
- HTTP
- 자바스크립트
- c#
- 이벤트리스너
- 인프런강좌
Archives
- Today
- Total
샐님은 개발중
20. 세션/쿠키 본문
728x90
반응형
1. 세션 과 쿠키
- 웹서비스는 HTTP 프로토콜을 기반이므로 HTTP 프로토콜은 클라이언트와 서버의 관계를 유지하지 않는다.
서버의 부하를 줄이는 장점이 있으나, 클라이언트의 요청 시 매번 서버와 새로운 연결이 생성되기 때문에 로그인, 상태 유지, 장바구니 등의 기능 구현이 어렵다.
이러한 conntectionless protocol의 불편함을 해결하기 위해 세션과 쿠키를 이용한다.
세션과 쿠키는 클라이언트와 서버의 연결 상태를 유지해주므로 세션은 서버에서 연결 정보를 관리하는 반면 쿠키는 클라이언트에서 연결 정보를 관리하는 데 차이가 있다.
2. HttpServletRequest 를 이용한 세션 사용
세션 객체 사용법
//1) HttpServletRequest 사용
@RequestMapping(value = "/memLogin", method = RequestMethod.POST)
public String memLogin(Member member, HttpServletRequest request) {
Member mem = service.memberSearch(member);
HttpSession session = request.getSession(); //세션을 생성함
session.setAttribute("loginInfo", mem);
return "memLoginOk";
}
//2) HttpSession 사용
@RequestMapping(value = "/memLogin", method = RequestMethod.POST)
public String memLogin2(Member member, HttpSession session) {
session.setAttribute("loginInfo", member);
//service.memberSearch(member);
return "memLoginOk";
}
// 세션 객체 값 가져오기
@RequestMapping(value = "/memModifyForm", method = RequestMethod.POST)
public ModelAndView memModifyForm(HttpServletRequest request) {
HttpSession session = request.getSession();
Member member = (Member)session.getAttribute("memInfo");
ModelAndView mav = new ModelAndView();
mav.addObject("memInfo", service.memberSearch(member));
mav.setViewName("/member/modifyFrom");
return mav;
}
// 로그아웃 세션 만료
public String Logout(Member member, HttpServletRequest request) {
HttpSession sesstion = request.getSession();
sesstion.invalidate();
return "/";
}
3. 쿠키(Cookie)
- 쿠키를 생성할 때 생성자 첫번째에 쿠키이름, 두번째에는 쿠키값을 넣어준다.
@RequestMapping("/main")
public String mallMain(Mall mall, HttpServletResponse response){
Cookie genderCookie = new Cookie("gender", mall.getGender());
if(mall.isCookieDel()) {
genderCookie.setMaxAge(0);
mall.setGender(null);
} else {
genderCookie.setMaxAge(60*60*24*30);
}
response.addCookie(genderCookie);
return "/mall/main";
}
//쿠키 사용
@RequestMapping("/index")
public String mallIndex(Mall mall,
@CookieValue(value="gender", required=false) Cookie genderCookie,
HttpServletRequest request) {
if(genderCookie != null)
mall.setGender(genderCookie.getValue());
return "/mall/index";
}
728x90
반응형
'Spring Framework > 인프런강의-자바 스프링 프레임워크' 카테고리의 다른 글
21. 리다이렉트/인터셉트 (0) | 2023.05.29 |
---|---|
19 Controller 객체 구현 -2 (0) | 2023.05.29 |
18. Controller 객체 구현 -1 (0) | 2023.05.29 |
11. 웹 프로그래밍 설계 모델 (0) | 2023.05.22 |
10. 어노테이션을 이용한 스프링 설정 - 2 (0) | 2023.05.22 |