티스토리 뷰

Servlet을 간단하게 설명하자면 Java언어로 이루어진 웹 프로그래밍 문서입니다.

1. Servlet 특징

  • 동적 웹어플리케이션 컴포넌트이다.
  • 확장자는 .java이다.
  • jsp와 마찬가지로 클라이언트의 요청에 의해 작동, html로 응답한다.
  • java thread이용하여 동작한다. (요청이 많이 들어와도 부하가 적다는 장점이 있다)
  • MVC패턴에서 Controller로 이용된다.

client 브라우저에서 어떠한 요청 -> Controller(servlet)에서 어떤 요청인지 확인 -> model에서 요청을 수행 및 DB데이터 요청 -> Model에서 수행한 결과물을 Controller에게 응답 -> Controller에서 결과물을 View(JSP)로 넘김 -> View에서 Client브라우저로 응답


2. Servlet을 파헤쳐 보자!

아래는 제가 간단히 작성한 소스코드와 결과입니다.

↓ 수행결과 ↓ 

매핑(mapping)이란?

 : Url경로가 너무 길고, 보안에 노출되어 있는데, 이러한 경로를 간단하게 표현하는 것 입니다.

=>기존의 http://localhost:8181/20161220_JSPtest/servlet/com.servletTest.ex.HelloWorld를

↓↓↓

이렇게 간단히 표현할 수 있게 됩니다.

<맵핑하는 방법>

1. web.xml에서 서블릿 맵핑

* 참고 *

<servlet-name> : 임의의 이름 지정

<servlet-class> : 매핑할 클래스 파일명을 패키지명을 포함하여 입력

<url-pattern> : servlet-class를 매핑할 임의의 이름을 입력한다. ('/'로 시작해야함!!)

2. 어노테이션 이용(servlet파일 안에서)

* 어노테이션 : @ 와 함께 쓰인 것을 어노테이션이라고 합니다.

@WebServlet("/맵핑명")과 같이 java코드에 직접 입력하여 맵핑할 수 있습니다.

ex) 13번째 줄, annotation을 이용한 servlet파일의 닉네임 지정



servlet 파일은 항상 HttpServlet을 상속받는다.

- servlet파일은 항상 HttpServlet을 상속받는다 => extends HttpServlet

- doGet() & doPost()

  : servlet의 필수 메소드로써, html문서 안에서 form태그의 method 속성값을 get으로 하느냐 post로 하느냐에 따라 결정됩니다.

  Get방식은 URL값으로 정보가 보여지게되어 보안에 약합니다. => doGet() 호출(HttpServletRequest 객체를 이용하여, 파라미터 값을 받음)

  Post방식은 header를 이용해 정보를 전송하므로 보안에 강합니다. => doPost() 호출

  ex) 27, 34번째 줄, doGet() doPost()메소드

- 요청처리객체 및 응답처리 객체를 톰캣(Web Application Server)에서 받는다.

Servlet의 작동 순서

웹브라우저 → 웹서버 → 웹 어플리케이션 서버 → Servlet 컨테이너

Servlet는 JAVA의 특징인 JVM의 multi-thread기반이므로, thread를 이용합니다. (다른 cgi언어들은 요청이 들어오면 그에 따른 객체를 하나씩 생성합니다.) 이러한 특징으로인해 서버 부하가 덜하다는 장점이 있습니다.

Servlet의 생명주기(라이프사이클)

Servlet은 최초 요청 시에 객체가 만들어집니다. 이후의 요청 시에는 기존의 객체를 재사용합니다.

이 덕분에 동작 속도가 빠른 장점이 있습니다.




'programming > JSP&Servlet' 카테고리의 다른 글

[JSP] JSTL(if~else문)  (0) 2017.02.07
[Servlet] 톰캣 이용 시 한글깨짐 현상  (1) 2017.01.13
[JSP] JSP란? JSP의 기초  (2) 2017.01.02