본문 바로가기
Web Programming/JSP

[JSP] 장바구니 만들기

장바구니 만들기






파일명






1. Login.jsp


18 : 로그아웃 후, 다시 로그인 화면으로 돌아 왔을 때, 기존의 세션 scope를 종료 시켜줌



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
31
32
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>쇼핑</title>
</head>
<body>
    <% request.setCharacterEncoding("UTF-8");%> <!-- 한글처리 -->
    <center>
    
    <h1>Shopping</h1>
    <hr>
    
    <% session.invalidate(); %>  <!-- 다시 로그인 화면으로 돌아왔을 때, 기존의 세션 scope를 종료시켜준다. -->
    
    <form action="setProduct.jsp" method="post"<!-- 2번째 페이지로 이동 -->
    Login : 
    <input type="text" name = "id">
    
    PassWord :
    <input type="password" name = "password">
    
    <input type="submit" value="로그인">
    </form>
    
    </center>
</body>
</html>
cs



2. setProduct.jsp


15 ~ 29 : ID와 PASSWORD를 입력하지 않았을 때, 다시 첫화면으로 돌아가게 만들었다.

38 : 상품 목록 name = product



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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<% request.setCharacterEncoding("UTF-8");%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>상품</title>
 
</head>
<body>
    <%String id = request.getParameter("id");%>
    <%request.getSession().setAttribute("id", id); %>
    
    <!-- 로그인 제대로 안했을 시, 다시 앞의 페이지로 돌아가게 만듦 -->
    <% if(id==""){%>
    <script>alert("ID를 입력 해주세요."); history.back();</script>
    <% 
    }
    %>
    
    <%String password = request.getParameter("password"); %>
    <%request.getSession().setAttribute("password", password); %>
    
    <% if(password==""){%>
    <script>alert("PASSWORD를 입력 해주세요."); history.back();</script>
    <% 
    }
    %>
    
    
    <center>
    <%=id %>님이 로그인 되었습니다.<br>
    상품을 선택하세요.
    <hr>
    <form action="add.jsp" method="post">
        상품 : 
        <select name="product">
            <option value="사과">사과</option>
            <option value="바나나">바나나</option>
            <option value="오렌지">오렌지</option>
            <option value="복숭아">복숭아</option>
        </select
        <input type="submit" value="추가">
    </form>
    
    <form name="go" action="checkOut.jsp" method="post">
    <input type="submit" value="장바구니 가기"><br>
    </form>    
    
    <form name="rest" action="Login.jsp" method="post">
    <input type="submit" value="로그아웃">
    </form>
 
 
    </center>
</body>
</html>
cs



3. add.jsp


가져온 상품명을 product라는 변수에 저장 후, 

15 : 세션에서 arr을 가지고 온다.

19 : 가져온 값이 null이라면 새로운 arraylist 추가한다. 추가 된 list는 다시 세션에 저장 된다.


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
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<% request.setCharacterEncoding("UTF-8");%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
    <%String product =  request.getParameter("product"); %>
    <%String id = request.getSession().getAttribute("id").toString(); %>
    
    <% ArrayList<String> arr =(ArrayList)(session.getAttribute("arr")); %> 
    <!-- "arr"이라는 속성을 세션에서 받아온다 -->
    
    <%  
    if(arr==null){arr = new ArrayList<String>();}
    arr.add(product);
    session.setAttribute("arr", arr); /* 세션에 "arr"이름으로 arr을 속성으로 추가한다  */
    %>
    
    <scriptalert("상품이 추가되었습니다"); history.back()</script>    
</body>
</html>
cs



4. checkOut.jsp


세션에 저장 된 ArrayList를 가지고 와 화면에 보여준다.



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
31
32
33
34
<%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
    <%
        ArrayList<String> arr =(ArrayList)(session.getAttribute("arr"));
        String id = request.getSession().getAttribute("id").toString();    
    %>
    
    <center>
    <%= id %>님의 상품 목록<br><hr>
    <%
        for(String i : arr ){
        %>
            <%=%>
    <%     
        }
    %>
    <br>
    <form action="Login.jsp" method="post">
    <input type="button" value="돌아가기" onClick="history.back()">
    <input type="submit" value="로그아웃">
    </form>
    </center>
</body>
</html>
cs