System.out.println("Hello, World");

'2012/04/18'에 해당되는 글 1건

  1. 2012.04.18 Container와 Web, XML, Servlet과 Web Container



Web Application

 - 정적서비스(Web서버)

 - 동적서비스[프로그램](클라이언트 요청이 들어오면 그때마다 서비스)


○ Servlet의 메인은 doGet메서드

 - 클라이언트가 서블릿을 요청하면 웹서버에서 웹컨테이너로 넘어간다.


CGI

 - Servlet : Java기반 - html 출력 V2.5

 - JSP     : html기반  - Java code 삽입 V2.1

  ○ 예전에는  web container를 servlet engine으로 불렸었다.


[MVC패턴]

Container 

- component(JavaBeans) : 독립적인 업무를 처리하고 재사용가능한 P/G 모듈

- component 실행환경

 : Infra 기술들은 제공

 : component들이 실행하는데 공통적으로 필요한 Logic

ex) 


개발환경과 Tomcat 환경

<개발환경>


<Tomcat 환경>


Web.xml

- 배포(배치) 서술자(설명자)-Deployment Descripter(DD파일)

- Web Application에 대한 여러가지 설정을 해주는 xml기반의 파일

  º 서블릿 등록

  º 서블릿 요청을 위한 url 설정

  º 초기 파라미터 설정

  º 보안 설정

- 모든 web application은 하나의 web.xml 파일을 가여쟈 함. 

위치 : WEB-INF 폴더 아래

 º web.xml 파일의 설정들은 web application 시작시 메모리에 로딩된다.

  -> 수정을 할 경우 web application을 재시작해야 한다.

 º ROOT TAG : <webapp>  </webapp>


XML 작성시 주의점

1. 대소문자 구분
2. attribute값은 반드시 ""또는 ''으로 감싸야 한다.

3. 태그는 반드시 닫아야 한다.-content가 없는 tag의 경우


[HTML]

1.대소문자 구문안한다.

<br> = <BR>

 <p> = <P>


2. ""로 안감싸도 된다.

<font size="6"> = <font size=6>


3. 태그는 반드시 안닫아도 된다.

<br>같은 경우 단독으로 사용 가능

[XML]

1. 대소문자를 구분 한다.

<br>과 <BR>은 엄연히 다르다.


2. 무조건 "",''로 감싸야 한다.

<font size="6">, <font size='7'>


3. 컨텐트가 없다는 표시로 <br/>를 써줘야 한다.


<Servlet>

<servlet>-> 서블릿 객체 설정

서블릿 매핑-<servlet-mapping>

 - client의 요청url과 그 요청에 일할 서블렛 객체를 연결하나ㅡㄴ 설정

 - 구문

<servlet-mapping>

<servlet-name>이름</servlet-name> 일할 서블릿 객체의 이름

<url-pattern>패턴</url-pattern>클라이언트가 요청할 url 패턴


-url 패턴의 세가지 방법

1. 이름까지 정확하게 일치하도록 설정

<url-pattern>/[경로]/이름</url-pattern>


2. 디렉토리까지 일치하도록 설정

<url-pattern>/[경로]*</url-pattern>


3. 확장만 일치하도록 설정

<url-pattern>*.확장자</url-pattern>






<life-cycle or call back 메소드가 호출되는 시기>

 º init() - 서블릿 객체 생성 직후(딱 1번만 실행됨)

 º service() - client의 요청이 들어오면 실행

 º destory() - 서블릿 객체가 소멸되기 직전

- 이 모든 메소드들이 web Container가 호출한다.




ex)서비스 준비는 식당이 개점하기전 재료손질, 처옷등을 의미하고, service()는 식사, 판매, 배달등 서비스를 나타내며

     소멸단계는 폐점을 의미한다.




Service()

 - doGet()  -> Get 방식

 - doPost() -> Post 방식

Life-cycle(Service()) 대신 쓰인다.


Init(), Service(), Destroy() 확인하기

1. 우선 class를 새로 생성한다.


2. 다음과 같이 코딩한다.


3. xml도 다음과 같이 코딩하고 서버 Start한다.

4. 웹페이지에 다음과 같이 http://127.0.0.1:8088/myweb/lifecycle을 실행한다. 



5. 위 화면과 같이 아무것도 안나온다면 성공한것이다.



6. Console창을 확인해보면 다음과 같이 실행된것을 확인 할 수 있다. 



7. 웹페이지를 새로고침을 시도하여 서비스를 계속 요청한 상황이다.



8. 서버를 stop한 상태. 다음과 같이 Destory() 메소드가 실행된다.


Posted by 김마농