๐Ÿ“Œ JSP Forward ๋ฐฉ์‹ ์™„๋ฒฝ ์ดํ•ด - Request ํ๋ฆ„ + ์‹ค์Šต ์ฝ”๋“œ ๋ถ„์„

My Pale Blue Dotยท2025๋…„ 4์›” 2์ผ
0

JSP/SERVLET

๋ชฉ๋ก ๋ณด๊ธฐ
4/25
post-thumbnail

๐Ÿ“… ๋‚ ์งœ

2025๋…„ 4์›” 2์ผ


๐Ÿ“ ํ•™์Šต ๋‚ด์šฉ

โœ… 1. Forward ๋ฐฉ์‹์ด๋ž€?

Forward๋Š” ์„œ๋ฒ„ ๋‚ด๋ถ€์—์„œ ์š”์ฒญ์„ ๋‹ค๋ฅธ JSP/Servlet์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์š”์ฒญ์€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์žฌ์ „์†ก๋˜์ง€ ์•Š๊ณ , ์„œ๋ฒ„ ๋‚ด๋ถ€์—์„œ ๋‹ค์Œ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•œ๋‹ค.

์ฃผ์š” ํŠน์ง•:

  • ํด๋ผ์ด์–ธํŠธ์˜ URL์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ
  • ์ตœ์ดˆ ์š”์ฒญ์— ํฌํ•จ๋œ request ๊ฐ์ฒด๊ฐ€ ์œ ์ง€๋จ
  • ํ•˜๋‚˜์˜ ์š”์ฒญ-์‘๋‹ต ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง„๋‹ค
  • RequestDispatcher.forward(request, response) ๋กœ ์‚ฌ์šฉ

โœ… 2. ์ „์ฒด ํ๋ฆ„

01Form.html
   โ†“  (submit)
02Page.jsp
   โ†“  (forward)
03Page.jsp
   โ†“  (forward)
04Result.jsp

1๏ธโƒฃ 01Form.html โ€“ ์ž…๋ ฅ ํผ ๋ฐ ์ตœ์ดˆ ์š”์ฒญ

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Form</title>
</head>
<body>
<form action="02Page.jsp">
	<input type="text" name="username" />
	<input type="text" name="password" />
	<button>์ „์†ก</button>
</form>
</body>
</html>

2๏ธโƒฃ 02Page.jsp โ€“ ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ฐ Forward to 03Page

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
	String username = request.getParameter("username");
	String password = request.getParameter("password");

	System.out.println("----------02PAGE---------------");
	System.out.println("username :" + username);
	System.out.println("password :" + password);
	System.out.println("-------------------------------");

	request.setAttribute("02Page", "02PageValue");
	request.getRequestDispatcher("./03Page.jsp").forward(request, response);
%>

3๏ธโƒฃ 03Page.jsp โ€“ ์ด์ „ ์š”์ฒญ๊ฐ’ ์œ ์ง€ + Forward to 04Page

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
	String username = request.getParameter("username");
	String password = request.getParameter("password");
	String Page02Value = (String) request.getAttribute("02Page");

	System.out.println("----------03PAGE---------------");
	System.out.println("username :" + username);
	System.out.println("password :" + password);
	System.out.println("Page02Value : " + Page02Value);
	System.out.println("-------------------------------");

	request.setAttribute("03Page", "03Page's Value");
	request.getRequestDispatcher("./04Result.jsp").forward(request, response);
%>

4๏ธโƒฃ 04Result.jsp โ€“ ์ตœ์ข… ๊ฒฐ๊ณผ ์ถœ๋ ฅ

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
	String username = request.getParameter("username");
	String password = request.getParameter("password");
	String Page02Value = (String) request.getAttribute("02Page");
	String Page03Value = (String) request.getAttribute("03Page");

	System.out.println("----------RESULT---------------");
	System.out.println("username :" + username);
	System.out.println("password :" + password);
	System.out.println("Page02Value : " + Page02Value);
	System.out.println("Page03Value : " + Page03Value);
	System.out.println("-------------------------------");
%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>RESULT</title>
</head>
<body>
<h1>RESULT PAGE</h1>
USERNAME: <%= username %><br/>
PASSWORD: <%= password %><br/>
02PAGE VALUE: <%= Page02Value %><br/>
03PAGE VALUE: <%= Page03Value %><br/>
</body>
</html>

๐Ÿ–ฅ๏ธ ์ฝ˜์†” ์ถœ๋ ฅ ์˜ˆ์‹œ (System.out.println)

----------02PAGE---------------
username : testuser
password : 1234
-------------------------------

----------03PAGE---------------
username : testuser
password : 1234
Page02Value : 02PageValue
-------------------------------

----------RESULT---------------
username : testuser
password : 1234
Page02Value : 02PageValue
Page03Value : 03Page's Value
-------------------------------

๐ŸŒ ์›น ๋ธŒ๋ผ์šฐ์ € ์ถœ๋ ฅ ์˜ˆ์‹œ

RESULT PAGE
USERNAME: testuser
PASSWORD: 1234
02PAGE VALUE: 02PageValue
03PAGE VALUE: 03Page's Value

๐Ÿ“Š getParameter() vs getAttribute() ๋น„๊ต

ํ•ญ๋ชฉgetParameter()getAttribute()
์‚ฌ์šฉ ์œ„์น˜form ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋•ŒJSP ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ  ์‹œ
๋ฐ์ดํ„ฐ ์ถœ์ฒ˜ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ (HTML ํผ ๋“ฑ)์„œ๋ฒ„ ๋‚ด์—์„œ setAttribute๋กœ ์ €์žฅํ•œ ๊ฐ’
๋ฐ์ดํ„ฐ ์œ ์ง€ํฌ์›Œ๋“œ ์‹œ ์œ ์ง€๋จํฌ์›Œ๋“œ ์‹œ์—๋งŒ ์œ ์ง€๋จ
์‚ฌ์šฉ ์˜ˆrequest.getParameter("username")request.getAttribute("02Page")

๐Ÿ’ก ์‹ค๋ฌด ํ™œ์šฉ ์˜ˆ์‹œ

  • ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ์™„๋ฃŒ โ†’ ์ƒ์„ธ๋ณด๊ธฐ ํŽ˜์ด์ง€๋กœ ์ด๋™
  • ๋กœ๊ทธ์ธ ์„ฑ๊ณต ํ›„ โ†’ ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ ์ด๋™
  • ํ•œ ๋ฒˆ์˜ ์š”์ฒญ์œผ๋กœ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋•Œ โ†’ Forward ๋ฐฉ์‹์ด ์œ ์šฉํ•จ

๐Ÿ”ฅ ์ •๋ฆฌ

  • forward()๋Š” ์„œ๋ฒ„ ๋‚ด๋ถ€์—์„œ ํŽ˜์ด์ง€๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ, request ๊ฐ์ฒด๊ฐ€ ์œ ์ง€๋œ๋‹ค.
  • setAttribute()๋ฅผ ํ†ตํ•ด JSP ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ณ , ์ด ๊ฐ’์€ getAttribute()๋กœ ๋‹ค์Œ JSP์—์„œ ๋ฐ›์•„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • getParameter()๋Š” HTML form์—์„œ ๋„˜์–ด์˜จ ๊ฐ’์ด๊ณ , getAttribute()๋Š” ์„œ๋ฒ„ ๋‚ด๋ถ€์—์„œ ๊ณต์œ ํ•˜๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค.

๐Ÿ”— ์ฐธ๊ณ  ์ž๋ฃŒ

  • JSP ๊ณต์‹ ๋ฌธ์„œ
  • ์‹ค์Šต ๊ธฐ๋ฐ˜ RequestDispatcher ํ™œ์šฉ ์˜ˆ์ œ
  • ์ธํ”„๋Ÿฐ JSP ์„œ๋ธ”๋ฆฟ ๊ฐ•์˜

๐Ÿ’ฌ ๋А๋‚€ ์ 

์ด๋ฒˆ ์‹ค์Šต์„ ํ†ตํ•ด JSP์—์„œ Forward ํ๋ฆ„์˜ ๊ฐœ๋…๊ณผ ์‹ค์ œ ๋™์ž‘ ๋ฐฉ์‹์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ตํž ์ˆ˜ ์žˆ์—ˆ๋‹ค.

ํŠนํžˆ request ๊ฐ์ฒด๊ฐ€ ์–ด๋–ป๊ฒŒ ์œ ์ง€๋˜๊ณ , ์ค‘๊ฐ„์ค‘๊ฐ„ setAttribute๋กœ ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ๊ณผ์ •์ด ์ค‘์š”ํ•œ ํฌ์ธํŠธ์˜€๋‹ค.

ํ–ฅํ›„์—๋Š” ์ด ๊ตฌ์กฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ MVC ํŒจํ„ด์—์„œ Controller โ†’ View๋กœ์˜ Forward ํ๋ฆ„์„ ๊ตฌํ˜„ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค.


๐Ÿ“Œ ์š”์•ฝ

  • forward()๋Š” ํ•˜๋‚˜์˜ ์š”์ฒญ ํ๋ฆ„์œผ๋กœ ์—ฌ๋Ÿฌ JSP๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.
  • request ๊ฐ์ฒด๋Š” ์œ ์ง€๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์€ setAttribute()๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.
  • getParameter vs getAttribute์˜ ์ฐจ์ด๋ฅผ ๋ช…ํ™•ํžˆ ์ธ์ง€ํ•ด์•ผ ํ•œ๋‹ค.
  • Forward๋Š” ์‹ค๋ฌด์—์„œ๋„ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํ๋ฆ„ ์ œ์–ด ๋ฐฉ์‹์ด๋‹ค.

profile
Here, My Pale Blue.๐ŸŒ

0๊ฐœ์˜ ๋Œ“๊ธ€