본문으로 바로가기

서블릿이란 무엇인가?

 

먼저 서블릿이라는 개념을 잘 이해하는 것이 중요하다고 생각한다. 개념을 이해하지 못한다면 뒤로 갈수록 동작 여부에만 만족하는 싸구려 개발자가 될 가능성이 크다. 하지만 이 서블릿이라는 놈은 개념 잡기가 매우 힘들었다. 자바의 어떤 한 기술을 말하는건지, 자바 클래스를 말하는건지 아니면 어떤 클래스를 상속 받아서 구현된 자바 프로그램들을 말하는건지... 즉, 어떤 기술을 서블릿이라고 부르는건지, 어떤 규칙을 지킨 하나의 웹 어플리케이션을 말하는건지 너무 햇갈렸다. 내 성격상 일단 받아들이고 천천히 이해하려는 성격은 아닌지라... 꽤 고생했다.

 

서블릿의 용어는 Server + Let 의 합성어라고 하는 사람들도 있고 Server + Applet 이라는 사람들도 있다. 뭔가 더 햇갈리는 느낌이 강하게 나지만 결국 "클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그램" 이라고 이해하면 될 것 같다. 그렇게 타협했다. 물론 자바와 관련이 있으므로 당연히 JDK 가 필요하다. 즉 자바 API 와 이를 동작시키는 JVM 이 필요하다는 소리이다.

 

서블릿 컨테이너

 

그렇다면 서블릿이라는 놈을 관리해주는 놈이 있어야 하지 않을까? 그냥 서버에 서블릿 만들어서 위치해 둔다고 클라이언트의 Request/Response 를 처리해줄리가 없다. 결론적으로 서블릿을 관리해주는 놈을 서블릿 컨테이너라고 한다. 서블릿 컨테이너는 서블릿의 생명주기를 관리하고 요청에 따른 스레드를 생성해준다. 또, 클라이언트의 Request 를 받아주고 Response 를 보낼 수 있게 웹 서버와 소켓을 만들어서 통신을 해준다. 


출처: http://breath91.tistory.com/entry/Servlet-이란-무엇인가 [숨[Breath]]


Servlet 문서 작성 하기



Servlet특징

 - 동적 웹어플리케이션 컴포넌트.

 - .java 확장자.

 - 클라이언트의 요청에 동적으로 작동하고, 응답은 html을 이용.

 - java thread이용하여 동작.

 - MVC패턴에서 Controller로 이용됨.





request ------> controller(servlet)------> 모듈지시(모델)------> 필요하면 DB에 접속 ------> 수행 후 결과물을 컨트롤러 넘김

그결과물을 jsp(view)로 준다.


1, 프로젝트 생성

















2. servlet파일 생성















3. 서블릿 파일 실행













web.xml서블릿 맵핑

기존 경로 : http://localhost:8181/helloworld/servlet/com.javalec.ex.HelloWorld



URL맵핑 경로 : http://localhost:8181/helloworld/HWorld




맵핑을 하는이유는 너무 길고, 보안에 노출되어 있는 경로를 간단하게 만드는것이다.

위처럼, 하나의 닉네임으로 접근하기 쉽게 하기위해 맵핑을 한다.




web.xml에 서블릿 맵핑 



<servlet-name>

 : 임의의 이름을 만들어 줍니다.

<servlet-class>

 : 매핑할 클래스 파일명을 패키지명을 포함하여 정확하게 입력 합니다.

<url-pattern>

 : servlet-class의 클래스를 매핑할 임의의 이름을 입력 합니다. 주위할 점은 ‘/’ 시작해야 합니다.






어노테이션을 이용한 서블릿 맵핑

<!--      주석 설정

 <servlet>

 <servlet-name>Helloworld</servlet-name>

 <servlet-class>com.javalet.ex.HelloWorld</servlet-class>

 

 </servlet>

 

 <servlet-mapping>

 <servlet-name>Helloworld</servlet-name>

 <url-pattern>/hw</url-pattern>

 

 </servlet-mapping>

  -->   주석 설정