1. Servlet
출처 : https://lhr0419.medium.com/spring-servlet-%EC%9D%B4%EB%9E%80-4d0bc770dfa0
- Servlet
- 웹에서 돌아가는 자바. 클라이언트의 요청을 동적으로 처리해준다.
- 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그램.
- 자바 코드 안에 HTML 을 포함한다.
- Servlet Container : 웹 서버 + WAS. WAS의 역할을 중점적으로 관리해준다. 서블릿을 관리해주는 누군가가 필요하다. 이게 서블릿 컨테이너이다. 톰캣이 대표적인 Servlet Container 이다.
- 호출할 servlet 이 무엇이고 해당 servlet이 어떤 url에 맵핑되는지를 web.xml 방식과 어노테이션 방식으로 구분할 수 있다. 서블릿 3.0 버전 이후로 web.xml 에서의 서블릿 설정을 자바 소스상에서 대체 할 수 있는 어노테이션이 추가되었다.
2. JSP
2.1. JSP 처리 과정
출처 : https://floating-library.tistory.com/73
- 클라이언트로부터 request를 받는다.
- 최초 요청이라면 JSP가 서블릿으로 변환된다. JSP가 java 코드로 변환되는것이다. 최초 요청이 아니라면 service()를 호출한다.
- 서블릿 클래스를 컴파일하여 Class를 생성하고, 생성된 Servlet Class를 메모리에 적재한다.
- init() 메소드를 실행한다
- service() 메소드를 생성한다. service() 메소드는 클라이언트의 요청이 있을때마다 실행된다. service()를 통해 doGet() doPost()가 실행된다
- doGet() , doPost() 메소드가 동적으로 작업을 처리하고 HttpServletResponse 객체에 응답을 보낸다.