μΉμ
4. MVC νλ μμν¬ λ§λ€κΈ° μκ° μλ£!!
λ¬΄λ € 2μκ° λ°μ κ±ΈμΉ κ°μ... μκ° μλ£... κΈΈμλ€...
FrontController ν¨ν΄ νΉμ§
β‘οΈ μ€νλ§ μΉ MVCμ DispatcherServletμ΄ FrontController ν¨ν΄μΌλ‘ ꡬνλμ΄ μλ€.
ControllerV1
public interface ControllerV1 {
void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
}
μλΈλ¦Ώκ³Ό λΉμ·ν λͺ¨μμ 컨νΈλ‘€λ¬ μΈν°νμ΄μ€λ₯Ό λμ
νλ€.
κ° μ»¨νΈλ‘€λ¬λ€μ μ΄ μΈν°νμ΄μ€λ₯Ό ꡬννλ©΄ λλ€.
νλ‘ νΈ μ»¨νΈλ‘€λ¬λ μ΄ μΈν°νμ΄μ€λ₯Ό νΈμΆν΄μ ꡬνκ³Ό κ΄κ³μμ΄ λ‘μ§μ μΌκ΄μ±μ κ°μ Έκ° μ μλ€.
ControllerV2
public interface ControllerV2 {
MyView process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
}
컨νΈλ‘€λ¬κ° λ·°λ₯Ό λ°ννλ νΉμ§μ΄ μλ€.
κ° μ»¨νΈλ‘€λ¬λ λ¨μν MyView κ°μ²΄λ₯Ό μμ±νκ³ λ·° μ΄λ¦λ§ λ£κ³ λ°ννλ©΄ λλ€.
return new MyView("/WEB-INF/views/new-form.jsp");
ControllerV3
μλΈλ¦Ώ μ’ μμ± μ κ±° λ° λ·° μ΄λ¦ μ€λ³΅ μ κ±°
public interface ControllerV3 {
ModelView process(Map<String, String> paramMap);
}
HttpServletRequestκ° μ 곡νλ νλΌλ―Έν°λ νλ‘ νΈ μ»¨νΈλ‘€λ¬κ° paramMapμ λ΄μμ νΈμΆν΄μ£Όλ©΄ λλ€.
μλ΅ κ²°κ³Όλ‘ λ·° μ΄λ¦κ³Ό λ·°μ μ λ¬ν Model λ°μ΄ν°λ₯Ό ν¬ν¨νλ ModelView κ°μ²΄λ₯Ό λ°ννλ©΄ λλ€.
ControllerV4
public interface ControllerV4 {
/**
* @param paramMap
* @param model
* @return viewName
*/
String process(Map<String, String> paramMap, Map<String, Object> model);
}
μΈν°νμ΄μ€μ ModelViewκ° μλ€.
model κ°μ²΄λ νλΌλ―Έν°λ‘ μ λ¬λκΈ° λλ¬Έμ κ²°κ³Όλ‘ λ·°μ μ΄λ¦λ§ λ°νν΄μ£Όλ©΄ λλ€.
ControllerV5
μ΄λν° ν¨ν΄μ μ¬μ©ν΄μ νλ‘ νΈ μ»¨νΈλ‘€λ¬κ° λ€μν λ°©μμ 컨νΈλ‘€λ¬λ₯Ό μ²λ¦¬ν μ μλλ‘ λ³κ²½ν΄λ³΄μ.
β¬οΈ μ΄λν°μ© μΈν°νμ΄μ€
public interface MyHandlerAdapter {
boolean supports(Object handler); //μ΄λν°κ° ν΄λΉ 컨νΈλ‘€λ¬λ₯Ό μ²λ¦¬ν μ μλμ§ νλ¨
ModelView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException, IOException;
}
βοΈ JPA Entity Manager & JPA Dirty Checking - day34 π μ μΆκ° μλ£!
βοΈ 22. 07. 20. νλ‘κ·Έλλ¨Έμ€ sqlλ¬Έ (IS NULL) - day34 π μ μΆκ° μλ£!
βοΈ 22. 07. 21. νλ‘κ·Έλλ¨Έμ€ μ½ν
1λ¬Έμ (λ¬Έμμ΄ λ€λ£¨κΈ° κΈ°λ³Έ) - day34 π μ μΆκ° μλ£!