Servlet

김민창·2021년 10월 12일
1
post-thumbnail

Servlet

Servlet 이란 ?

  • 클라이언트의 요청을 처리하고, 그 결과를 반환하는 자바 웹 프로그래밍 기술
  • 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양
  • 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종
  • JSP와 비슷한 점이 있지만, JSPHTML 문서 안에 Java 코드를 포함하고 있는 반면, 서블릿은 Java 코드 안에 HTML을 포함하고 있다는 차이점

Servlet 특징

  • 클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트
  • HTML을 사용하여 요청에 응답
  • Java Thread를 이용하여 동작
  • MVC 패턴에서 Controller로 사용
  • HTML 변경 시 Servlet을 재컴파일해야 하는 단점
  • 독자적으로 실행할 수 없으며, 톰캣과 같은 JSP/Servlet 컨테이너에서만 실행 가능하며, 컨테이너 독립적으로 실행

Servlet 동작

  1. 브라우저로부터 요청을 받게 되면 어플리케이션 서버가 서블릿 클래스 doGet() 또는 doPost()를 호출
  2. 호출할 때 인수로, 브라우저에서 건네주 request 정보 안에 있는 HttpServletRequest와 서버에서 전송할 response에 관련된 정보와 기능을 가진 HttpServletResponse를 건네줌
    • HttpServletRequest 인스턴스에 저장된 정보를 가지고 처리
    • HttpServletResponse 인스턴스를 사용하여 브라우저에 결과를 반환
  3. 서블릿을 호출할 때 URL은 다음과 같은 구조를 가짐
    • http://서버명/어플리케이션명/URL 패턴
  4. URL 패턴을 서블릿 클래스에 설정하는 방법은 @WebServlet 어노테이션을 사용

Parameter 전송 방식

       GETPOST
특징전송되는 데이터가 URL뒤에 QueryString으로 전달.
입력 값이 적은 경우나 데이터가 노출이 되도 문제가 없을 경우 사용
URL과 별도로 전송. HTTP Header 뒤 body에 입력 스트림 데이터로 전달
장점간단한 데이터를 빠르게 전송.
form tag뿐만 아니라 직접 URL에 입력하여 전송 가능
데이터의 제한이 없음
최소한의 보안 유지 효과를 볼 수 있음
단점데이터 양에 제한이 있음
(location bar(URL + parameters)를 통해 전송할 수 있는
데이터의 사이즈는 2kb(2048byte)로 제한
전송 패킷을 body에 데이터를 구성해야 하므로
전달 데이터의 양이 같을 경우 GET방식보다 느림
profile
개발자 팡이

0개의 댓글