JSP/Practice

[JSP] ์‡ผํ•‘๋ชฐ ์˜ˆ์ œ

ITs Min 2024. 1. 7. 23:15

๐Ÿ” ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์‡ผํ•‘๋ชฐ ์˜ˆ์ œ</title>
</head>
<body>

<h1>๋กœ๊ทธ์ธ ํŽ˜์ด์ง€</h1>

<form method="POST" action="test10.jsp">
	ID <input type="text" name="mid" placeholder="ID๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”." required> <br><br>
	<input type="submit" value="๋กœ๊ทธ์ธ">
</form>

</body>
</html>

 

form ํƒœ๊ทธ๋ฅผ ๋ณด๋ฉด ๋ฉ”์„œ๋“œ๋Š” POST ์•ก์…˜์€ test10.jsp๋กœ ๋˜์–ด์žˆ๋‹ค.

jsp๋Š” ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜๋ฐ–์— ์—†๋Š”๋ฐ
์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ๋Š” formํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
๋Œ€๋ถ€๋ถ„ form์—์„œ method๋Š” POST๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์š”์ฒญ ์ •๋ณด๋Š” request๋ผ๋Š” ๊ฐ์ฒด์— ์ €์žฅ๋œ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์•„์˜จ๋‹ค. (request.Parameter)

ID๋งŒ ์ž…๋ ฅ์„ ๋ฐ›๋Š” ๋กœ๊ทธ์ธ ์ฐฝ์„ ๋„์šด๋‹ค. required ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

์ž…๋ ฅ์„ ํ•˜๊ณ  ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค๋ฉด test10.jsp ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.


๐Ÿ” ์ƒํ’ˆ ๋ชฉ๋ก ๋ฐ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธฐ

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
	String mid=request.getParameter("mid");
	session.setAttribute("mid", mid);
%>

<h1>์ƒํ’ˆ๋ชฉ๋ก</h1>
<hr>
<%=session.getAttribute("mid")%>๋‹˜, ์•ˆ๋…•ํ•˜์„ธ์š”! :D
<hr>
<form action="test12.jsp" method="POST">
	<select name="product">
		<option>๋ฉ”์ธ๋ณด๋“œ</option>
		<option>CPU</option>
		<option>๊ทธ๋ž˜ํ”ฝ์นด๋“œ</option>
		<option>๋žจ</option>
		<option>ํŒŒ์›Œ</option>
	</select>
	<input type="submit" value="์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ถ”๊ฐ€">
</form>
<hr>
<a href="test11.jsp">์ตœ์ข… ๊ฒฐ์ œํ•˜๊ธฐ</a>

</body>
</html>

 

๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ formํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋ฐ ํƒœ๊ทธ ์•ˆ์ชฝ์„ ๋ณด๋ฉด select ํƒœ๊ทธ๊ฐ€ ์žˆ๋‹ค.

<select> ํƒœ๊ทธ๋Š” HTML ์–‘์‹(form)์—์„œ ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์š”์†Œ์ด๋‹ค.

์œ„์˜ ์ฝ”๋“œ์—์„œ๋Š” ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ถ”๊ฐ€ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ํ•ด๋‹น ์„ ํƒ์ด ์„œ๋ฒ„๋กœ ์ œ์ถœ๋œ๋‹ค.

์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ํ•˜๋‚˜๋ฅผ ๋‹ด๋Š”๋‹ค๊ณ  ํ•ด์„œ ๋ฐ”๋กœ ๋‹ค์Œ ์ฐฝ์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ตœ์ข…๊ฒฐ์ œํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์•ผ ์ด๋™ํ•œ๋‹ค.

 

๐Ÿ’ก select ํƒœ๊ทธ

  1. <select>: ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์„ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํƒœ๊ทธ์ด๋‹ค.
  2. id ๋ฐ name: <select> ์š”์†Œ์˜ ๊ณ ์œ  ์‹๋ณ„์ž ๋ฐ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜๋Š” ์ด๋ฆ„์ด๋‹ค. id๋Š” CSS ์Šคํƒ€์ผ๋ง์ด๋‚˜ JavaScript์—์„œ ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ์‚ฌ์šฉ๋˜๊ณ , name์€ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜๋Š” ์–‘์‹ ๋ฐ์ดํ„ฐ์˜ ์ด๋ฆ„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  3. <option>: ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก ๋‚ด์—์„œ ๊ฐ ํ•ญ๋ชฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํƒœ๊ทธ์ด๋‹ค. value ์†์„ฑ์€ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜๋Š” ๊ฐ’์ด๋ฉฐ, ํƒœ๊ทธ ๋‚ด๋ถ€์˜ ํ…์ŠคํŠธ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ๋‚ด์šฉ์ด๋‹ค.

๐Ÿ” ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ƒํ’ˆ ์ถ”๊ฐ€

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.ArrayList" %>
<% request.setCharacterEncoding("UTF-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ƒํ’ˆ์„ ์ถ”๊ฐ€</title>
</head>
<body>

<%
	ArrayList<String> cart=(ArrayList<String>)session.getAttribute("cart");

	if(cart == null){ // ์ฒซ๊ตฌ๋งค๋ผ์„œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์—†์—ˆ๋‹ค๋ฉด
		cart=new ArrayList<String>();
		session.setAttribute("cart",cart);
	}

	String product=request.getParameter("product");
	cart.add(product);
%>

<script>
	alert('<%=product%>์ด(๊ฐ€) ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค! :D');
	history.go(-1);
</script>

</body>
</html>

 

์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ƒํ’ˆ๋“ค์„ ๋„ฃ๋Š” ์ฝ”๋“œ์ด๋‹ค. ์ž…๋ ฅํ•˜๋Š” ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ๋Š” session์„ ์„ ํƒํ–ˆ๋‹ค.

๋”ฐ๋ผ์„œ .getAttribute("๊ฐ’ ์ด๋ฆ„") ์œผ๋กœ ๊ฐ’์„ ๋ฐ›์•„์™”๋‹ค.

๊ทธ ๋‹ค์Œ request ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ๋งค๊ฐœ๋ณ€์ˆ˜ product์˜ ๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ cart ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•œ๋‹ค.

history.go(-1)์€ ํ˜„์žฌ ํŽ˜์ด์ง€์˜ ์ด์ „ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋ผ๋Š” ๋ช…๋ น์ด๋‹ค.

์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ถ”๊ฐ€๋ฅผ ํ–ˆ๋‹ค๋ฉด ์ด์ „ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค.


๐Ÿ”  ๊ฒฐ์ œ ํŽ˜์ด์ง€

<%@ 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>

<h1>๊ฒฐ์ œ ํŽ˜์ด์ง€</h1>

<%
	ArrayList<String> cart=(ArrayList<String>)session.getAttribute("cart");

	if(cart == null){
		out.println("๊ฒฐ์ œํ•  ์ƒํ’ˆ์ด ์—†์Šต๋‹ˆ๋‹ค!");
	}
	else{
		for(String data:cart){
			out.println(data+"<br>");
		}
	}
%>

</body>
</html>

 

์‹ค์ œ ๊ฒฐ์ œ๋ฅผ ๊ตฌํ˜„ํ•˜์ง€๋Š” ์•Š๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์žˆ๋Š” ๋ฌผ๊ฑด์„ ์ถœ๋ ฅํ•˜๋Š” ํ˜•์‹๋งŒ ์‚ฌ์šฉํ–ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ๋„ cart๋ผ๋Š” ๋ฐฐ์—ด๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์™€์„œ ํ™œ์šฉํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๋ฐฐ์—ด๋ฆฌ์ŠคํŠธ๊ฐ€ ๋น„์–ด์žˆ๋‹ค๋ฉด

๊ฒฐ์ œํ•  ์ƒํ’ˆ์ด ์—†๋‹ค๋Š” ๊ธ€์„ ์ถœ๋ ฅ์‹œํ‚จ๋‹ค.