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() 메소드가 실행된다.