매개변수 이름을 Spring이 얻는 방법
1) Reflation API
_ Parameters 옵션을 넣어야 가능( 이는 java 8부터 가능 jdk 1.8)
2) Class file 로 직접 얻어오기
MVC프로젝트는 Maven으로 관리를 하고 Form파일은 설정 파일이다. 그래서 Form파일을 변경하면 항상
업데이트를 해줘야한다.
jsp와 Servlet은 거의 같은 것 그것을 발전시킨 것이 spring이다.
MVC 패턴에서 Dispatcher Servlet 사용한 것 보면 알 수 있다.
다른 점을 보자면 Spring에서 Controller를 클래스 앞에 붙여 주었다면 Servlet은 클래스 앞에 WebServlet을 Controller와 RequestMapping대신 붙여준다. 그리고 Main 메서드 대신 항상 service라고 쓴다. 매개변수는 HttpServletRequest reqest, HttpServletResponse response 이것은 고정이다. 그리고 Servlet은 항시 상속해준다.
extends HttpServlet !!
인스턴스가 존재하지 않을 경우 맨 처음 요청이 들어오면 인스턴스를 만들고 init() 초기화 진행한다. 그리고 Service() 처리로 진행. 두 번째 이후부터는 이미 객체가 만들어져 있기 때문에 init()을 거치지 않고 바로 service()로 간다.
서블릿은 이렇게 init() _ service()_destroy() 이런 방식으로 이루어져있다.
서블릿은 싱클톤 즉 한 개의 인스턴스만 만든다. 그래서 그 한 개를 재활용한다. 요청이 들어올 때마다.
이유는? 대부분 요청하는 내용이 같다.
JSP( Java Server Pages) = Servlet
jsp로 작성하면 자동으로 서블릿으로 변환된다.
html 안에 자바 코드가 있는 것이 jsp 이다.
<% %> 이런 식으로
jsp 페이지는 src/main/webapp/아래에 만든다.
jsp에서 메서드 영역은 서블릿의 service 영역에 들어간다. html은 out.println 영역이다.
그리고 iv 선언이나 그런것들은 바로 클래스 영역이다. 위 사진 참조
서블릿은 객체를 미리 생성하지 않기 때문에 요청이 들어오면 바로 객체 생성을 하기 때문에 (위 그림과 같이) lazy 초기화라고 한다. 이를 개선한 Spring은 객체를 미리 생성하고 있기 때문에 early 초기화라고 한다.
jsp가 servlet으로 변환되면 _jsp.java라는 이름이 생긴다. 뒤에 .java라는 이름이 붙으면 이는 서블릿으로 변환된 것
jsp에는 선언 없이 쓸 수 있는 기본객체가 있다.
예를 들면 request, response, config, page, out, application, session, pageContext 등이다.
'Spring' 카테고리의 다른 글
컨트롤로 매개변수에 붙일 수 있는 애너테이션 @RequestParam @ModelAttribute (0) | 2022.08.28 |
---|---|
서블릿과 jsp (0) | 2022.08.26 |
MVC 패턴의 이해 _2 (0) | 2022.08.17 |
관심사 분리, MVC 패턴 이론 (0) | 2022.08.12 |
Spring _텍스트와 바이너리 (0) | 2022.08.09 |
댓글