1. Servlet의 이해
1.1 Servlet 이란
- Servlet은 웹에서 JAVA 프로그래밍을 구현하기 위해 탄생 함.
- JAVA 로 구현된 CGI(Common Gateway Interface) 라고들 흔히 말함
- HTTP protocol 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속하여 개발하며, Servlet은 Container에 의해서 실행되고, 관리된다.
- HTML 변경시 Servlet을 재컴파일 해야 하는 단점이 있다.
1.2 Servlet Container란
- HTTP 요청을 받아서 Servlet을 실행시키고, 그 결과를 사용자 브라우저에게 전달해주는 기능을 제공하는 컴포넌트 이다.
- Servlet을 실행하고 생명주기를 관리하는 역할을 한다.
- Servlet과 웹 서버(Apache, nginx..)가 서버 통신 할 수 있는 방법을 제공한다.
- 멀티 스레딩을 지원하여 클라이언트의 다중 요청을 알아서 처리해준다.
- 대표적인 Conatainer에는 Tomcat, jetty, jboss 등이 있다.
1.3 Servlet 동작과정
- ① 사용자가 URL을 클릭하면 HTTP Request를 Servlet Container에 보낸다.
- ② Servlet Container는 HttpServletRequest, HttpServletResponse 두 객체를 생성한다.
- ③ 사용자가 요청한 URL을 분석하여 어느 서블릿에 대한 요청인지 찾는다. (DD를 참조하여 분석)
- ④ 컨테이너는 서블릿 service() 메소드를 호출하며, POST, GET여부에 따라 doGet() 또는 doPost()가 호출된다.
- ⑤ doGet() or doPost() 메소드는 동적인 페이지를 생성한 후 HttpServletResponse객체에 응답을 보낸다.
- ⑥ 응답이 완료되면 HttpServletRequest, HttpServletResponse 두 객체를 소멸시킨다.
DD (배포서술자, Deployment Descriptor) = web.xml
- Servlet, Error Page, Listener, Fillter, 보안 설정등 Web Application의 설정 파일이다.
- URL과 실제 서블릿의 매핑 정보도 담고 있다.
- 하나의 웹 어플리케이션에 하나만 존재한다.
- 보통 Web Document Root 디렉토리에 WEB-INF 폴더 아래 web.xml 파일로 존재한다.
1.4 JSP의 동작구조
index.jsp 파일을 작성해서 저장하면 서블릿으로 변환하여 index_jsp.java 로 변환되고 다시 index_java.class로 컴파일 된다.
.java와 .class 파일로 바꾸는 것은 WAS(tomcat)과 JDK에서 내부적으로 처리해준다.
그래서 tomcat server 의 Server path: 를 보면 .metadata 뒤로 .java와 .class 파일이 저장될 위치를 알려주고 있다.
해당경로로 들어가 파일을 읽어보면 jsp소스가 java형식과 class형식의 코드로 재작성된 코드를 볼수 있다.
서블릿 작성 순서
Servlet 예제 코드 작성
URL과 Servlet 매핑하기
Tomcat 연동 하기
서블릿 실행
참조 : http://wiki.gurubee.net
'전체 > 개발지식' 카테고리의 다른 글
Spring 개발 구성 및 파일 디렉토리 구조 (0) | 2018.10.04 |
---|---|
open <tag> in XML mapper - mybatipse plugin 사용하기 (3) | 2018.02.21 |
Maven을 쓰는이유 (1) | 2017.05.12 |
어려웠던 용어 및 개념 - 1 (0) | 2017.05.12 |
Mybatis를 쓰는 이유 (1) | 2017.05.12 |