기업 -> 현재 스프링을 사용하는 기업이 50%~60% 정도 된다고 한다.
정부 사업을 위해 전자정부프레임워크를 사용하거나
요즘은 스프링 기반 자체 프레임워크를 사용한다고한다.
controller -> JSP에서 JAVA로 코딩하는데 JAVA로 하면 안되나?
-> .jsp에서 컴파일 되면 어짜피 Servlet으로 넘어온다.
-> .java(서블릿, Servlet)로 만들자 == ForontController로 부른다.
톰캣(Server)에서 설정을 적용하는 방법
1. xxx.xml 설정파일 등록
=> 톰캣의 경우 web.xml로 사용된다.
2. .xml은 무겁고 다루기 어렵기 때문에
=> 간략하고 가독성이 좋은 @(어노테이션, 애너테이션)을 등록해서 사용한다.
@WebServlet("*.do")
//톰캣(Server)이 구동될때, 모든 XXX.do로 끝나는 요청에 대하여 FC를 호출하게 된다.
//ForontController의 기본 흐름은 아래와 같다.
//GET, POST 방식 상관없이 doAction을 수행해
private void doAction(HttpServletRequest request, HttpServletResponse response) {
//1. 사용자가 무슨 요청을 했는지 추출 및 확인
//2. 요청을 수행
//3. 응답(페이지 이동 등)
}
servlet으로 사용하면 아래와 같이 가볍고 가독성도 올라간다.
//response.sendRedirect("controller.do?action=main");
response.sendRedirect("main.do");
Servlet을 사용할때 응집도를 높이고
조금더 가볍게 사용하기 위해 java파일을 사용한다.
XxxAction.java 로 나눠서 관리
== POJO 이다.
== 가볍다!
== servlet은 무겁기 때문에 FrontController하나만 있으면 된다!
이때 메서드를 강제해서 사용하기위해 인터페이스를 사용한다.
public interface Action {
ActionForward execute(HttpServletRequest request, HttpServletResponse response);
}
추가로 execute를 반환할때 path(경로) Redirect여부 를 반환해야하기 때문에
class를 만들어 새로운 타입으로 전달해야한다.
public class ActionForward {
private boolean redirect; // 어디로 갈지? = 방식
private String path; // 어디로 갈지? == 경로
public boolean isRedirect() {
return redirect;
}
public void setRedirect(boolean redirect) {
this.redirect = redirect;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
}
//setRedirect, setPath -> ActionForard class를 만들었다.
forward.setRedirect(true); // 리다이렉트 방식
forward.setRedirect(false); // 포워드 방식
forward.setPath("main.do");
마지막으로 session은 .java 파일에서는
HttpServletRequest 내에 내장 객체라
해당선언을해서 받아와야한다.
HttpSession session = request.getSession();
V : controller.jsp 에 요청하는 것이 아닌 FrontController.java에 요청한다.
-> Controller에게 파라미터 값을 알려주는 것이 좋다.
-> action명 커멘드명 알려주기
M : SQL에서 잘 돌아가는지 확인하고 가져와서 사용해야한다.
-> ? 개수에 따라 controller에게 pstmt.setXxx 뭐를 해야하는지 알려주어야한다.
-> SQL과 DAO를 잘 작성하는 것이 Model의 핵심이다.
C : View에서 온 정보들을 Model에게 전달한다.
-> 실무에서는 프론트 인원은 보통 용병으로 부르는데 회사의 DB를 모르기 때문에
파라미터 이름이 다를 수 있다. 기억하고 있자.
'국비 내용 정리 > HTML' 카테고리의 다른 글
국비 36일차 내용 정리(비동기 처리) (0) | 2024.08.22 |
---|---|
국비 35일차 내용 정리(핸들러 맵핑) (0) | 2024.08.20 |
국비 33일차 내용정리(JS) (0) | 2024.08.18 |
국비 32일차 내용정리(JS, xml기초) (0) | 2024.08.15 |
국비 31일차 내용정리(JSTL, 커스텀태그) (0) | 2024.08.13 |