티스토리 뷰
src/product
BasketServlet.java
SaveServlet.java
package product;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet(name = "SAVE", urlPatterns = { "/save" })
public class SaveServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String p=request.getParameter("item");
HttpSession session=request.getSession(); //세션 객체 획득
ArrayList<String> list=(ArrayList<String>)session.getAttribute("");
if(list==null) {
list = new ArrayList<String>();
list.add(p);
session.setAttribute("", list);
}else {
list.add(p);
}
//-----------------------------------------------------
response.getWriter().append("<html><head></head><body>");
response.getWriter().append("Product Added<br>");
response.getWriter().append("<a href='edu/basket'>My Cart</a>");
response.getWriter().append("</body></html>");
}
}
web/product
product.html
※ 쿠키와 세션
HTTP는 상태 유지를 못하는 프로토콜
: 웹 브라우저(클라이언트)와 웹서버(서버)는 한번 데이터 전송이 완료되면 연결이 끊김
1. 쿠키(Cookie) : 클라이언트의 웹 브라우저에 웹 서버가 전달한 정보를 저장
ex) 자동로그인, 방문 횟수 기록, 오늘하루 창 안띄우기
형식> Set-Cookie: name=value;expiers=date;path=path;domain=domain;secure
name=value : 쿠키 이름과 값
expires=date : 쿠키 유효 기간
domain=domain : 해당 도메인의 컴퓨터에 접근하는 경우에 서버에 전달
path=path : 유효한 URL 경로
secure :호스트와 보안성이 있는 채널을 사용
(1)쿠키생성
- Cookie cookie = new Cookie(String name, String value);
- cookie.setValue(newValue);
- response.addCookie(name);
(2)사용자의 요청에서 모든 쿠키를 얻기
- Cookie[] cookies = request.getCookies();
(3)원하는 쿠키 검색(이름)
- String name = cookies[i].getName();
- if( name.equals(“id”) ) { … }
(4)쿠키로부터 값을 얻음
- String value = cookies[i].getValue();
(5)쿠키 삭제
- 쿠키 생성 후 setMaxAge(0)을 사용
- response.addCookie(name);
2. 세션(Session) : Server쪽에서 정보를 기억
ex) Email, 장바구니
(1) 웹 컨테이너 내부에 정보를 저장, 관리하고 저장된 정보에 접근하기 위해 세션 ID를 사용
: 쿠키 사용(JSESSIONID)
(2) 서블릿
HttpSession의 클래스의 getSession 메소드를 이용
ex) HttpSession session = request.getSession();
(3) JSP
session 내장 객체이용
setAttribute() :세션설정
getAttribute() :세션리턴
getAttributeNames()
getCreationTime()
getId() :세션ID리턴
getLastAccessedTime()
getMaxInactiveInterval() : 세션에 설정된시간 리턴
setMaxInactiveInterval() : 세션에 시간설정
invalidate() : 모든세션끊기
isNew()
removeAttribute() : 해당 세션끊기
댓글