본문 바로가기
프로그래밍/JavaWebProgramming

[Lesson03] lesson 03 servlet

by Luhie 2016. 12. 12.


HelloWorld.java

서블릿 클래스는 반드시 javax.servlt.Servlet 인터페이스를 구현해야 한다.


init, service, destroy =>생명주기와 관련된 메소드

init()메소드 : 서블릿을 생성한 후 초기화 작업을 수행하기 위해 호출

클라이언트의 요청을 처리하기 전 준비

service()메소드 : 클라이언트가 요청할 때 마다 호출 실질적으로 서비스 작업을 수행

destroy() : 종료되거나 웹 애플리케이션이 멈출 때, 비활성화 시킬때 호출


web.xml

톰캣이 init를 실행하는데 조건이 

service s = O 

s.init() 

s라는 객체의 init를 실행하겠다. O는 내가 만든 것,

injection 이 있는데 인젝션은 브라우저가 알아서 web.xml에 맵핑, servlet에 에노테이션

instance of라는 연산자가 있다 (이 객체를 쓸수 있느냐, 형변환이 자동으로 이루어 지느냐)


service의 객체를 만들어야 하는데 인터페이스의 객체를 만들 수 없음으로

서비스 서버 타입의(generic servlet) 추상클래스 -> 상속해서 직접 만들어라.


주소창을 통해 요청하면 init() 와 service()호출이 된다. 



console

이미 객체가 생성되어 있기 때문에 새로고침을 하여도 

init은 호출이 되지 않는다.


web.xml파일을 생성하면 기본적으로 welcome-file이 있다.


주로 어떤 사이트에 접속하게 되면 

www.tistory.com 을 입력해 접속하지

www.tistory.com/index.html   index까지 친절하게 입력하는 경우는 없다.

이러한 것들 처럼 웹 서버에게 서블릿 이름을 생략하고 호출했을때 웰컴파일을 보내준다.

welcome-file-list태그를 사용하여 설정할 수 있고,

위에서 부터 순차 적으로 조회하여 먼저 찾은 것을 클라이언트 측에 보내준다.


처음 만든 defalt.html


같은 폴더에 두번째 만든 index.html


html을 만든 순서와는 상관 없이 

web.xml에는 index.html이 먼저 선언되어 있기 때문에

똑같이 localhost/Lesson03 호출 했을때 

index.html을 보여주게 된다.




'프로그래밍 > JavaWebProgramming' 카테고리의 다른 글

[Lesson04] JDBC 초기화 매개변수  (0) 2016.12.13
[Lesson01web] Calculator  (0) 2016.12.08
[Lesson01] exam02 Calculator  (0) 2016.12.08