- MVC λ₯Ό μκΈ°μ μ μμλλ©΄ λμμ΄ λλ μλΈλ¦Ώμ λν κ°λ λΆν° νμ΅νμ.
- μλ² TCP , IP μ°κ²° λκΈ°, μμΌ μ°κ²°
- HTTP μμ² λ©μμ§λ₯Ό νμ±ν΄μ μ½κΈ°
- POST λ°©μ , /save URL λ±μ μΈμ§
- Content - Type νμΈ
- HTTP λ©μμ§ λ°λ λ΄μ© νμ±
- μ μ₯ νλ‘μΈμ€ μ€ν
- λΉμ¦λμ€ νλ‘μΈμ€ μ€ν
- λΉμ¦λμ€ λ‘μ§ μ€ν (μ€μ)
- DBμ μ μ₯ μμ² (μ€μ)
- HTTP μλ΅ λ©μμ§ μμ±
- HTTP μμ λΌμΈ, ν€λ, λ©μμ§ λ°λ λ± μμ±
- TCP , IP μ μλ΅ μ λ¬, μμΌ μ’ λ£
- μλΈλ¦Ώμ 컨νΈλ‘€λ¬μκ² μμ²μ μ λ¬νκ³ , μΉ κ°λ°μ νμν λΆκ° κΈ°λ₯λ€μ μ 곡νλ€.
- λΉμ¦λμ€ νλ‘μΈμ€λ₯Ό μ μΈνκ³ , WASμμ νλ κΈ°λ³Έμ μΈ μμ²,μλ΅ μ μ΄μ κ΄λ ¨ν μ²λ¦¬λ₯Ό ν΄μ€λ€.
- μλΈλ¦Ώ μ½λλ μ΄λ»κ² μ€νλλμ ?
- A : νΉμ urlPatterns( μ : β/helloβ ) μ URL μ΄ νΈμΆλλ©΄ μλΈλ¦Ώ λ΄μ μμ±ν΄ λμ μ½λκ° μ€νλλ€.
- HttpServletRequest : HTTP μμ² μ 보λ₯Ό νΈλ¦¬νκ² μ¬μ©
- HttpServletResponse : HTTP μλ΅ μ 보λ₯Ό νΈλ¦¬νκ² μ¬μ©
- HTTP μμ²μ΄ λ€μ΄μ€λ©΄, WASλ Request, Response κ°μ²΄λ₯Ό μλ‘ λ§λ€μ΄μ β μλΈλ¦Ώ κ°μ²΄λ₯Ό νΈμΆνλ€.
- κ°λ°μλ HttpServletRequest , HttpServletResponse λ₯Ό μ¬μ©ν΄μ νΈλ¦¬νκ² κ°λ°μ΄ κ°λ₯ν΄μ§λ€.
- μ΄ν, HTTP μλ΅μ νκΈ° μν΄μ , WASκ° Response κ°μ²΄μ λ΄κ²¨μλ λ΄μ©μ μ΄μ©νμ¬ HTTP μλ΅ μ 보λ₯Ό μμ±νλ€.
- μλ―Έ : ν°μΊ£μ²λΌ μλΈλ¦Ώμ μ§μνλ WAS λ₯Ό μλΈλ¦Ώ 컨ν μ΄λλΌκ³ νλ€.
- μν : μλΈλ¦Ώ 컨ν μ΄λλ μλΈλ¦Ώ κ°μ²΄λ₯Ό μλμΌλ‘ μμ± , νΈμΆν΄μ€λ€. κ·Έλ¦¬κ³ , WAS κ° μ’ λ£λ λ μλΈλ¦Ώ κ°μ²΄λ₯Ό μ’ λ£ μμΌμ€λ€. μ¦, λΌμ΄ν μ¬μ΄ν΄μ κ΄λ¦¬ν΄μ€λ€.
- μλΈλ¦Ώ κ°μ²΄λ μ±κΈν€μΌλ‘ κ΄λ¦¬κ° λλ€.
- κ³ κ°μ μμ²μ΄ μ¬ λ λ§λ€ κ³μ κ°μ²΄λ₯Ό μμ±νλ κ²μ μλ―Έκ° μκ³ , λΉν¨μ¨μ μ΄λ€.
- λ¨, request , response κ°μ²΄λ μ μ μ μμ²λ§λ€ λ€ λ€λ₯΄κΈ° λλ¬Έμ, νμ μμ±λλ€.
- νμ§λ§, μλΈλ¦Ώμ μμ²λ§λ€ μλ‘ μμ±ν νμκ° μμ.
- μ΅μ΄ λ‘λ© μμ μ μλΈλ¦Ώ κ°μ²΄λ₯Ό 미리 λ§λ€μ΄λκ³ μ¬νμ© ν©λλ€.
- λͺ¨λ κ³ κ° μμ²μ κ°μ μλΈλ¦Ώ κ°μ²΄ μΈμ€ν΄μ€μ μ κ·Όνλ€.
- μ΄κ² μ μΌ μ£Όμν΄μΌ νλ κ²: 곡μ λ³μ, μνλ₯Ό κ΄λ¦¬νμ§ μλλ‘ μ£Όμν΄μΌ νλ€. μλΈλ¦Ώ , μ€νλ§ λΉμ μ£Όμν΄μ μ¬μ©νμ.
- λμ μμ²μ μν λ©ν° μ°λ λ μ²λ¦¬λ₯Ό μ§μν΄μ€λ€.
- κ·Έλμ, κ°λ°μλ λ©ν° μ°λ λ κ΄λ ¨ μ½λλ€μ μ κ²½μ°μ§ μμλ λλ€.
- μ€μ²΄λ λ°λ‘ μ°λ λμ΄λ€.
- μ°λ λλ νλ‘κ·Έλ¨ μμμ, μ ν리μΌμ΄μ μ½λλ₯Ό νλνλ μ€ννλ€.
- μ°λ λλ νλ²μ νλμ μ½λ λΌμΈλ§ μννλ€.
- μ₯μ : λμ μ²λ¦¬κ° νμνλ©΄, μ°λ λλ₯Ό μΆκ°λ‘ μμ±νκ² λλ€.
- λ¨μ
- μ°λ λ μμ± λΉμ©μ΄ λΉμΈλ€κ³ νλ€.
- μ°λ λλ₯Ό μμ±νλ©΄, μλ΅ μλκ° λ¦μ΄μ§λ€. μ°λ λλ 컨ν μ€νΈ μ€μμΉ λΉμ©μ΄ λ°μνλ€. (CPU μ½μ΄ μλ§νΌ λμ μνμ΄ κ°λ₯νλ°, κ·Έ μ΄μμ μ°λ λλ₯Ό μλ‘ μ νν΄μΌ νλ€.)
- μ°λ λ μμ±μ μ νμ΄ μλ€.
- κ³ κ° μμ²μ΄ λ무 λ§μ΄ μ€λ©΄, CPU , λ©λͺ¨λ¦¬ μκ³μ μ λμ΄μ μλ²κ° μ£½μ μ μλ€.
- μ΄λ¬ν λ¨μ μ 극볡νκΈ° μν΄, WAS μμλ μ°λ λ νμ μ¬μ©νλ€. λ§μ½ μ°λ λ νμ νκ³λ³΄λ€ λ§μ μμ²μ΄ λ€μ΄μ€κ² λλ©΄ β λλ¨Έμ§ μμ²λ€μ μ°λ λ νμ μ°λ λκ° μκΈ° λλ¬Έμ μμ²λ€μ λκΈ° μνκ±°λ, κ±°μ λκΈ°λ νλ€. μ€μ ν μ μλ€. (ν°μΊ£μ κΈ°λ³ΈμΌλ‘ 200κ° μ λλ‘ μ€μ λμ΄ μμ.)
- μ°λ λ νμ μ¬μ©νκ² λλ©΄ μ₯μ : μ°λ λκ° λ―Έλ¦¬ μμ±λμ΄μ λΉμ© λ° μλ΅ μκ°μ΄ κ°μ λλ€. μμ± κ°λ₯ν μ°λ λ μ΅λμΉκ° μμΌλ―λ‘ λ§μ μμ²μ΄ λ€μ΄μ€λλΌλ κΈ°μ‘΄μ μμ²λ€μ μμ νκ² μ²λ¦¬κ° κ°λ₯νλ€.
-
Spring's DispatcherServlet does more than just Servlet. It is completely integrated with the Spring IoC container and as such allows you to use every other feature that Spring has.
-
DispatcherServlet
λ FrontController λμμΈ ν¨ν΄μΌλ‘ ꡬνλμ΄ μλ€.- FrontController ν¨ν΄μ΄ λκ°μ ?
- κ° ν΄λΌμ΄μΈνΈλ€μ νλ‘ νΈ μ»¨νΈλ‘€λ¬μκ² μμ²μ νλ€.
- νλ‘ νΈ μ»¨νΈλ‘€λ¬λ κ°κ°μ μμ²μ λ§λ 컨νΈλ‘€λ¬λ₯Ό μ°Ύμμ νΈμΆνλ 곡ν΅μ μΈ μν μ νλ€.
- κ·Έλμ, νλ‘ νΈ μ»¨νΈλ‘€λ¬ μΈμ λ€λ₯Έ 컨νΈλ‘€λ¬ λ€μ μλΈλ¦Ώμ μ¬μ©νμ§ μμλ λλ€.
- FrontController ν¨ν΄μ΄ λκ°μ ?
-
μλλ, Spring Web MVC μ request workflow μ΄λ€.
- Spring MVC μμλ FrontController μ μν μ DispatcherServlet μ΄ λ΄λΉνλ€κ³ μκ°νλ©΄ λλ€.
-
DispatcherServlet μ μ€μ λ‘ Servlet (HttpServlet ν΄λμ€) λ₯Ό μμλ°μ ν΄λμ€μ΄λ€. μ΄λ web.xml μ μ μΈλμ΄ μλ€. κ·Έλ¦¬κ³ , DispatcherServletμ΄ μμ²μ μ²λ¦¬νκΈ° μν URL λ§€νλ λ€μ΄κ°λ€.
-
Web MVC νλ μμν¬μμλ DispatcherServletλ μ체μ μΈ WebApplicationContext λ₯Ό κ°μ§κ³ μλ€. WebApplicationContext μμλ λΉλ€μ΄ λ€μ΄μλ€. μ΄ λΉλ€μ μλΈλ¦Ώ λ²μ (μ§μ) λ΄μμ μ¬μ μλ₯Ό ν μ μκ³ , μλ‘μ΄ λΉμ μ μν μλ μλ€. μΆκ°λ‘, WebApplicationContext λ ApplicationContext μ νμ₯ν κ²μ΄λ€.