๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป/JSP

(57) [JSP] 3์ผ JSP ๋‚ด๋ถ€ ๊ฐ์ฒด, ์•ก์…˜ ํƒœ๊ทธ

by ๋”ฐ๊ถˆ 2024. 5. 9.

 

 

 

request 

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ์ฒด

GET๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ

 

 

<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>
	
	<h3>request ๋‚ด์žฅ ๊ฐ์ฒด : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ์ฒด</h3>
	<!-- request๋Š” HttpServletRequest ๊ฐ์ฒด ์ด๋‹ค.-->
	
	<p>
		<a href="ex10_ok.jsp"> request ์ •๋ณดํ™•์ธ</a>
	</p>
</body>
</html>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
	String protocol = request.getProtocol();
	String serverName = request.getServerName();
	int port = request.getServerPort();
	String remoteAddr = request.getRemoteAddr(); //โ˜…
	String method = request.getMethod();
	String agent = request.getHeader("User-Agent");
	String fileType = request.getHeader("Accept");
	String referer = request.getHeader("Referer"); //์ „์ฃผ์†Œ ํ™•์ธ ๊ฐ€๋Šฅ 
	if(referer==null){
		referer="";
	}
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

	<h3>request : ์š”์ฒญ ์ •๋ณด</h3>
	
	<p>ํ”„๋กœํ† ์ฝœ : <%=protocol %></p>
	<p>์„œ๋ฒ„์ด๋ฆ„ : <%=serverName %></p>
	<p>์„œ๋ฒ„ํฌํŠธ๋ฒˆํ˜ธ : <%=port %></p>
	<p>ํด๋ผ์ด์–ธํŠธ์•„์ดํ”ผ์ฃผ์†Œ : <%=remoteAddr %></p> 
	<p>method : <%=method %></p>
	<p>ํด๋ผ์ด์–ธํŠธ OS ๋ฐ ๋ธŒ๋ผ์šฐ์ € : <%=agent %></p>
	<p>๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง€์›ํ•˜๋Š” ๋งค์ฒด ํƒ€์ž… : <%=fileType %></p>
	<p>์ด์ „์˜ ํด๋ผ์ด์–ธํŠธ URL : <%=referer %></p>

</body>
</html>

 

response

์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ์ฒด 

 

 

<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

	<h3>response :  ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ(request)์— ๋Œ€ํ•œ ์‘๋‹ต(response) ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ์ฒด</h3>
	
	<%--
		- response : HttpServletResponse ๊ฐ์ฒด
		- redirect
		  : ์›น ์ปจํ…Œ์ด๋„ˆ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์ฃผ์–ด์ง„ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋„๋ก ๋ช…๋ น์„ ๋‚ด๋ฆผ
		  	(302์‘๋‹ต์ฝ”๋“œ)
		  : ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์ฃผ์–ด์ง„ ์ฃผ์†Œ์˜ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€์— ์ ‘์†ํ•œ๋‹ค. 
		  : request, response ๊ฐ์ฒด๋Š” ์ดˆ๊ธฐํ™” ๋˜๊ณ  ๋‹ค์‹œ ์ƒ์„ฑ๋œ๋‹ค. 
		  : ์ผ๋ฐ˜์ ์œผ๋กœ redirect ํ•˜๋Š” ๊ฒฝ์šฐ
		    ๋กœ๊ทธ์ธํ›„, ๋กœ๊ทธ์•„์›ƒํ›„, DB์˜ INSERT, UPDATE, DELETE ํ›„  
	 --%>

		<p>
			<a href="ex12_ok.jsp">๋ฆฌ๋‹ค์ด๋ ‰ํŠธ</a>
			<a href="ex12_ok2.jsp">์—๋Ÿฌ๋ฐœ์ƒ</a>
		</p>
		
		
		
</body>
</html>

 

<%@ page contentType="text/html; charset=UTF-8"%>

	<%
		response.sendError(400); // ์—๋Ÿฌ์ฝ”๋“œ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†ก  
		
	%>

 

<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body style="background: yellow;">

	<p>์ด ํ™”๋ฉด์€ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.</p>
	<%
		response.sendRedirect("ex12_result.jsp"); // ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ 
	%>


</body>
</html>

 

OUT

ํŽ˜์ด์ง€ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ์ถœ๋ ฅ ์ŠคํŠธ๋ฆฝ ๊ฐ์ฒด

 

์ฃผ์š” ๋ฉ”์†Œ๋“œ

 

pageContext

JSP ํŽ˜์ด์ง€ ์‹คํ–‰์— ํ•„์š”ํ•œ Context ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ์ฒด 

์ฃผ์š” ๋ฉ”์†Œ๋“œ

 

<%@ page contentType="text/html; charset=UTF-8"%>

<%	
	// ํ˜„์žฌ JSP์— ์ฃผ์–ด์ง„ ์ด๋ฆ„์œผ๋กœ ์†์„ฑ๊ฐ’์„ ์ €์žฅ
	pageContext.setAttribute("msg", "pageContext ๊ฐ์ฒด ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.");

%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

	<h3>pageContext : JSP ํŽ˜์ด์ง€ ์‹คํ–‰์— ๋Œ€ํ•œ Context ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ์ฒด</h3>
	
	<!-- setAttribute()๋กœ ์„ค์ •ํ•œ ์†์„ฑ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ -->
	<p><%=pageContext.getAttribute("msg") %></p>
	<p> ${msg} </p>
	
	<!--JspWriter getOut() : ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ -->
	<%
	pageContext.getOut().print("<p>๋ฐ˜๊ฐ€์›Œ์š”</p>"); 
	%>
	
</body>
</html>

 

 

exception

JSP ํŽ˜์ด์ง€์—์„œ ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•  ํŽ˜์ด์ง€๋ฅผ ์ง€์ •ํ•œ ๊ฒฝ์šฐ ์—๋Ÿฌ ํŽ˜์ด์ง€์— ์ „๋‹ฌ๋˜๋Š” ์˜ˆ์™ธ ๊ฐ์ฒด 

 

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page errorPage="error.jsp" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

	<h3>exception ๋‚ด์žฅ ๊ฐ์ฒด</h3>
	<!-- 
		JSP ํŽ˜์ด์ง€์—์„œ ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•  ํŽ˜์ด์ง€๋ฅผ ์ง€์ •ํ•œ ๊ฒฝ์šฐ 
		์—๋Ÿฌ ํŽ˜์ด์ง€์— ์ „๋‹ฌ๋˜๋Š” ์˜ˆ์™ธ ๊ฐ์ฒด
	 -->
	 
	 <%
	 	String name = request.getParameter("name").toUpperCase();
	 %>
	 
	 <p>
	 	์ด๋ฆ„ : <%=name %>
	 </p>

</body>
</html>

 

 

 

์•ก์…˜ ํƒœ๊ทธ๋ž€?
JSP ์•ก์…˜ ํƒœ๊ทธ๋Š” ํด๋ผ์ž‰๋„ˆํŠธ ํ˜น์€ ์„œ๋ฒ„์—๊ฒŒ ์–ด๋– ํ•œ ๋™์ž‘์„ ํ–‰ํ•˜๋„๋ก ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” ํƒœ๊ทธ
JSP ํŽ˜์ด์ง€์—์„œ ํŽ˜์ด์ง€์˜ ๋ชจ๋“ˆํ™”์™€ ํ๋ฆ„์ œ์–ด๋ฅผ ์œ„ํ•ด
include, forward ์•ก์…˜ ํƒœ๊ทธ๋ฅผ ์ œ๊ณตํ•˜๊ณ , 
์ž๋ฐ” ๋นˆ์˜ ์‚ฌ์šฉ์„ ์œ„ํ•ด useBean, setProperty,getProperty ๋“ฑ์˜
์•ก์…˜ ํƒœ๊ทธ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 


ํŠน์ง•
JSP ์•ก์…˜ ํƒœ๊ทธ๋Š” XML ๊ตฌ๋ฌธ ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค. ์‹œ์ž‘ ํƒœ๊ทธ๊ฐ€ ์žˆ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ ๋๋‚˜๋Š” ํƒœ๊ทธ๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.
์•ก์…˜ ํƒœ๊ทธ๋Š” ์ ‘๋‘์–ด 'jsp:'์ด ๋ถ™์–ด์„œ '<jsp:'์œผ๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค.
์•ก์…˜ ํƒœ๊ทธ์— ์†์„ฑ ๊ฐ’๋งŒ ์ง€์ •ํ•˜๊ณ  ๋‚ด์šฉ์ด ์—†์„ ๊ฒฝ์šฐ์—๋Š”, XML ๊ทœ์น™์— ์˜ํ•ด ๋๋‚˜๋Š” ํƒœ๊ทธ๋ฅผ ๋”ฐ๋กœ ํ•˜์ง€ ์•Š๊ณ  ์‹œ์ž‘ ํƒœ๊ทธ์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์„ '/>'์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ ํ•œ๋‹ค.

 

 

์ข…๋ฅ˜

 

 

<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

	<form action="ex02_ok.jsp" method="post">
		<p>๋ฒˆํ˜ธ : <input type="text" name="no"></p>
		<p>์ด๋ฆ„ : <input type="text" name="name"></p>
		<p>๋‚˜์ด : <input type="text" name="age"></p>
		<p>์ข‹์•„ํ•˜๋Š” ๊ณผ๋ชฉ : <input type="text" name="subject"></p>
		
		<p>
			<button type="submit">์ „์†กํ•˜๊ธฐ</button>
		</p>
		</form>
</body>
</html>

 

<%@ page contentType="text/html; charset=UTF-8"%>
<%
	request.setCharacterEncoding("utf-8");

%>

<%--๋นˆ์ƒ์„ฑ UserVo vo = new UserVo(); ๊ณผ ์œ ์‚ฌ --%>
<jsp:useBean id="vo" class="ch05.p1.UserVO"/>

<%--์ƒ์„ฑ๋œ ๋นˆ์— ์†์„ฑ(ํŒŒ๋ผ๋ฏธํ„ฐ)๊ฐ’ ์„ค์ • --%>
<%--๋นˆ์˜ ํ•„๋“œ๋ช…๊ณผ form ํƒœ๊ทธ ์•ˆ์˜ input ์š”์†Œ์˜ ์ด๋ฆ„์ด ๋™์ผํ•œ ๊ฒƒ๋งŒ ์„ค์ • --%>
<jsp:setProperty name="vo" property="*"/>

<%--๋นˆ์˜ ํ•„๋“œ๋ช…๊ณผ form ํƒœ๊ทธ ์•ˆ์˜ input ์š”์†Œ์˜ ์ด๋ฆ„์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ --%>
<jsp:setProperty name="vo" property="num" param="no"/>

<%
	String s="์„ฑ์ธ";
	if(vo.getAge()<19) s = "๋ฏธ์„ฑ๋…„์ž";

%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

	<h3> useBean ์•ก์…˜ ํƒœ๊ทธ</h3>
	<p>๋ฒˆํ˜ธ : <%= vo.getNum() %></p>
	<p>์ด๋ฆ„ : <%= vo.getName() %></p>
	<p>๋‚˜์ด : <%= vo.getAge() %>,<%=s %></p>
	<p>๊ณผ๋ชฉ : <%= vo.getSubject() %></p>
	

</body>
</html>

 

 

 

ํฌ์›Œ๋”ฉ(forwarding)

ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญ ๋ฐ›์€ ์„œ๋ฒ„์˜ ์„œ๋ธ”๋ฆฟ ๋˜๋Š” JSP๋Š” ์„œ๋ฒ„์˜ ๋‹ค๋ฅธ ์ž์›(์„œ๋ธ”๋ฆฟ ๋˜๋Š” JSP๋“ฑ)์œผ๋กœ ์š”์ฒญ ๋ฐ›์€ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ํฌ์›Œ๋”ฉ์€ Servlet Container์•ˆ์—์„œ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์œผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ํฌ์›Œ๋”ฉ ๋œ ์‚ฌ์‹ค์„ ์•Œ ์ˆ˜๊ฐ€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์›น ๋ธŒ๋ผ์šฐ์ €์—๋Š” ์ดˆ์ตœ์— ํ˜ธ์ถœํ•œ URL์ด ํ‘œ์‹œ๋˜๊ณ  ํฌ์›Œ๋”ฉ๋œ ํŽ˜์ด์ง€์˜ URL ์ •๋ณด๋Š” ๋ณผ ์ˆ˜ ์—†๋‹ค. 

 

 

 

 

<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

	<h3>forward</h3>
	
	<!-- 
	 - ํด๋ผ์ด์–ธํŠธ๋กœ ๋ถ€ํ„ฐ ์š”์ฒญ ๋ฐ›์€ ์„œ๋ธ”๋ฆฟ ๋˜๋Š” JSP์—์„œ ๋‹ค๋ฅธ ์ž์›(์„œ๋ธ”๋ฆฟ ๋˜๋Š” JSP)
	   ์—๊ฒŒ ์š”์ฒญ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์ฒ˜๋ฆฌ
	 - ํฌ์›Œ๋”ฉ์€ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ด๋ฃจ์–ด ์ง€๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ๋Š” ์•Œ์ˆ˜ ์—†๋‹ค. 
	   ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค.
	   ์š”์ฒญ ๋ฐ›์€ ํŽ˜์ด์ง€๋Š” ํฌ์›Œ๋”ฉ๋˜๋Š” ํŽ˜์ด์ง€(์ž์›)์— request,response ๊ฐ์ฒด๋ฅผ 
	   ๋„˜๊ฒจ์ค€๋‹ค. 
	 - ์š”์ฒญ ๋ฐ›์€ ํŽ˜์ด์ง€์—์„œ ํฌ์›Œ๋”ฉ ๋˜๋Š” ํŽ˜์ด์ง€์— ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 
	   request.setAttribute("์ด๋ฆ„",๊ฐ’)์„ ์ด์šฉํ•œ๋‹ค.
	 - ํฌ์›Œ๋”ฉ ๋˜๋Š” ํŽ˜์ด์ง€์—์„œ๋Š” request.setAttribute("์ด๋ฆ„",๊ฐ’)๋Š”
	   Object getAttribute("์ด๋ฆ„") ์œผ๋กœ ๊ฐ’์„ ๋„˜๊ฒจ ๋ฐ›๋Š”๋‹ค.
	-->
	
	<form action="ex04_ok.jsp" method="post">
		<p>์ด๋ฆ„ : <input type="text" name="name"></p>
		<p>๋‚˜์ด : <input type="text" name="age"></p>
		<p>
			<button type="submit">์ „์†กํ•˜๊ธฐ</button>
		</p>
	</form>
	
</body>
</html>

 

<%@ page contentType="text/html; charset=UTF-8"%>

<%
	request.setCharacterEncoding("utf-8");

	int age = Integer.parseInt(request.getParameter("age"));
	String s = age >= 19 ? "์„ฑ์ธ" : "๋ฏธ์„ฑ๋…„์ž";
	
	request.setAttribute("state", s);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

	
	<h3>ํฌ์›Œ๋”ฉํ•˜๋ฉด ์ดํŽ˜์ด์ง€๋Š” ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค.</h3>
	
	<!-- JSP ์•ก์…˜ ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•˜์—ฌ ํฌ์›Œ๋”ฉ -->
	<jsp:forward page="ex04_result.jsp"/>
	
	
</body>
</html>

 

<%@ page contentType="text/html; charset=UTF-8"%>
<%
	request.setCharacterEncoding("utf-8");
/*
	- ํฌ์›Œ๋”ฉํ•˜๋ฉด ํฌ์›Œ๋”ฉ ํŽ˜์ด์ง€์—์„œ request, response ๊ฐ์ฒด๊ฐ€ ๋„˜์–ด ์˜ค๋ฏ€๋กœ
	ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์ •๋ณด๋ฅผ ํฌ์›Œ๋”ฉ๋œ ํŽ˜์ด์ง€์—์„œ ๋„˜๊ฒจ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. 
*/

	String name = request.getParameter("name");
	int age = Integer.parseInt(request.getParameter("age"));
	
	//ํฌ์›Œ๋”ฉํ•œ ํŽ˜์ด์ง€์—์„œ ์„ค์ •ํ•œ ์†์„ฑ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
	//Object request.getAttribute("์ด๋ฆ„")
	String s= (String)request.getAttribute("state");
	
	//์ƒˆ๋กœ ๊ณ ์นจํ•˜๋ฉด DB์— ๊ณ„์† ์ €์žฅ๋จ 
	
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

	<h3>์‹คํ–‰ ๊ฒฐ๊ณผ</h3>
	<p> ์ด๋ฆ„ : <%=name %></p>
	<p> ๋‚˜์ด : <%=age %>, <%=s %></p>
	
</body>
</html>

 

 

 

'๐Ÿ’ป > JSP' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

(56) [JSP] 2์ผ JSPRequest parameter ๋ฐ ๋‚ด๋ถ€๊ฐ์ฒด  (0) 2024.05.08