6 ๋ถ„ ์†Œ์š”

๐Ÿ“š WEB


๐Ÿ“š JSP ( Java Server Page )

JSP ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

์ž๋ฐ” ์„œ๋ฒ„ ํŽ˜์ด์ง€ ( JSP ) ๋Š” HTML๋‚ด์— ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ์›น ์„œ๋ฒ„์—์„œ ๋™์ ์œผ๋กœ ์›น ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋Œ๋ ค์ฃผ๋Š” ์–ธ์–ด์ด๋‹ค.
Java EE ์ŠคํŽ™ ์ค‘ ์ผ๋ถ€๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—์„œ ๋™์ž‘ํ•œ๋‹ค.
์ž๋ฐ” ์„œ๋ฒ„ ํŽ˜์ด์ง€๋Š” ์‹คํ–‰์‹œ์—๋Š” ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ์‹คํ–‰๋˜๋ฏ€๋กœ ์„œ๋ธ”๋ฆฟ๊ณผ ๊ต‰์žฅํžˆ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ ์„œ๋ธ”๋ฆฟ๊ณผ๋Š” ๋‹ฌ๋ฆฌ HTML ํ‘œ์ค€์— ๋”ฐ๋ผ ์ž‘์„ฑ๋˜๋ฏ€๋กœ ์›น ๋””์ž์ธํ•˜๊ธฐ์— ํŽธ๋ฆฌํ•˜๋‹ค.

JSP ์˜ ํŠน์ง•

  • ๋™์  ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปดํฌ๋„ŒํŠธ์ด๋‹ค.
  • ํ™•์žฅ์ž๋Š” jsp์ด๋‹ค.
  • ํ‹€๋ผ์ด์–ธํŠธ(์‚ฌ์šฉ์ž)์˜ ์š”์ฒญ์— ๋™์ ์„ ๋™์ž‘์„ ํ•˜๋ฉฐ ,์‘๋‹ต์€ html๋กœ ์‘๋‹ต์„ ํ•œ๋‹ค.
  • jsp ํŒŒ์ผ์€ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์‹คํ–‰๋œ๋‹ค.
  • MVC ํŒจํ„ด์—์„œ view ์—์„œ ์ฃผ๋กœ ์ด์šฉ๋œ๋‹ค.

JSP ๋™์ž‘๊ณผ์ •


  1. jsp ํŒŒ์ผ ์š”์ฒญ
  2. ํ•ด๋‹น ์š”์ฒญ์„ ์›น ์ปจํ…Œ์ด๋„ˆ( Servlet ์ปจํ…Œ์ด๋„ˆ )์—๊ฒŒ ๋„˜๊น€
  3. ๊ธฐ์กด์— ์š”์ฒญ๋œ JSP ํŒŒ์ผ์ธ์ง€ ์ฒดํฌ
    • ์ฒ˜์Œ ์š”์ฒญ
    • Servlet java file ๋กœ ๋ณ€ํ™˜ ( ํŒŒ์‹ฑ ์ž‘์—… )
    • Servlet class compile
    • Servlet class๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ - ์ด๋ฏธ ์ž‘์—…
    • ํŒŒ์‹ฑ ๊ณผ์ • ์ƒ๋žตํ•˜๊ณ  ํด๋ž˜์Šค ํŒŒ์ผ๋กœ ์ฆ‰์‹œ ์ปดํŒŒ์ผ
  4. ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์–ด ์‹คํ–‰
  5. ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์›น ์„œ๋ฒ„์— ์ „๋‹ฌ
  6. ์ „๋‹ฌ๋ฐ›์€ ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” HTML ํŒŒ์ผ๋กœ ๋ฐ”๊พธ์–ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ ( ์›น ์„œ๋ฒ„ X )


servlet ๋ณ€ํ™˜ ํŒŒ์ผ ํ™•์ธ ( jsp ํŒŒ์ผ )
workspace > .metadata > .plugins > org.eclipse.wst.server.core > tmp() > work > catalina > localhost > project ๋ช… > org > apache > jsp

JSP ์Šคํฌ๋ฆฝํŒ… ์š”์†Œ

์„ ์–ธ ( Declaration )

๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์„ ์–ธ์ด๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธ ํ•˜๋Š” ์˜์—ญ

์–‘์‹
<%! ๋ฉค๋ฒ„๋ณ€์ˆ˜์™€ method ์ž‘์„ฑ %>

<%!
String name;

public void init(){
    name = "ํ˜ธ์•„ํ˜ธ";
}
%>

์Šคํฌ๋ฆฝํŠธ๋ฆฟ ( Scriptlet )

Client ์š”์ฒญ์‹œ ๋งค๋ฒˆ ํ˜ธ์ถœ ์˜์—ญ์œผ๋กœ Servlet์œผ๋กœ ๋ฐ˜ํ™˜ ์‹œ service() method ์— ํ•ด๋‹น๋˜๋Š” ์˜์—ญ
request, response์— ๊ด€๋ จ๋œ ์ฝ”๋“œ ๊ตฌํ˜„
์Šคํฌ๋ฆฝํŠธ๋ฆฟ ์•ˆ์—๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์—†๋‹ค.
์ด๋ฏธ service() method ์•ˆ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์„œ๋“œ์•ˆ์— ๋ฉ”์„œ๋“œ๋Š” ์ž‘์„ฑํ•  ์ˆ˜ ์—†๋‹ค.

์–‘์‹
<% java code %>

<%
for(int i=0;i<10;i++){
    out.println("<tr>");
    Strint classname = i % 2 == 0 ? "color1":"color2";
    for(int j=0; j<10; j++){
        out.println("<td class=\"" + classname + "\">" + i + " * " + j + " = " + i*j + "<\td>");
    }
    out.println("</tr>");
}
%>

ํ‘œํ˜„์‹ ( Expression )

๋ฐ์ดํ„ฐ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ถœ๋ ฅํ•  ๋•Œ ์‚ฌ์šฉ

์–‘์‹
<%= ๋ฌธ์ž์—ด%>

String name = "jjj"

์•ˆ๋…• <%= name %>!!!

-> ์•ˆ๋…• jjj!!!

์ฃผ์˜ !!!!!!
๋ฌธ์ž์—ด ๋’ค์— ์„ธ๋ฏธ์ฝœ๋ก  ์ž‘์„ฑ X


๊ฐ™์€ ํ‘œํ˜„ !!!
<%= ๋ฌธ์ž์—ด %>  ==  <% out.println(๋ฌธ์ž์—ด); %>

์ฃผ์„ ( Comment )

์ฝ”๋“œ ์ƒ์—์„œ ๋ถ€๊ฐ€ ์„ค๋ช…์„ ์ž‘์„ฑ

์–‘์‹
<%-- ์ฃผ์„ํ•  code --%>

<!-- HTML ์ฃผ์„ --!>
<%-- JSP ์ฃผ์„ --%>

HTML ์ฃผ์„์€ ์ถœ๋ ฅํ•˜๋ฉด HTML ์—์„œ๋งŒ ์ฃผ์„ ์ฒ˜๋ฆฌ ๋˜๊ณ  ์ „์ฒด์ ์ธ ๊ตฌ์กฐ์—์„œ๋Š” ์ฃผ์„์ฒ˜๋ฆฌ๊ฐ€ ์•ˆ๋œ๋‹ค.

JSP ์ง€์‹œ์ž ( Directive )

page Directive

์ปจํ…Œ์ด๋„ˆ์—๊ฒŒ ํ˜„์žฌ JSP ํŽ˜์ด์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ด๋‚˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

ํ˜•์‹
<%@ page attr1="val1" attr2="val2" ... %>
  • language
    ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉ ํ•  ์–ธ์–ด ์ง€์ • ( default : java )

  • info
    ํ˜„์žฌ JSP ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์„ค๋ช…

  • contentType
    ๋ธŒ๋ผ์šฐ์ €๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๋‚ด์šฉ์˜ MIME ํ˜•์‹ ์ง€์ • ๋ฐ ๋ฌธ์ž ์ง‘ํ•ฉ ์ง€์ • ( default : text/html;charset=ISO-8859-1 )

  • pageEncoding
    ํ˜„์žฌ JSP ํŽ˜์ด์ง€ ๋ฌธ์ž์ง‘ํ•ฉ ์ง€์ • ( default : ISO-8859-1 )

  • import
    ํ˜„์žฌ JSP ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉํ•  JAVA ํŒจํ‚ค์ง€๋‚˜ ํด๋ž˜์Šค๋ฅผ ์ง€์ •

  • session
    ์„ธ์…˜์˜ ์‚ฌ์šฉ ์œ ๋ฌด ์„ค์ • ( default : true )

  • errorPage
    ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ์— ๋Œ€์‹  ์ฒ˜๋ฆฌ๋  JSP ํŽ˜์ด์ง€ ์ง€์ •

  • isErrorPage
    ํ˜„์žฌ JSP ํŽ˜์ด์ง€๊ฐ€ ์—๋Ÿฌ ํ•ธ๋“ค๋ง ํ•˜๋Š” ํŽ˜์ด์ง€์ธ์ง€ ์ง€์ •ํ•˜๋Š” ์š”์†Œ ( default : false )

  • buffer
    ๋ฒ„ํผ์˜ ํฌ๊ธฐ ( default : 8KB )

  • autiflush
    ๋ฒ„ํผ์˜ ๋‚ด์šฉ์„ ์ž๋™์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ณด๋‚ผ ์ง€์— ๋Œ€ํ•œ ์„ค์ • ( default : true )

  • isThreadsafe
    ํ˜„์žฌ JSP ํŽ˜์ด์ง€๊ฐ€ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ๋กœ ๋™์ž‘ํ•ด๋„ ์•ˆ์ „ํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์œผ๋กœ false ์ธ ๊ฒฝ์šฐ JSP ํŽ˜์ด์ง€๋Š” SingleThread๋กœ ์„œ๋น„์Šค ๋œ๋‹ค. ( default : true )

  • extends
    ํ˜„์žฌ JSP ํŽ˜์ด์ง€๋ฅผ ๊ธฐ๋ณธ์ ์ธ ํด๋ž˜์Šค๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋กœ ๋ถ€ํ„ฐ ์ƒ์†ํ•˜๋„๋ก ๋ณ€๊ฒฝ ( default : javax.servlet.jsp.HttpJspPage )

include Directive

ํŠน์ • jsp file์„ ํŽ˜์ด์ง€์— ํฌํ•จ
์—ฌ๋Ÿฌ jsp ํŽ˜์ด์ง€์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€๋ถ„์„ jsp file๋กœ ๋งŒ๋“  ํ›„ ๋ฐ˜๋ณต ์˜์—ญ์— include ์‹œ์ผœ ๋ฐ˜๋ณต๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

ํ˜•์‹
<%@ include file="/template/header.jsp" %>

taglib Directive

JSTL ๋˜๋Š” ์‚ฌ์šฉ์ž์— ์˜ํ•ด์„œ ๋งŒ๋“  ์ปค์Šคํ…€ ํƒœ๊ทธ ๋ฅผ ์ด์šฉํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ JSP ํŽ˜์ด์ง€ ๋‚ด์— ๋ถˆํ•„์š”ํ•œ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

ํ˜•์‹
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

JSP ๊ธฐ๋ณธ ๊ฐ์ฒด

๊ธฐ๋ณธ ๊ฐ์ฒด

  • request
    HTML ํผ ์š”์†Œ์˜ ์„ ํƒ ๊ฐ’ ๋“ฑ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ •๋ณด๋ฅผ ์ฝ์–ด์˜ฌ ๋•Œ ์‚ฌ์šฉ

  • response
    ์‚ฌ์šฉ์ž ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

  • pageContext
    ๊ฐ์ข… ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ์–ป๊ฑฐ๋‚˜ forward ๋ฐ include ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ๋•Œ ์‚ฌ์šฉ

  • session
    ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์„ธ์…˜ ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
    page directive์˜ session ์†์„ฑ์„ false๋กœ ํ•˜๋ฉด ๋‚ด์žฅ ๊ฐ์ฒด๋Š” ์ƒ์„ฑ์ด ์•ˆ๋œ๋‹ค.

  • application
    ์›น ์„œ๋ฒ„์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ๋ ˆํผ๋Ÿฐ์Šคํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

  • out
    ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ output ์ŠคํŠธ๋ฆผ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ

  • config
    ํ˜„์žฌ JSP์— ๋Œ€ํ•œ ์ดˆ๊ธฐํ™” ํ™˜๊ฒฝ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

  • page
    ํ˜„์žฌ JSP ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ฐธ์กฐ ๋ณ€์ˆ˜์— ํ•ด๋‹น๋จ

  • exception
    Error๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” JSP์—์„œ isErrorPage ์†์„ฑ์„ true๋กœ ์„ค์ •ํ•˜๋ฉด exception ๋‚ด์žฅ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ๊ธฐ๋ณธ์€ false๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค. ์ „๋‹ฌ๋œ ์˜ค๋ฅ˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋‚ด์žฅ ๊ฐ์ฒด

๊ธฐ๋ณธ ๊ฐ์ฒด์˜ ์˜์—ญ ( Scope )

  • pageContext
    • ํ•˜๋‚˜์˜ JSP ํŽ˜์ด์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์˜์—ญ.
    • ํ•œ๋ฒˆ์˜ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ๋Œ€ํ•˜์—ฌ ํ•˜๋‚˜์˜ JSP ํŽ˜์ด์ง€๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉฐ, ์ด๋•Œ ๋‹จ ํ•œ ๊ฐœ์˜ page ๊ฐ์ฒด๋งŒ ๋Œ€์‘์ด ๋œ๋‹ค.
    • ํŽ˜์ด์ง€ ์˜์—ญ์— ์ €์žฅํ•œ ๊ฐ’์€ ํŽ˜์ด์ง€๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ์‚ฌ๋ผ์ง„๋‹ค.
    • ์ปค์Šคํ…€ ํƒœ๊ทธ์—์„œ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • request
    • ํ•˜๋‚˜์˜ HTTP ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์˜์—ญ.
    • ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญ์„ ํ•  ๋•Œ ๋งˆ๋‹ค ์ƒˆ๋กœ์šด request ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋จ
    • request ์˜์—ญ์— ์ €์žฅํ•œ ์†์„ฑ์€ ๊ทธ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์ด ์™„๋ฃŒ๋˜๋ฉด ์‚ฌ๋ผ์ง„๋‹ค.
  • session
    • ํ•˜๋‚˜์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ๊ด€๋ จ๋œ ์˜์—ญ
    • ๊ฐ™์€ ์›น ๋ธŒ๋ผ์šฐ์ € ๋‚ด์—์„œ ์š”์ฒญ๋˜๋Š” ํŽ˜์ด์ง€๋“ค์€ ๊ฐ™์€ session๋“ค์„ ๊ณต์œ ํ•˜๊ฒŒ ๋จ
    • ๋กœ๊ทธ์ธ ์ •๋ณด ๋“ฑ์„ ์ €์žฅํ•œ๋‹ค
  • application
    • ํ•˜๋‚˜์˜ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ด€๋ จ๋œ ์˜์—ญ
    • ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๋‹น 1๊ฐœ์˜ application ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋จ
    • ๊ฐ™์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์š”์ฒญ๋˜๋Š” ํŽ˜์ด์ง€๋“ค์€ ๊ฐ™์€ application๊ฐ์ฒด๋ฅผ ๊ณต์œ ํ•จ

๊ธฐ๋ณธ ๊ฐ์ฒด์˜ ์˜์—ญ ( Scope ) - ๊ณตํ†ต ๋ฉ”์„œ๋“œ

servlet๊ณผ jspํŽ˜์ด์ง€ ๊ฐ„์— ํŠน์ • ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ฑฐ๋‚˜ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ง€์›

  • void setAttribute(String name, Object value)
    ๋ฌธ์ž์—ด name ์ด๋ฆ„์œผ๋กœ Objectํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.
    Object ํ˜•์ด๋ฏ€๋กœ ์–ด๋– ํ•œ java ๊ฐ์ฒด๋„ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • Object getAttribute(String name)
    ๋ฌธ์ž์—ด name์— ํ•ด๋‹นํ•˜๋Š” ์†์„ฑ ๊ฐ’์ด ์žˆ๋‹ค๋ฉด Object ํ˜•ํƒœ๋กœ ๊ฐ€์ ธ์˜ค๊ณ  ์—†์œผ๋ฉด null์„ ๋ฆฌํ„ดํ•œ๋‹ค.
    ๋”ฐ๋ผ์„œ ๋ฆฌํ„ด ๊ฐ’์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ํ˜• ๋ณ€ํ™˜์ด ํ•„์š”ํ•˜๋‹ค.

  • Enumeration getAttributeNames()
    ํ˜„์žฌ ๊ฐ์ฒด์— ์ €์žฅ๋œ ์†์„ฑ๋“ค์˜ ์ด๋ฆ„์„ Enumeration ํ˜•ํƒœ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค.

  • void removeAttribute(String name)
    ๋ฌธ์ž์—ด name์— ํ•ด๋‹นํ•˜๋Š” ์†์„ฑ์„ ์‚ญ์ œํ•œ๋‹ค.

Web Page ์ด๋™

forward ( request, response )

  • ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

RequestDispatcher dispatcher = request.getRequestDistpatcher(path);
dispatcher.forward(request, response);

  • ์ด๋™ ๋ฒ”์œ„
    ๋™์ผ ์„œ๋ฒ„ (project) ๋‚ด ๊ฒฝ๋กœ

  • location bar
    ๊ธฐ์กด URL ์œ ์ง€ ( ์‹ค์ œ ์ด๋™๋˜๋Š” ์ฃผ์†Œ ํ™•์ธ ๋ถˆ๊ฐ€ )

  • ๊ฐ์ฒด
    ๊ธฐ์กด์˜ request ์™€ response ๊ฐ€ ๊ทธ๋Œ€๋กœ ์ „๋‹ฌ

  • ์†๋„
    ๋น„๊ต์  ๋น ๋ฆ„

  • ๋ฐ์ดํ„ฐ ์œ ์ง€
    request์˜ setAttribute(name, value)๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ

sendRedirect ( location )

  • ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

response.sendRedirect( location );

  • ์ด๋™ ๋ฒ”์œ„
    ๋™์ผ ์„œ๋ฒ„ ํฌํ•จ ํƒ€ URL ๊ฐ€๋Šฅ

  • location bar
    ์ด๋™ํ•˜๋Š” page๋กœ ๋ณ€๊ฒฝ

  • ๊ฐ์ฒด
    ๊ธฐ์กด์˜ request์™€ response๋Š” ์†Œ๋ฉธ๋˜๊ณ , ์ƒˆ๋กœ์šด request์™€ response๊ฐ€ ์ƒ์„ฑ

  • ์†๋„
    forward()์— ๋น„ํ•ด ๋Š๋ฆผ

  • ๋ฐ์ดํ„ฐ ์œ ์ง€
    request๋กœ๋Š” data ์ €์žฅ ๋ถˆ๊ฐ€๋Šฅ
    session์ด๋‚˜ cookie๋ฅผ ์ด์šฉ



forward ์™€ redirect์˜ ๋น„๊ต
forward ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ตœ์ดˆ๋กœ ์š”์ฒญํ•œ ์š”์ฒญ์ •๋ณด๊ฐ€ ๋‹ค์Œ URL์—์„œ๋„ ์œ ํšจํ•˜๋‹ค.
redirect ๋Š” ์ตœ์ดˆ์˜ request์™€ response ๊ฐ์ฒด๋Š” ์œ ํšจํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋œ๋‹ค.
์ด๋ ‡๊ฒŒ ์ •์˜๋ฅผ ์„ค๋ช…ํ•˜๋ฉด ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ ๋  ์ˆ˜๋„ ์žˆ๋‹ค.
๊ทธ๋ž˜์„œ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ๋‹ค.
ํ•œ ๊ฒŒ์‹œํŒ์— ๊ธ€์“ฐ๊ธฐ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ํ•˜์ž. ๋งŒ์•ฝ forward๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ๋ถ€๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ๊ธ€์“ฐ๊ธฐ ํŽ˜์ด์ง€์—์„œ ์ƒˆ๋กœ๊ณ ์นจ์„ ๋ˆ„๋ฅธ๋‹ค๋ฉด ์š”์ฒญ ์ •๋ณด๊ฐ€ ๊ณ„์† ์œ ํšจํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฒญ์ด ์—ฌ๋Ÿฌ๋ฒˆ ์ „๋‹ฌ ๋˜์–ด ๋™์ผํ•œ ๊ฒŒ์‹œ๊ธ€์ด ์—ฌ๋Ÿฌ ๋ฒˆ ๋“ฑ๋ก๋  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ redirect๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ƒˆ๋กœ๊ณ ์นจ์„ ๋ˆ„๋ฅด๋ฉด ๊ธฐ์กด ์š”์ฒญ ์ •๋ณด๊ฐ€ ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.
๊ทธ๋ ‡๋‹ค๊ณ  ๋ชจ๋“  ๊ฒƒ์— redirect ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
์ฃผ๋กœ ์‹œ์Šคํ…œ์— ๋ณ€ํ™”๋ฅผ ์ฃผ์ง€ ์•Š๋Š” ๊ฒƒ์€ forward, ๋ณ€ํ™”๋ฅผ ์ฃผ๋Š” ๊ฒƒ์€ redirect ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
forward ๋Š” ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๋Š” ๋‹จ์ˆœ ์š”์ฒญ ( ๊ธ€ ๋ชฉ๋ก ๋ณด๊ธฐ, ๊ฒ€์ƒ‰ ) ๋“ฑ์— ์‚ฌ์šฉ๋˜๊ณ 
redirect ๋Š” ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ๋Š” ์š”์ฒญ ( ํšŒ์›๊ฐ€์ž…, ๊ธ€์“ฐ๊ธฐ ) ๋“ฑ์— ์‚ฌ์šฉ๋œ๋‹ค.

JSP ๋งˆ๋ฌด๋ฆฌ

JSP์— ๋Œ€ํ•ด ๋ฐฐ์›Œ๋ณด์•˜๋‹ค.
HTML์•ˆ์— java๋ฅผ ๋„ฃ๋Š”๊ฑฐ๋ผ์„œ ํ™•์‹คํžˆ servlet ๋ณด๋‹ค๋Š” ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ  ๋” ๊ฐ„๋‹จํ–ˆ๋‹ค.
ํŠนํžˆ ์ž๋ฐ”์ฝ”๋“œ๋ฅผ ๋„ฃ๋Š”๋ถ€๋ถ„์ด ๊ฐ„๋‹จํ•ด์ ธ์„œ ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…์„ ํ”ผํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ JSP์—์„œ๋„ ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…๋“ค์ด ์žˆ์–ด ๊ทธ๊ฒƒ์€ jstl์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.
๊ทธ๋ฆฌ๊ณ  JSP ๊นŒ์ง€ ๋ฐฐ์šฐ๋‹ˆ ์ •๋ง ๋™์ ์ธ ์›นํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.
MVC ๋ชจ๋ธ์„ ํ™œ์šฉํ•˜์—ฌ ์‹ค์Šต๋„ ํ•ด๋ณด์•˜๋Š”๋ฐ ํ™•์‹คํžˆ ๋ณต์žกํ•ด์กŒ๋‹ค.
์•ฝ์†๋˜์–ด์ ธ์žˆ๋Š” ๊ตฌ์กฐ๋ผ ๋งŽ์ด ๋งŒ๋“ค์–ด๋ณด๋ฉฐ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

ํƒœ๊ทธ: , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: