The Debugging Chronicles : "코드의 미학"
예제와 함께 알아 보는 파라미터를 옮길 수 있는 내장객체들 - 2 본문
[예제]
d.jsp 페이지에서 이름을 입력하여 e.jsp 페이지로 이동합니다.
e.jsp 페이지에는 상품들이 select 박스에 제공되어있습니다.
1상품을 5개정도 제공해주세요.
[장바구니에 추가] 버튼을 눌러서 해당상품을 추가합니다.
[ 계산하기 ] 버튼을 눌러서 지금까지 장바구니에 담았던 상품들을 모두 출력합니다.
f.jsp 페이지에서 장바구니에 select 에서 선택한 상품을 추가해주세요.
g.jsp 페이지에서 장바구니에 저장했던 상품들을 출력해주세요.
d.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>입장 페이지</title>
</head>
<body>
<form action="e.jsp" method="POST">
이름 <input type="text" name="name" required> <input type="submit" value="입장">
</form>
</body>
</html>
e.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>쇼핑 페이지</title>
</head>
<body>
<form action="f.jsp" method="POST">
<select name="product">
<option>복숭아</option>
<option>사과</option>
<option>샤인머스캣</option>
</select>
<input type="submit" value="장바구니에 추가">
</form>
<hr>
<a href="g.jsp">계산하기</a>
</body>
</html>
f.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.ArrayList" %>
<%
// product 데이터를 가져와서 product 변수에 대입
String product = request.getParameter("product");
// 배열리스트로 만든 cart변수에 cart 세션을 가지고 와서 대입
ArrayList<String> cart = (ArrayList<String>)session.getAttribute("cart");
// 페이지가 처음 로딩 될때, cart의 값이 아예 아무것도 없을 때
if(cart == null){
//cart에 새로운 배열리스트를 생성
cart= new ArrayList<String>();
// 만들어 놓은 cart 변수에 cart 넣기
session.setAttribute("cart",cart);
}
// alert창 띄우기 // 이전 페이지로
out.println("<script>alert('장바구니에 상품을 추가했습니다!'); history.go(-1);</script>")
// 음수를 넣으면 이전페이지 양수면 앞의 페이지로 이동
%>
g.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.ArrayList" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
// cart 세션 데이터를 가지고 와서
ArrayList<String> cart=(ArrayList<String>)session.getAttribute("cart");
// 장바구니를 새로 들어오게 되면 장바구니를 비워준다
session.removeAttribute("cart");
// removeAttribute - 저장되어 있는 세션 중에서 선택한 세션만 지우기
//invalidate - 모조리다 지우는 것
// session.invalidate();
// 카트에 데이터가 있다면
if(cart != null){
%>
<ul>
<% for(String v:cart){ %>
<li><%= v %></li>
<% } %>
</ul>
<%
}
else{
out.println("장바구니가 비어있습니다!");
}
%>
<hr>
<a href="d.jsp">처음으로 돌아가기</a>
</body>
</html>
'서버프로그래밍 JSP' 카테고리의 다른 글
Insert board / MVC별로 유의할 점 (0) | 2024.09.03 |
---|---|
[Servlet]리스너 Listener (0) | 2024.09.02 |
.XML설정 파일 (0) | 2024.08.20 |
예제와 함께 알아 보는 파라미터를 옮길 수 있는 내장객체들 (0) | 2024.08.07 |
[JSP 내장객체] exception, out (0) | 2024.08.07 |