디지털 양피지/WebJava2016. 5. 17. 09:36

1. Servlet 기초

Dynamic Web Project를 생성한다.



resources와 test 폴더를 추가해 준다.

소스를 복사해서 src 아래에 놓고 test관련 source들을 test 폴더 아래로 옮긴다.




servlet은 만들기 위해서는 web.xml이 있어야 하면 위치는 항상 아래와 같다.

servlet을 만들면 web.xml에 등록을 해야 하는데 servlet 마법사를 통해 만들면 자동으로 등록이 된다.


마법사를 이용해서 Servlet을 생성하면 아래와 같이 package와 class name을 설정하고 next를 누른다.


name은 첫글자를 소문자로 하고 servlet을 지우는 것이 일반적인 개발 방법이다.

URL mapping에 hello.do로 변경하고 저장한다.


생성이 완료되면 아래와 같이 web.xml에 자동으로 등록이 된다.

servlet 마법사를 통하면 아래와 같이 자동을 코드가 생성이 된다.

Servelt Conrainer를 Tomcat 서버(Catalina) 가 실행한다. (new ServletContainer("web.xml")을  생성한다. Engine 이 시작되면서 동작)


Web.xml에서는 class와 servlet container를 연결 시키는 역활을 한다.

아래와 같이 이름은 hello라는 servlet을 hello.HelloServlet 클래스를 생성하고 url을 /hello.do 에 연결 시켜준다.



2. HTTP(Hyper Text Transfer Protocol)


Request

Request Line에는 3가지 정보가 보내진다.


1. 요청 방식: GET, POST

요청 방식이 Get 방식이면 전달되는 정보가 URL에 노출될 수도 있다. 이럴경우 POST를 사용한다.

POST는 Request Message Body에 숨겨져서 넘어간다.

Get은 url 뒤에 ?name=xxx&passwd=XXX 식으로 넘어간다. 


2. URI: URI라고 하는 것은 port 번호 뒤에 나오는 주소를 말한다. GET은 URI 뒤에 값이 전달 되는 것이다.

아래에서 /doc/test.html 이 URI 이다.

3. Protocol: HTTP/1.1



Response

Satus Line은 아래와 같이 3가지로 구성된다.

1. 프로토콜

2. 상태 코드: 

404: 요청한 파일이 존재하지 않음

405: 요청한 method를 지원하지 않음

500: Internal Server Error(실행 오류)

3. 상태 메세지



Servlet LifeCycle

Request가 오면 요청에 대한 Servlet이 있는지 확인하고 메모리 로딩 후 Constructor(), Init() 순서대로 호출한다.

이후 Thread pool에서 service() 를 할당하여 해당 동작을 수행하게 된다. service() 메소드를 통해서 doGet과 doPost를 선택하게 되는 것이다.

Servlet Filter


Posted by 빨간 양말