μλ° νλ«νΌ μν°νλΌμ΄μ¦ μλμ ( Java Platform Enterprise Edition , Java EE λλ J2EE)
- μλ° μΈμ΄λ₯Ό μ¬μ©νμ¬ μν°νλΌμ΄μ¦ μ ν리μΌμ΄μ μ λ§λ€ μ μλ νλ«νΌμΈ λμμ νμ€ μ€νμ μ§ν©.
- μΉ μ ν리μΌμ΄μ (JSP, Servlet) λΆν° λ°μ΄ν°λ² μ΄μ€ μ κ·Ό (JDBC)μ΄λ μλ° λ©μμ§ μ²λ¦¬ (JMS) κΉμ§ λ€λ£¬λ€.
1. Servlet
- J2EEμ μ€ν μ€ μλΈλ¦Ώμ HTTP νλ‘ν μ½μ μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ μλ²μ© νλ‘κ·Έλλ° μ€νμ μλ―Ένλ€.
- μλΈλ¦Ώμ javax.servlet.Servlet μΈν°νμ΄μ€ ννλ‘ Java APIμμ μ 곡νλ©°, μ΄λ₯Ό ꡬνν ν΄λμ€λ μλΈλ¦Ώ λλ μλΈλ¦Ώ μ ν리μΌμ΄μ μ΄λΌκ³ νλ€.
- μλΈλ¦Ώ μ ν리μΌμ΄μ λ€μ κ΄λ¦¬νκ³ μ€ννλ μλ²λ₯Ό μλΈλ¦Ώ 컨ν μ΄λ(Servlet Container) λλ `WAS(Web Application Server)`λΌκ³ νλ€.
- J2EEμ μλΈλ¦Ώ μ€νμ ꡬνν WASλ μ¬λ¬ μ’ λ₯κ° μλ€. ( Tomcat, Jetty, Undertow ... )
- μ€νλ§ μΉ MVC νλ μμν¬λ J2EE νμ€μΈ μλΈλ¦Ώμ ν¬ν¨νκ³ μμΌλ©° WASλ₯Ό μ΄μ©νμ¬ μΉμλΉμ€λ₯Ό νλ€.
Servlet 3.0 : λΉλκΈ°(asynchronous) μλΈλ¦Ώ κΈ°λ₯ μ§μ
Servlet 3.1 : Non-Blocking λ°©μμ IO κΈ°λ₯ μ§μ
Servlet 4.0 : HTTP2.0 κΈ°λ°μ κΈ°λ₯ μ§μ
1. Request
- μλΈλ¦Ώ μ€νμ λ°λΌ λΈλΌμ°μ κ° μ μ‘ν HTTP μμ² μ 보λ javax.servlet.http.HttpServletRequestκ°μ²΄μ ν¬ν¨λλ€.
2. WAS μμ HTTP νμ± ν Threadκ° Servlet κ°μ²΄ νΈμΆ HttpServletRequest κ°μ²΄ λκΉ
- μλΈλ¦Ώ μ ν리μΌμ΄μ μμλ νμν HTTP ν€λλ 쿼리 λ¬Έμμ΄ λ± μ¬λ¬ μ 보λ₯Ό νμ±νκ³ μ°Έμ‘°ν μ μλ λ©μλλ€μ μ 곡νλ€.
3. Servletμμ λΉμ¦λμ€ λ‘μ§ μν
- μλΈλ¦Ώ μ ν리μΌμ΄μ μ μ¬μ©μ μμ²μ λ°λΌ λ°μ΄ν° μ μ₯μμμ λ°μ΄ν°λ₯Ό μ‘°ννκ±°λ κ°μ λ³κ²½νλ μμ μ μ€ννλ€.
4. Response
- μ€νλ κ²°κ³Όλ javax.servlet.http.HttpServletResponse κ°μ²΄μ μ€μ λμ΄ μ¬μ©μμκ² μλ΅νλ€.
μ ν΅μ μΈ μλΈλ¦Ώ μ ν리μΌμ΄μ μ λ°μ΄ν°λ₯Ό λ€λ£¨λ λ‘μ§κ³Ό HTML μ½λκΉμ§ νλμ ν΄λμ€μ μλ‘ μ½νμμ΄ μ μ§λ³΄μλ μ½λ νμ μ μ΄λ €μμ΄ λ§μ.μ€νλ§ μΉ MVCλ μΉ μ ν리 μΌμ΄μ μ κΈ°λ₯μ ν¬κ² 3κ°μ§λ‘ λΆλ₯νκ³ κ° μν μ λ§κ² ν΄λμ€λ₯Ό λΆλ¦¬νμ¬ λμνλ MVC ν¨ν΄μ νμν λ°©μμ μ 곡νλ€.