Java

2024.07.04 JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ณธ ํผ ์ฒ˜๋ฆฌ์™€ ์š”์ฒญ ๋ฐฉ์‹

์ •ํ›ˆ5 2024. 7. 4. 14:57
<aside>
๐Ÿ’ก ํ•™์Šต ๋ชฉํ‘œ

1. **GET ์š”์ฒญ ๋ฐฉ์‹๊ณผ ์ •์  ์ปจํ…์ธ ์˜ ๊ฐœ๋…๊ณผ ์‚ฌ์šฉ๋ฒ•์„ ์ดํ•ดํ•œ๋‹ค.**
2. **Form ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ POST ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์ตํžŒ๋‹ค.**
3. **POST ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ธ”๋ฆฟ ํŒŒ์ผ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.**
</aside>

 

GET ์š”์ฒญ ๋ฐฉ์‹๊ณผ ์ •์  ์ปจํ…์ธ 

  • GET ์š”์ฒญ: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” HTTP ์š”์ฒญ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. URL์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฃผ๋กœ ์ •์  ์ปจํ…์ธ ๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ์ •์  ์ปจํ…์ธ : ์„œ๋ฒ„์—์„œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ์ •์  ํŒŒ์ผ(HTML, CSS, JavaScript, ์ด๋ฏธ์ง€ ๋“ฑ)์„ ํด๋ผ์ด์–ธํŠธ์— ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŠน์ง•

  • GET ์š”์ฒญ์€ URL์— ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ์ฐฝ์— ์ง์ ‘ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ GET ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • GET ์š”์ฒญ์€ ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜(๋™์  ๋ฐ์ดํ„ฐ) ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
<a href="search.jsp?query=JSP">Search JSP</a>

Form ํƒœ๊ทธ์™€ POST ์š”์ฒญ

๊ฐœ๋…

  • Form ํƒœ๊ทธ: ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” HTML ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค.
  • POST ์š”์ฒญ: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” HTTP ์š”์ฒญ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • GET ์š”์ฒญ: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” HTTP ์š”์ฒญ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ์กฐํšŒ ์ž‘์—…์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํŠน์ง•

  • POST ์š”์ฒญ:
    • URL์— ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๊ณ , ์š”์ฒญ ๋ณธ๋ฌธ(HTTP ๋ฉ”์„ธ์ง€)์— ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
    • ํผ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ฃผ๋กœ ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ์™€ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ๋ณด์•ˆ ์ธก๋ฉด์—์„œ GET ์š”์ฒญ๋ณด๋‹ค ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค, ํŠนํžˆ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ.
  • GET ์š”์ฒญ:
    • URL์— ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
    • ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ์ฐฝ์— ์ง์ ‘ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ GET ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ฃผ๋กœ ๋ฐ์ดํ„ฐ ์กฐํšŒ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • URL์— ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹œ๋‚˜๋ฆฌ์˜ค ์ฝ”๋“œ 1

 

class_jsp_v04 ํด๋”

index.jsp

result.jsp

css / styless.css

image / favicon.png

 

styless.css

@charset "UTF-8";

body {
	background-color: #f4f4f4;
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100vh;
}

.container {
	background-color: #fff;
	padding: 20px;
	border-radius: 8px;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
	width: 100%;
	max-width: 400px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

h2 {
	margin-bottom: 20px;
}

form>label {
	
	display: inline-block;
	margin-bottom: 15px;
}

 

index.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>
<link rel="stylesheet" type="text/css" href="css/styless.css">
<link rel="icon" href="image/favicon.png" type="image/x-icon">
</head>
<body>
	<div class="container">
		<h2>ํผ ์˜ˆ์ œ</h2>
		<form action="result.jsp" method="POST">
			
			<label for="username">Username: </label>
			<input type="text" id="username" name="username" value="์•ผ์Šค์˜ค">
			<br> <br>
			
			<label>์ทจ๋ฏธ๋ฅผ ์„ ํƒํ•˜์„ธ์š”</label> <br>
			
			<input type="checkbox" id="bobby1" name="hobbies" value="์ถ•๊ตฌ">
			<label for="bobby1">์ถ•๊ตฌ</label> <br>
			
			<input type="checkbox" id="bobby2" name="hobbies" value="๋†๊ตฌ">
			<label for="bobby2">๋†๊ตฌ</label> <br>
			
			<input type="checkbox" id="bobby3" name="hobbies" value="๋…์„œ">
			<label for="bobby3">๋…์„œ</label> <br>
			
			<input type="checkbox" id="bobby4" name="hobbies" value="์ฝ”๋”ฉ">
			<label for="bobby4">์ฝ”๋”ฉ</label> <br>
			
			<button type="submit">์ œ์ถœ</button>
			
		</form>
	</div>

</body>
</html>

 

result.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>
	<h1>ํผ ์ œ์ถœ ๊ฒฐ๊ณผ ํ™•์ธ ํŽ˜์ด์ง€</h1>
	
	<%
		String username = request.getParameter("username");
		String[] hobbies = request.getParameterValues("hobbies");		
		out.print("xxxx " + hobbies.length);
		out.print("์ด๋ฆ„ " + username);
	%>

</body>
</html>

 

 


 

result.jsp

 

<%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%>
<%@ 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>
	<h1>ํผ ์ œ์ถœ ๊ฒฐ๊ณผ ํ™•์ธ ํŽ˜์ด์ง€</h1>
	
	<%
		String username = request.getParameter("username");
		String[] hobbies = request.getParameterValues("hobbies");
		String faColor = request.getParameter("favoriteColor");
	//	out.print("xxxx " + hobbies.length);
	//	out.print("์ด๋ฆ„ " + username);
	%>
	
<p>Username : <%= username %> </p>
 	
	<%
		if(hobbies != null) {
			
	%>
		<!-- html ์˜์—ญ   -->
		<p>Hobbies : </p>
		<ul>
			<% for(String bobby : hobbies) { %>
			<li><%= bobby %></li>
			<%} %>
		</ul>		
	<%} else {%>
	
		 <!-- HTML ์˜์—ญ -->
		 <p>์„ ํƒ๋œ ์ทจ๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.</p>
	<%		
		}
		
	%>
	<ul>
		<li></li>
		<li></li>
	</ul>
	
	<p> color : <%= faColor != null ? faColor : "์„ ํƒํ•œ ์ƒ‰์ƒ์ด ์—†๋„ค์š”" %>

</body>
</html>