반응형
dackyy
대기의 연대기
dackyy
전체 방문자
오늘
어제
  • 분류 전체보기 (49)
    • java (7)
    • 코딩테스트 (23)
    • python (10)
    • Network (2)
    • Web (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 논리 연산자
  • 참조 자료형
  • 배열
  • 증감 연산자
  • TLS
  • 시프트 연산자
  • java
  • switch
  • 배열생성
  • 산술 연산자
  • 비트 연산자
  • 기본 자료형
  • https
  • 제어문
  • 자료형
  • SSL
  • 연산
  • 비교 연산자
  • 조건문
  • 반복문

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dackyy

대기의 연대기

[JSP] 장바구니 기능 session을 사용하여 구현하기
java

[JSP] 장바구니 기능 session을 사용하여 구현하기

2022. 9. 20. 12:15
반응형

간단한 아이디 입력으로 로그인 시작. 아무것도 입력하지 않을 경우 경고 발생

상품 선택창 : 아이디를 세션함수로 가져와서 출력하고, 여러가지 상품을 추가, 장바구니 삭제, 계산 로그아웃 하는 기능이 들어있다.

각각의 상품의 갯수와 가격을 설정, 총합계를 알려주며 다시 상품을 추가할 수 있는 버튼을 제공한다.  계산 기능은 ArrayList 를 세션에 추가하고 각각의 상품을 중복을 제거하여 얻은 후 갯수를 계산하는 방식으로 구현하였다.

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<%
    session.invalidate();
%>
<body>
<div align="center">
        <H1><B>로그인</B></H1><hr>
    <form method="post" action="setProduct.jsp">
        로그인 : <input type="text" name="username">
        <input type="submit" value="확인">
    </form>
</div>
</body>
</html>
<%@ page import="java.io.PrintWriter" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<%
    request.setCharacterEncoding("UTF-8");
    String name = request.getParameter("username");
    session.setAttribute("username", name);
    System.out.println(name);
    if(session.getAttribute("username") == ""){
        %>
    <script>
    alert('닉네임을 입력해주세요')
    history.go(-1) </script>
<%
    }
    System.out.println("이건 출력되지롱");
%>
<head>
    <title>Title</title>
</head>
<body>
<div align="center">
    <h1><B>상품선택</B></h1><hr>
    <%=name%>님이 로그인 한 상태입니다 <%=name%><hr>
    <form method="post" action="add.jsp">
        <select name="product">
            <option value="아이폰14">아이폰14</option>
            <option value="맥북프로">맥북프로</option>
            <option value="아이패드">아이패드</option>
        </select>
        <button type="submit" value="추가">추가</button>
    </form>
    <a href="delete.jsp">장바구니 삭제</a>
    <a href="cal.jsp">계산</a><br><br>
    <button onclick="location.href='login.jsp' ">로그아웃</button>
</div>
</body>
</html>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <%
        request.setCharacterEncoding("UTF-8");
        ArrayList<String> list = null;
        String product = request.getParameter("product");
        if(session.getAttribute("product") != null) {
            list = (ArrayList) session.getAttribute("product");
        }
        else{
            list = new ArrayList<String>();
            session.setAttribute("product",list);
        }
        list.add(product);
    %>
    <script>
        alert("<%=product%>이(가) 추가되었습니다.");
        history.go(-1);
    </script>
    <title>Title</title>
</head>
<body>
<%=list%>
</body>
</html>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<html>
<%
  ArrayList<String> list = (ArrayList) session.getAttribute("product");
  if(list == null){}
  else {
    list.clear();
  }
%>
<script>
  alert("장바구니가 삭제되었습니다.");
  history.go(-1);
</script>
<head>
    <title>Title</title>
</head>
<body>

</body>
</html>
<%@ page import="java.io.PrintWriter" %>
<%@ page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

    <%
        request.setCharacterEncoding("UTF-8");
        HashSet<String> pSet = new HashSet<String>();
        ArrayList<String> list = (ArrayList) session.getAttribute("product");
        System.out.println(list==null);
        PrintWriter writer = response.getWriter();
        if(list == null){
            System.out.println("들어옴?");
    %>
    <script>
        alert('장바구니가 비었습니다')
        history.go(-1)
    </script>
    <%
        }
        else {
            for (String s : list) {
    //        writer.println(s + "<br>");
                pSet.add(s);
            }
            Iterator it = pSet.iterator();
            int total = 0;
            while (it.hasNext()) {
                String current = (String) it.next();
                int count = Collections.frequency(list, current);
                writer.println(current + " " + count + "개 ");
                if (current.equals("아이폰14")) {
                    writer.println("999$ * " + count +" = "+ 999 * count + "$<br>");
                    total += 999 * count;
                } else if (current.equals("맥북프로")) {
                    writer.println("1999$ * " + count +" = "+ 1999 * count + "$<br>");
                    total += 1999 * count;
                } else {
                    writer.println("599$ * " + count +" = "+ 599 * count + "$<br>");
                    total += 599 * count;
                }
            }
            writer.println("total = " + total + "$");
        }
    %>

<br><button onclick="back()">상품 선택하러 가기</button>
<script>
    function back(){
        history.go(-1);
    }
</script>
</body>
</html>
반응형

'java' 카테고리의 다른 글

[JAVA] 야구게임 맞추기  (0) 2022.07.30
[JAVA] 배열의 생성과 자료형  (0) 2022.07.09
[JAVA] 제어문  (1) 2022.07.09
[JAVA] 연산자의 종류  (0) 2022.07.09
[JAVA] 기본 자료형간의 타입변환, 연산  (0) 2022.07.09
    'java' 카테고리의 다른 글
    • [JAVA] 야구게임 맞추기
    • [JAVA] 배열의 생성과 자료형
    • [JAVA] 제어문
    • [JAVA] 연산자의 종류
    dackyy
    dackyy

    티스토리툴바