서블릿이란 무엇인가?
먼저 서블릿이라는 개념을 잘 이해하는 것이 중요하다고 생각한다. 개념을 이해하지 못한다면 뒤로 갈수록 동작 여부에만 만족하는 싸구려 개발자가 될 가능성이 크다. 하지만 이 서블릿이라는 놈은 개념 잡기가 매우 힘들었다. 자바의 어떤 한 기술을 말하는건지, 자바 클래스를 말하는건지 아니면 어떤 클래스를 상속 받아서 구현된 자바 프로그램들을 말하는건지... 즉, 어떤 기술을 서블릿이라고 부르는건지, 어떤 규칙을 지킨 하나의 웹 어플리케이션을 말하는건지 너무 햇갈렸다. 내 성격상 일단 받아들이고 천천히 이해하려는 성격은 아닌지라... 꽤 고생했다.
서블릿의 용어는 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>
--> 주석 설정
'프로그래밍 > jsp' 카테고리의 다른 글
6.servlet 본격적으로 살펴보기-II(servlet 라이프 사이클 (생명주기)) (1189) | 2017.09.26 |
---|---|
5.Servlet 본격적으로 살펴보기-I(doGet, doPost, 컨택스트패스) (1204) | 2017.09.25 |
3. jsp맛보기(JSP 문서 작성 하기, JSP 아키텍쳐) (1205) | 2017.09.23 |
2.환경설정 (1209) | 2017.09.22 |
1. 웹프로그래밍 (1028) | 2017.09.21 |