본문으로 바로가기

서블릿 (Servlet)

category Java/java 2020. 8. 25. 11:06

서블릿

 : Server Side Applet의 약어

 : Web 서버 즉, Servlet 컨테이너에서 수행되는 Java 클래스

 : 서버의 응용 프로그램을 구현하는 기술

 : 서버 프로토콜 종류에 관계없이 FTP, POP, SMTP, HTTP 등 여러가지 애플리케이션 계층 프로토콜 기반의

  응용 프로그램을 개발할 수 있음

 : Servlet을 활용하는 주요 서버환경은 Web으로서, Web 환경에서는 HTTP프로토콜을 사용하고 있으며

   HTTP 프로토콜을 기반으로 한 Servlet 프로그램을 주로 구현하게 됨

 : Servlet은 클라이언트의 요청에 대하여 Servlet 컨테이너에 의해 독립된 스레드 기반으로 서비스가 되는 기술

 : 다중 스레드 서비스가 기본적으로 제공됨

 : 프로세스 기반의 서비스인 CGI에 비해 수행속도가 빠름

 : 다만 CGI는 모든 Web 서버가 지원하는 표준 기술인 반면 Servlet은 Web의 표준 기술은 아님

 

서블릿의 장점

 : 스레드 기반으로 동작한다

 : Servlet 객체가 메모리상에 한 개만 생성된다

 : 한 번 메모리에 할당된 Servlet 객체는 정해진 시기가 될 때까지 메모리 영역에 유지된다

 : 동시 요청에 대하여 멀티 스레드로 동작하므로 효과적인 다중작업이 가능하다

 : 구현 방법이 서버와 운영 체제에 비해 비의존적이다

 : 잘 정의된 유용한 API를 많이 지원한다.

 

서블릿 컨테이너

 : 자바가상머신을 내장한 서블릿 운영환경

 : JSP는 서블릿으로 변환되어 실행

   따라서 대부분 별도의 실행환경 없이 서블릿 컨테이너에 통합됨

 

Servlet 최초요청
 1. 브라우저로부터 Servlet 수행 요청이 전송된다.
 2. 요청된 Servlet 클래스를 찾아서 메모리에 로딩한 후에 객체를 생성한다
 3. init() 메서드를 호출한다
 4. service() 메서드를 호출한다
 5. 요청 방식에 따라서 doGet() 또는 doPost() 메서드를 호출한다
 6. 출력 버퍼의 내용을 요청한 브라우저로 리턴한다.

2번째 요청
 1. 브라우저로부터 서블릿 수행 요청이 전송된다
 2. 서비스 메서드를 호출한다
 3. 요청 방식에 따라서 doGet() 또는 doPost() 메서드 호출한다.
 4. 출력 버퍼의 내용을 요청한 브라우저로 리턴한다.

 

웹 애플리케이션 개발 시 서블릿 이점

 : 컨텐츠와 비즈니스 로직을 분리할 수 있다

 : 컨트롤러와 뷰역할 분담

 : 유지보수가 수월하다

 : 기능의 확장이 용이하다

 : 프로그래머가 HTML, 자바스클립트 스타일시트 등 복잡한 기술을 모두 알아야 할 필요가 없다.

 

HttpServlet 구조

 : 일반적으로 서블릿은 javax.servlet.http.HttpServlet을 상속

 : service() 메서드는 컨테이너에서 호출

 : doGet(), doPost() 메서드를 오버라이드해서 처리에 필요한 기능을 구현

 

GET방식

 : 서버에 있는 정보를 가져오기 위해 설계됨

 : 240바이트까지 전달할 수 있음

 : QUERY_STRING 환경변수를 통해 전달

 : 형식 : http://xxx.xxx.co.kr/servlet/login?id=hi&name=hello 

 : URL노출로 보안성이 요구되는 경우엔 사용할 수 없음.

 : 검색엔진에서 검색단어 전송에 많이 이용함

 

POST방식

 : 서버로 정보를 올리기 위해 설계됨

 : 데이터크기의 제한은 없다

 : URL에 파라미터가 표시되지 않는다.

 

HttpServletRequest 클래스

 : HttpServlet 클래스의 doGet(), doPost() 메서드 호출시 파라미터로 전달됨 

 : 사용자 요청과 관련된 정보를 제공

 : HTML 폼 입력값을 가져온다

 : 쿠키, 세션정보에 접근할 수 있다

 : 클라이언트 IP주소를 알 수 있다.

 

HttpServletResponse 클래스

 : HttpServlet 클래스의 doGet(), doPost() 메서드 호출 시 파라미터로 전달

 : 사용자 응답을 처리하기 위한 클래스

 : MIME Type 설정

 : HTTP 헤더 정보 설정

 : 페이지 전환

반응형

'Java > java' 카테고리의 다른 글

빈즈 (Beans)  (0) 2020.08.28
JSP 문법  (0) 2020.08.26
JavaScript - 회원가입폼  (0) 2020.08.24
자바스크립트 (JavaScript)  (0) 2020.08.20
네트워크  (0) 2020.08.14