[MVC] ์„œ๋ธ”๋ฆฟ, JSP, MVC

Updated:

Categories:

Tags: , ,

๐Ÿ“Œ ๊ฐœ์ธ์ ์ธ ๊ณต๊ฐ„์œผ๋กœ ๊ณต๋ถ€๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋ณต์Šตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
์ •ํ™•ํ•˜์ง€ ์•Š์€ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ๋ฐ”๋ž๋‹ˆ๋‹ค :๐Ÿ˜ธ
[ํ‹€๋ฆฐ ๋‚ด์šฉ์€ ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ๋ณต๋ฐ›์œผ์‹ค๊ฑฐ์—์š”]

์„œ๋ธ”๋ฆฟ(Servlet)

  • ์„œ๋ธ”๋ฆฟ์€ ์ž๋ฐ”๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜ > ์—ฌ์ „ํžˆ ์‚ฌ์šฉ
  • ์„œ๋ธ”๋ฆฟ์€ ์›น ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋Š” ์ž๋ฐ” ํด๋ž˜์Šค๋กœ, HTTP ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋™์ ์ธ ์›น ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ์ˆ 
  • ์„œ๋ธ”๋ฆฟ์€ ์ž๋ฐ” ํ‘œ์ค€ API์ธ Servlet API๋ฅผ ์ œ๊ณต
  • ๋‹จ์ 
    • ์„œ๋ธ”๋ฆฟ์˜ ๊ธฐ๋ฐ˜์ด ์ž๋ฐ” ํด๋ž˜์Šค๋ผ์„œ ์ž๋ฐ”์ฝ”๋“œ์™€ HTML์ฝ”๋“œ๋ฅผ ๊ฐ™์ด ์“ฐ๋Š”๋ฐ HTML ์ฝ”๋“œ์˜ ์ž‘์„ฑ์ด ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กญ๊ณ  ํž˜๋“ฆ
  • ์ž๋ฐ”์ฝ”๋“œ ๋ฒ ์ด์Šค + HTML ์ž๋ฐ”์Šคํƒ€์ผ๋กœ ์‚ฝ์ž… : html์„ ๋ฌธ์ž์—ด๋กœ ์‚ฌ์šฉ, ๋ณต์žก๋„ ์ฆ๊ฐ€

JSP(Java Server Pages)

  • JSP์—์„œ ์ž‘์„ฑํ•œ ๋ฌธ์„œ๊ฐ€ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ์‹คํ–‰๋จ
  • HTML ๋ฒ ์ด์Šค ์•ˆ์— ์ž๋ฐ”๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์šฉํ•˜์—ฌ ์›น ํŽ˜์ด์ง€๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ์ˆ 
  • JSP๋Š” ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ผ๋ฐ˜ ํ…์ŠคํŠธ์™€ ํ•จ๊ป˜ ์ž‘์„ฑํ•˜๋ฉฐ, ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‹คํ–‰๋จ
  • JSP๋Š” ์ž๋ฐ” ํ‘œ์ค€ API์ธ JSP API๋ฅผ ์ œ๊ณต
  • HTML ์ฝ”๋“œ ๋ฒ ์ด์Šค + ์ž๋ฐ”์ฝ”๋“œ ์‚ฝ์ž…

Spring

  • 2004๋…„ - ์Šคํ”„๋ง(Spring) ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋“ฑ์žฅ
  • ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ
  • spring ์ด์ „์˜ ์›น๊ฐœ๋ฐœ์€ ์ถฅ๊ณ  ์“ธ์“ธํ–ˆ์ง€๋งŒ ์Šคํ”„๋ง ๋‚˜์˜ค๋ฉด์„œ ์ด์ œ ๋ด„์ด ๋˜์—ˆ๋‹ค๋Š” ๋œป์—์„œ Spring
  • ์Šคํ”„๋ง์˜ ๋Œ€ํ‘œ๊ธฐ์ˆ โ‡’ DI(Dependency Injection)์™€ AOP(Aspect-Oriented Programming : ๊ด€์ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ) ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋”์šฑ ํŽธ๋ฆฌํ•˜๊ฒŒ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ

MVC Architecture

  1. ์ž๋ฐ”์›นํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜.
  2. ๊ฐ๊ฐ์˜ ์—ญํ• ์— ๋”ฐ๋ผ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ํ™•์žฅ์„ฑ, ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ
    • Model : ์‹ค์ œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ๋ถ€๋ถ„ , java
    • ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„
    • ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ์—ญํ• ์„ ํ•จ
    • ๋ณดํ†ต DAO(Data Access Object) ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„
      - View: jsp, ์š”์ฆ˜์€ ์ œ์ด์Šจ ํƒ€์ž…์œผ๋กœ ๋ณด๋‚ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์„œ ๋ทฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ.
    • ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ๋ถ€๋ถ„
    • ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œ
    • HTML, JSP ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„
      - Controller: ์„œ๋ธ”๋ฆฟ
    • Model๊ณผ View๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„.
    • ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›์•„์„œ Model์„ ํ˜ธ์ถœํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ View์— ์ „๋‹ฌํ•˜์—ฌ ์‘๋‹ต์„ ์ƒ์„ฑ
    • ๋ณดํ†ต Servlet์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„.

MVC ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ์˜ ๊ตฌ์กฐ๊ฐ€ ๋ช…ํ™•ํ•ด์ ธ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•ด์ง€๋ฉฐ, ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ํ™•์žฅ์„ฑ๋„ ๋†’์•„์ง.
๋˜ํ•œ ๊ฐœ๋ฐœ์ž ๊ฐ„ ํ˜‘์—…์ด ์šฉ์ดํ•ด์ง€๊ณ , ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ์ข‹์•„์ ธ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ

์„œ๋ธ”๋ฆฟ(Servlet)

๊ฐœ๋ฐœํ• ๋•Œ ์„œ๋ธ”๋ฆฟ ๋ชฐ๋ผ๋„ ๋˜๊ธดํ•˜์ง€๋งŒ ๋™์ž‘์›๋ฆฌ๋Š” ๋‚˜์ค‘์— ์•Œ๊ธด ํ•ด์•ผ ํ•จ.

๋‹น์žฅ์€ ๊นŠ๊ฒŒ ์•Œ์•„๋‘์ง€๋Š” ์•Š์•„๋„๋จ.

์„œ๋ธ”๋ฆฟ์„ ๋ชจ๋ฅธ๋‹ค๋ฉด, ์„œ๋ธ”๋ฆฟ์ปจํ…Œ์ด๋„ˆ๋„ ๋ชจ๋ฅด๊ณ  ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํ†ฐ์บฃ์„ ๋ชจ๋ฅธ๋‹ค๋Š” ๊ฒƒ์ด ๋จ์œผ๋กœ

๋Œ์•„๊ฐ€๋Š” ๋™์ž‘๊ณผ์ • ์›๋ฆฌ ์กฐ์ฐจ ๋ชจ๋ฅธ์ฑ„๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋จ.

ํ†ฐ์บฃ์€ ์„œ๋ธ”๋ฆฟ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์Œ

  1. ์„œ๋ธ”๋ฆฟ์ด๋ž€
    1. ๋™์  ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ปดํฌ๋„ŒํŠธ (์›น ํŽ˜์ด์ง€๋ฅผ ์ž๋ฐ” ์–ธ์–ด๋กœ๋งŒ ๊ตฌ์„ฑ)
    2. .java ํ™•์žฅ์ž
    3. ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋™์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ณ  ์‘๋‹ต์€ html์„ ์ด์šฉ
    4. java thread๋ฅผ ์ด์šฉํ•˜์—ฌ ๋™์ž‘
    5. MVCํŒจํ„ด์—์„œ Controller๋กœ ์ด์šฉ
    6. JSP ํŒŒ์ผ๋„ ์›น ์„œ๋ฒ„ ๋‚ด์—์„œ Servlet์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์‹คํ–‰๋จ.
    7. ์ž๋™ ๋ณ€ํ™˜๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋˜์ง€๋งŒ, ์ง์ ‘ Servlet์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ ๋˜ํ•œ ๊ฐ€๋Šฅ
  2. ์„œ๋ธ”๋ฆฟ ๋งตํ•‘

    - ์ž๋ฐ” ํด๋ž˜์Šค๋กœ ์š”์ฒญ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— - ์ง€์ •๋œ url์„ ํ†ตํ•ด ๋งตํ•‘ ์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. - ๋งตํ•‘ํ•œ url๋กœ ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ, ํŠน์ • ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ์ปดํŒŒ์ผ์„ ์ง„ํ–‰ํ•˜๊ณ  - ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ณด๋‚ด์ฃผ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉ - ๋˜ํ•œ ์„œ๋ฒ„ ๋‚ด๋ถ€ ๊ฒฝ๋กœ๊ฐ€ ๋…ธ์ถœ๋˜์–ด ๋ณด์•ˆ์— ์œ„ํ—˜์ด ์ƒ๊ธฐ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ด ์ฃผ๊ธฐ๋„ ํ•จ

    2.1 URL ๋งตํ•‘ ๋ฐฉ๋ฒ• 2๊ฐ€์ง€

    ํŠน์ • URL ์š”์ฒญ์ด ํ•ด๋‹น ์„œ๋ธ”๋ฆฟ์œผ๋กœ ์ „๋‹ฌ๋˜๋„๋ก ์„ค์ •ํ•˜๋Š” ๊ณผ์ •

    1. annotation - ํด๋ž˜์Šค ์„ ์–ธ๋ถ€ ๋ฐ”๋กœ ์œ„์— ์ž‘์„ฑ
      1. ์˜ˆ์ œ
      • /banana ๋ผ๋Š” ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ServletBasic ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
      • HttpServlet ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์œผ๋ฉด, ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ๋ฉ”์„œ๋“œ๊ฐ€ ์ œ๊ณต
        1. ์˜ˆ์ œ
        1
        2
        3
        4
        
         @WebServlet("/hello")
         public class HelloWorldServlet extends HttpServlet {
             // doGet ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
             }
        
    2. web.xml ์„ค์ •ํŒŒ์ผ ์ˆ˜์ • โ€‹

      • ์›น ์„œ๋ฒ„์˜ ์ „๋ฐ˜์ ์ธ ์„ค์ •์„ ๋‹ด๋‹นํ•˜๋Š” web.xml ํŒŒ์ผ์— ์ง์ ‘ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ์‹
      • ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค๋ฅผ ๋จผ์ € ๋“ฑ๋กํ•˜๊ณ , ํ•ด๋‹น ์„œ๋ธ”๋ฆฟ์ด ์–ด๋–ค url์— ๋™์ž‘ํ•˜๊ฒŒ ํ•  ์ง€๋ฅผ ๋งตํ•‘ํ•˜๋Š” ๋ฐฉ์‹.

    ์˜ˆ์ œ

    1
    2
    3
    4
    5
    6
    7
    8
    
     <servlet>
         <servlet-name>HelloWorldServlet</servlet-name>
         <servlet-class>HelloWorldServlet</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>HelloWorldServlet</servlet-name>
         <url-pattern>/hello</url-pattern>
     </servlet-mapping>
    

์„œ๋ธ”๋ฆฟ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ

  1. ์„œ๋ธ”๋ฆฟ์€ HttpServlet ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„
  2. ์ฃผ์š” ๋ฉ”์„œ๋“œ
    1. doGet(HttpServletRequest request, HttpServletResponse response): GET ์š”์ฒญ์„ ์ฒ˜๋ฆฌ
    2. doPost(HttpServletRequest request, HttpServletResponse response): POST ์š”์ฒญ์„ ์ฒ˜๋ฆฌ
  3. ์˜ˆ์ œ

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
     import java.io.*;
     import javax.servlet.*;
     import javax.servlet.http.*;
        
     public class HelloWorldServlet extends HttpServlet {
         protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
             response.setContentType("text/html");
             PrintWriter out = response.getWriter();
             out.println("<h1>Hello, World!</h1>");
         }
     }
    
    • ์ถ”์ƒ๋ฉ”์„œ๋“œ
    • ์ƒ์†๋ฐ›์•„์„œ ์‚ฌ์šฉํ•จ.
    • html์„ ๋ฐ˜ํ™˜ํ•˜๋‹ˆ๊นŒ ๋ฌธ์ž์—ด๋กœ

์„œ๋ธ”๋ฆฟ ์ƒ๋ช…์ฃผ๊ธฐ

  1. ๋กœ๋“œ์™€ ์ดˆ๊ธฐํ™”: ์„œ๋ธ”๋ฆฟ์ด ์ฒ˜์Œ ํ˜ธ์ถœ๋  ๋•Œ init() ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋จ
  2. ์š”์ฒญ ์ฒ˜๋ฆฌ: ๊ฐ ์š”์ฒญ๋งˆ๋‹ค service() ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ , ์ด ๋ฉ”์„œ๋“œ๋Š” ์š”์ฒญ ์œ ํ˜•์— ๋”ฐ๋ผ doGet(), doPost() ๋“ฑ์„ ํ˜ธ์ถœํ•จ
  3. ์ข…๋ฃŒ: ์„œ๋ฒ„๊ฐ€ ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜ ์„œ๋ธ”๋ฆฟ์ด ์–ธ๋กœ๋“œ๋  ๋•Œ destroy() ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ
  4. ์˜ˆ์ œ

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
     public class LifecycleServlet extends HttpServlet {
         public void init() throws ServletException {
             // ์ดˆ๊ธฐํ™” ์ž‘์—…
         }
        
         protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
             // ์š”์ฒญ ์ฒ˜๋ฆฌ
         }
        
         public void destroy() {
             // ์ข…๋ฃŒ ์ž‘์—…
         }
     }
    

HTTP ์š”์ฒญ๋ฐฉ์‹

  • GET: ๋ฐ์ดํ„ฐ๋ฅผ URL์— ํฌํ•จํ•˜์—ฌ ์ „์†ก.
  • POST: ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญ ๋ณธ๋ฌธ์— ํฌํ•จํ•˜์—ฌ ์ „์†ก.
  • ์˜ˆ์ œ

    1
    2
    3
    4
    5
    
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          response.setContentType("text/html");
          PrintWriter out = response.getWriter();
          out.println("<h1>Response from Servlet</h1>");
      }
    

JSP

  1. ๋™์  ์›น์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปดํฌ๋„ŒํŠธ (HTML์— Java ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ๋™์ ์ธ ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ฌ)
    1. ํ•˜์ง€๋งŒ ์ด ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์ „๋‹ฌํ•˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” Java ์–ธ์–ด๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ™”๋ฉด์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๊ณ , ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋‚ผ ์ˆ˜ ์—†์Œ
    2. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— JSP ํŒŒ์ผ์€ ์›น ์„œ๋ฒ„์—์„œ Servlet์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„์— ์‹คํ–‰๋œ๋‹ค.
    3. JSP ํŒŒ์ผ์„ Servlet์œผ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ, ์–ด๋–ค ๋ถ€๋ถ„์ด ํ…์ŠคํŠธ/HTML์ธ์ง€, Java ์ฝ”๋“œ์ธ์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ JSP ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. MVC ํŒจํ„ด์˜ View๋กœ ์ด์šฉ๋จ.
  3. .jsp ํ™•์žฅ์ž
  4. ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋™์ ์œผ๋กœ ์ž‘์šฉ, ์‘๋‹ต์€ HTML ์ด์šฉ

JSP ํƒœ๊ทธ

  1. Scriptlet

    • JSP ํŽ˜์ด์ง€์—์„œ Java ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์š”์†Œ ์ค‘ ๊ฐ€์žฅ ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ํƒœ๊ทธ
    • Scriptlet์— ์ž‘์„ฑํ•œ ๋‚ด์šฉ์€ Servlet ๋ณ€ํ™˜ ์‹œ ๋ฉ”์„œ๋“œ ๋‚ด์— ์กด์žฌ
    • ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์€ ๊ฐ€๋Šฅ, ๋ฉ”์„œ๋“œ ์™ธ๋ถ€ ๋ฌธ๋ฒ•์€ ์ž‘์„ฑ ๋ถˆ๊ฐ€๋Šฅ
  2. Expression

    โ€‹

    โ€‹ <% ~~JAVA~ %>

    • JSP ํŽ˜์ด์ง€ ๋‚ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’ ๋˜๋Š” ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ๊ฒฐ๊ณผ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.
    • ๊ฒฐ๊ณผ ๊ฐ’์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ String์ด๋ฉฐ, ์„ธ๋ฏธ์ฝœ๋ก ์€ ์ž‘์„ฑํ•˜์ง€ ์•Š์Œ
    • Servlet์—์„œ out.println(); ๋ฉ”์„œ๋“œ๋กœ ๋ณ€ํ™˜ โ‡’ out.println()์€ ๋ธŒ๋ผ์šฐ์ €์— ์ถœ๋ ฅ์„ ๋‹ด๋‹นํ•˜๋Š” JspWriter๋ผ๋Š” ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ
    • JSP๋„ ์‹คํ–‰ํ•  ๋•Œ๋Š” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•จ.
  3. Declaration

    • JSP ํŽ˜์ด์ง€ ๋‚ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜ ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉ.
    • Declaration์— ์„ ์–ธ๋œ ๋‚ด์šฉ์€ Servlet ๋ณ€ํ™˜ ์‹œ ํด๋ž˜์Šค ๋ธ”๋ก์— ์œ„์น˜ํ•จ.
    • ํด๋ž˜์Šค ๋ธ”๋ก์— ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์€ ๋ชจ๋‘ ๊ฐ€๋Šฅ.
    • ํŒŒ์ผ๋ช…์œผ๋กœ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , ๊ฐ์ฒด๊ฐ€ ์œ ์ง€ ๋˜๋Š” ๋™์•ˆ์— ์‚ฌ์šฉํ•  ๋‚ด์šฉ๋“ค์„ ์„ ์–ธ
  4. Directive : JSP ํŽ˜์ด์ง€์˜ ์ „์ฒด์ ์ธ ์†์„ฑ์„ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉ

    โ€‹

    1. page

      • jsp ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ง€์ •
      • JSP๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ๋ฌธ์„œ์˜ ํƒ€์ž…, ์ž„ํฌํŠธ, ์—๋Ÿฌ ํŽ˜์ด์ง€ ๋“ฑ ํŽ˜์ด์ง€์—์„œ ํ•„์š”๋กœ ํ•˜๋Š” ์ •๋ณด๋ฅผ ์„ค์ •
    2. include
      • JSP ํŽ˜์ด์ง€์˜ ํŠน์ • ์˜์—ญ์— ๋‹ค๋ฅธ ๋ฌธ์„œ๋ฅผ ํฌํ•จ์‹œํ‚ด
    3. taglib
      • ์™ธ๋ถ€ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์ •ํ•ด์„œ ์‚ฌ์šฉํ•  ๋•Œ ์„ ์–ธ
  5. Comments

    • ์ฃผ์„ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
    • HTML๊ณผ JSP ์ฃผ์„์ด ๊ฐ๊ฐ ๋ณ„๋„๋กœ ์ €์žฅ
    • HTML ์ฃผ์„์€ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ํŽ˜์ด์ง€ ์†Œ์Šค๋ณด๊ธฐ๋ฅผ ํ•˜๋ฉด ์ฃผ์„๋„ ๊ฐ™์ด ํ‘œ๊ธฐ๋˜์ง€๋งŒ JSP ์ฃผ์„์€ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์†Œ์Šค ๋ณด๊ธฐ๋ฅผ ์ง„ํ–‰ํ•ด๋„ ๋“œ๋Ÿฌ๋‚˜์ง€ ์•Š์Œ

JSP ํŒŒ์ผ์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์ฒ˜๋ฆฌ ์ˆœ์„œ

  1. JSP ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋ฉด ์›น ์„œ๋ฒ„์—์„œ ์ผ๋‹จ JSP ํŒŒ์ผ์„ Java ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜
  2. ๋ณ€ํ™˜ ๊ณผ์ •์—์„œ ์ž‘์„ฑํ•œ JSP ํƒœ๊ทธ์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ๋ฐฐ์น˜
  3. HTML๊ณผ ํ…์ŠคํŠธ ๋“ฑ๋„ ์ „๋ถ€ ์ž๋ฐ” ์ฝ”๋“œํ™”
  4. ๊ทธ ํ›„ ํŒŒ์ผ์„ ์ปดํŒŒ์ผ ํ•˜๊ณ  HTML๋กœ ์‘๋‹ต ์‹œํ‚ด

์ฟ ํ‚ค์™€ ์„ธ์…˜

์˜›๋‚ ์—” ์„ธ์…˜์„ ๋” ๋งŽ์ด ์“ฐ๊ณ  ์š”์ƒˆ๋Š” JSON TOKEN์„ ๋” ๋งŽ์ด ์‚ฌ์šฉ.

์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ณด์•ˆ ๋•Œ๋ฌธ, ์„ธ์…˜์€ ๊ณต์œ ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Œ

์„ธ์…˜ ์•ž์— ์„œ๋ฒ„๋ฅผ ๋†”๋‘๋Š” ๊ฑธ๋กœ ๋ณด์™„ ๊ฐ€๋Šฅ.

์ฟ ํ‚ค๋ž€?

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

    • ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์•”ํ˜ธํ™”๋‚˜ ์•ˆ์ „ํ•œ ์ „์†ก์„ ์œ„ํ•œ HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋“ฑ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๊ฑฐ๋‚˜ ์ถ”์ ํ•˜๋Š” ์ฟ ํ‚ค์˜ ๊ฒฝ์šฐ์—๋Š” ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ๊ด€๋ จ ๋ฒ•๋ฅ  ๋ฐ ๊ทœ์ •์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•จ

์„ธ์…˜์ด๋ž€?

  • ์„ธ์…˜๋„ ์ฟ ํ‚ค์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„œ๋ฒ„์™€์˜ ๊ด€๊ณ„๋ฅผ ์œ ์ง€ํ•˜์ง€ ์œ„ํ•œ ์ˆ˜๋‹จ
  • ๋‹จ, ์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ํด๋ผ์ด์–ธํŠธ์˜ ํŠน์ • ์œ„์น˜์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์„œ๋ฒ„์ƒ์— ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ์กด์žฌํ•จ
  • ์„œ๋ฒ„๋‹น ํ•˜๋‚˜์˜ ์„ธ์…˜ ๊ฐ์ฒด๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ(๋ธŒ๋ผ์šฐ์ € ๋ณ„๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์„ธ์…˜์„ ์‚ฌ์šฉ)
  • ์„ธ์…˜ ๊ฐ์ฒด๋Š” ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์„ ์ข…๋ฃŒํ•˜๋ฉด ์†Œ๋ฉธํ•ฉ๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์„ธ์…˜์€ ์„œ๋ฒ„์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ์ฟ ํ‚ค๋ณด๋‹ค ๋ณด์•ˆ์ด ์ข‹๊ณ , ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ํ•œ๊ณ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ์„ธ์…˜์€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ž๋™ ์ƒ์„ฑ๋˜์–ด ๊ณ ์œ ํ•œ ID๊ฐ’์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋„˜๊ฒจ์ฃผ๋ฉฐ, ์ด๊ฒƒ์€ ์ฟ ํ‚ค์— ์ €์žฅ๋จ
  • JSP์—์„œ๋Š” session์ด๋ผ๋Š” ๋‚ด์žฅ ๊ฐ์ฒด๋ฅผ ์ง€์›ํ•˜์—ฌ ์„ธ์…˜์˜ ์†์„ฑ์„ ์„ค์ •๊ฐ€

์ฟ ํ‚ค VS ์„ธ์…˜

  • ์ฟ ํ‚ค ๋Œ€์‹  ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ 
    • ์„ธ์…˜์ด ๋ณด์•ˆ์ด ๋” ์ข‹์•„์„œ
    • ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์ฐจ๋‹จํ•œ ๊ฒฝ์šฐ์—๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์ฟ ํ‚ค์˜ ์ด๋ฆ„์ด๋‚˜ ๋ฐ์ดํ„ฐ๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ ๋˜๊ธฐ ๋•Œ๋ฌธ์— HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ค‘๊ฐ„์—์„œ ๋ˆ„๊ตฐ๊ฐ€ ์ฟ ํ‚ค์˜ ๊ฐ’์„ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ์Œ
  • ์„ธ์…˜์€ ์˜ค์ง ์„œ๋ฒ„์—์„œ๋งŒ ์ €์žฅ ๋จ โ‡’ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ ์ข‹์Œ
  • ๋Œ€์‹  ์„ธ์…˜์€ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๊ณต์œ ํ•  ์ˆ˜ ์—†๋Š” ๋‹จ์ .
  • ์ฟ ํ‚ค๋Š” ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์—์„œ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํฌํ„ธ์‚ฌ์ดํŠธ๋“ค์€ ์ฟ ํ‚ค์— ๋กœ๊ทธ์ธ ๋ฐฉ์‹์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•จ.

Application ๋‚ด์žฅ ๊ฐ์ฒด

  • ํŠน์ • ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํฌํ•จ๋œ ๋ชจ๋“  JSP ํŽ˜์ด์ง€๋Š” ํ•˜๋‚˜์˜ application ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ๊ณต์œ 
  • application ๊ฐ์ฒด๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์— ๊ฑธ์ณ์„œ ์‚ฌ์šฉ๋˜๋Š” ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Œ
  • ์ƒ๋ช… ์ฃผ๊ธฐ
    • request ๊ฐ์ฒด๋Š” ์š”์ฒญ ์˜์—ญ๋งˆ๋‹ค ์ƒ์„ฑ๋˜๊ณ  ์†Œ๋ฉธ๋จ
    • session ๊ฐ์ฒด๋Š” ๋ธŒ๋ผ์šฐ์ €๋ณ„๋กœ ์ƒ์„ฑ๋˜๊ณ  ์†Œ๋ฉธ
    • application ๊ฐ์ฒด๋Š” ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์ƒ์„ฑ๋˜๊ณ , ์„œ๋ฒ„๊ฐ€ ๊บผ์งˆ ๋•Œ ์†Œ๋ฉธ๋จ

์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฐฉ๋ฒ•

  1. ์ง์ ‘ ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ
    1. JAVA์˜ try-catch๋ฌธ ์‚ฌ์šฉ
  2. ์—๋Ÿฌ๋ฅผ ์ฒ˜๋ฆฌํ•  ํŽ˜์ด์ง€๋ฅผ ๋”ฐ๋กœ ์ง€์ •ํ•˜๊ธฐ
    1. JSP๋Š” ์‹คํ–‰ ๋„์ค‘ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ํ†ฐ์บฃ ๊ธฐ๋ณธ ์—๋Ÿฌํ™”๋ฉด ๋Œ€์‹  ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง€์ •ํ•œ JSPํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ
    2. ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ณด์—ฌ์ค„ JSPํŽ˜์ด์ง€๋Š” ํŽ˜์ด์ง€ ์ง€์‹œ์ž(directive)์˜ errorPage ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •
    3. ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ํŽ˜์ด์ง€์— ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ณด์—ฌ์ค„ ํŽ˜์ด์ง€๋ฅผ ์ง€์ •.

      1
      
       <%@ page errorPage = "์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ณด์—ฌ์ค„ ํŽ˜์ด์ง€.jsp" %>
      
    4. ์—๋Ÿฌ ๋ฐœ์ƒ์‹œ ์œ ๋„๋œ ํŽ˜์ด์ง€์—๋Š” ํŽ˜์ด์ง€ ์ง€์‹œ์ž ํƒœ๊ทธ๋กœ isErrorPage ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ true ๊ฐ’์„ ์„ค์ •

      1
      
       <%@ page errorPage = "์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ณด์—ฌ์ค„ ํŽ˜์ด์ง€.jsp" %>
      

  3. ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ๋ณ„๋กœ ์—๋ŸฌํŽ˜์ด์ง€ ์ง€์ •ํ•˜๊ธฐ
    • JSP๋Š” ์—๋Ÿฌ ์ฝ”๋“œ๋ณ„ ๋˜๋Š” ์˜ˆ์™ธ ํƒ€์ž… ๋ณ„๋กœ ์‚ฌ์šฉํ•  ์—๋Ÿฌ ํŽ˜์ด์ง€๋ฅผ web.xml ํŒŒ์ผ์— ์ง€์ •๊ฐ€๋Šฅ
    • ์ด๋ ‡๊ฒŒ ์ง€์ •ํ•œ ์—๋ŸฌํŽ˜์ด์ง€๋Š” ์ผ๋ฐ˜ JSP ํŒŒ์ผ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ๋จ.

  4. ์—๋Ÿฌ ํŽ˜์ด์ง€์˜ ์šฐ์„  ์ˆœ์œ„

    ์—๋Ÿฌ ํŽ˜์ด์ง€๋ฅผ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์œผ๋กœ ์ง€์ •ํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ์˜ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•  ์—๋Ÿฌ ํŽ˜์ด์ง€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    1. ํŽ˜์ด์ง€ ์ง€์‹œ์ž ํƒœ๊ทธ์˜ errorPage์†์„ฑ์— ์ง€์ •ํ•œ ํŽ˜์ด์ง€.
    2. web.xml์— ์ง€์ •ํ•œ ์—๋Ÿฌ ํƒ€์ž…์— ๋”ฐ๋ฅธ ํŽ˜์ด์ง€.
    3. web.xml์— ์ง€์ •ํ•œ ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ์— ๋”ฐ๋ฅธ ํŽ˜์ด์ง€.
    4. ์œ„ 3ํ•ญ๋ชฉ์— ํ•ด๋‹นํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ํ†ฐ์บฃ์ด ์ œ๊ณตํ•˜๋Š” ์—๋Ÿฌ ํŽ˜์ด์ง€.

Spring ์นดํ…Œ๊ณ ๋ฆฌ ๋‚ด ๋‹ค๋ฅธ ๊ธ€ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

Leave a comment