일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- R1C3
- SQL입문
- 자바 오류
- DoitSQL입문
- 크롤링 오류
- 크롤링
- 자바
- Doit입문SQL
- dbms
- 웹 브라우저 전쟁
- SQL
- 함수 선언
- 예제
- 키-값 데이터베이스
- 배열 3요소
- 숫자형식오류
- 페이지분석
- html
- HTML역사
- 숫자 형식
- 예외
- 배열 예제
- 함수
- DoitSQL
- 자바 예외
- 생성자
- DoIt
- 데이터베이스
- 웹브라우저 수용도
- 우아한테크
Archives
- Today
- Total
프로그래밍
[Web] day38 : 세션(+세션 활용 예제 쇼핑몰) 본문
728x90
반응형
2023.06.28.수
세션
세션은 JSP 내장객체이다
세션은 브라우저 단위로 유지된다
서버가 변경되어도 '브라우저가 유지되고있었다면 설정이 유지되어야하는 상태'에 있는 데이터들을
"세션(session)"으로 관리한다
세션은 일정 시간이 흐르면 연결이 해제된다
활용 예제로는 장바구니, 로그인 유지 여부, 광고 띄우지 않기 등이 있다
세션 저장 및 활용
session.setAttribute("cart", cart);
session.getAttribute("cart");
세션 활용 쇼핑몰 예제
a.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.ArrayList,model.ProductVO" %>
<jsp:useBean id="pDAO" class="model.ProductDAO" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> a </title>
</head>
<body>
<div id="header">
<%
if( session.getAttribute("name") == null ){
%>
<form action="d.jsp" method = "post">
아이디 <input type="text" name="mid">
비밀번호 <input type="password" name="mpw">
<input type="submit" value="로그인">
</form>
<%
}
else{
%>
<%=session.getAttribute("name")%>님, 안녕하세요! :D | <a href="e.jsp">로그아웃</a>
<%
}
%>
</div>
<hr>
<div id="content">
<form action="b.jsp">
상품선택 <select name="num">
<%
ArrayList<ProductVO> datas=pDAO.selectAll(null);
for(ProductVO v:datas){
out.println("<option value='"+v.getNum()+"'>"+v+"</option>");
}
%>
</select>
<input type="submit" value="장바구니에 추가하기">
</form>
</div>
<hr>
<a href="c.jsp">결제하기</a>
</body>
</html>
b.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="model.ProductVO,java.util.ArrayList" %>
<jsp:useBean id="pDAO" class="model.ProductDAO" />
<jsp:useBean id="pVO" class="model.ProductVO" />
<jsp:setProperty property="*" name="pVO" />
<%
ProductVO data = pDAO.selectOne( pVO );
ArrayList<ProductVO> cart=(ArrayList<ProductVO>)session.getAttribute("cart");
if(cart == null){
cart=new ArrayList<ProductVO>();
session.setAttribute("cart", cart);
}
cart.add(data);
%>
<script>
alert('<%=data.getName()%>이(가) 장바구니에 추가되었습니다! :D');
location.href='a.jsp';
</script>
c.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="model.ProductVO,java.util.ArrayList"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> C </title>
</head>
<body>
<%=session.getAttribute("mid")%>님이 구매한 상품들입니다.
<hr>
<ol>
<%
int total = 0;
ArrayList<ProductVO> cart = (ArrayList<ProductVO>) session.getAttribute("cart");
if (cart == null) {
return;
} else {
for (ProductVO v : cart) {
out.println("<li>" + v + "</li>");
total += v.getPrice();
}
}
%>
</ol>
<hr>
<h2>
총 금액은
<%=total%>입니다
</h2>
<hr>
<a href="a.jsp">메인으로 돌아가기</a>
</body>
</html>
d.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="model.MemberVO" %>
<jsp:useBean id="mDAO" class="model.MemberDAO" />
<jsp:useBean id="mVO" class="model.MemberVO" />
<jsp:setProperty property="*" name="mVO" />
<%
mVO = mDAO.selectOne(mVO);
if(mVO == null) {
out.println("<script>alert('로그인 실패...');location.href = 'a.jsp'</script>");
}
else{
session.setAttribute("name", mVO.getName());
}
response.sendRedirect("a.jsp");
%>
e.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
session.removeAttribute("mid");
session.removeAttribute("cart");
response.sendRedirect("a.jsp");
%>
728x90
반응형
'Web > Web' 카테고리의 다른 글
[Web] day39 : 글 쓰기 / 오늘의 방문수 웹페이지 예제(세션, 어플리케이션, 내장객체 out 활용) (0) | 2023.08.01 |
---|---|
[Web] day39 : 어플리케이션(application)+내장객체 out (0) | 2023.08.01 |
[Web] day38 : 데이터 전송(foward / sendRedirect) (1) | 2023.07.31 |
[Web] day38 : 에러페이지 (0) | 2023.07.31 |
[Web] day37 : JSP (0) | 2023.07.05 |
Comments