반응형
간단한 아이디 입력으로 로그인 시작. 아무것도 입력하지 않을 경우 경고 발생
상품 선택창 : 아이디를 세션함수로 가져와서 출력하고, 여러가지 상품을 추가, 장바구니 삭제, 계산 로그아웃 하는 기능이 들어있다.
각각의 상품의 갯수와 가격을 설정, 총합계를 알려주며 다시 상품을 추가할 수 있는 버튼을 제공한다. 계산 기능은 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 |