본문 바로가기
Java Web Programming/3. Servlet

[Servlet] Web 중간 정리!

by 파프리카_ 2020. 8. 24.
728x90
반응형

WEB 동작 원리 한번 더 정리해보자 !

 

[ Client Side Tech 클라이언트 사이드 기술 ] 

  • HTML : 웹 문서의 컨텐츠 (구조, 구성요소)
  • JavaScript : 웹 문서의 동작 (행위) - 최근에는 서버 사이드에서도 적용된다
  • css : 웹 사이트의 디자인 스타일

[ Server Side Tech 서버 사이드 기술 ]

Servlet : java web application을 위한 기술 

- MVC에서 Controller(제어자)의 역할

 


[ WAS (Web Application Server) ]

: Web Server + Web Container ( Servlet Container)

- Web Server : HTTP 프로토콜에 의거하여 html서비스를 하는 것

- Web Container : ① Servlet과 JSP 실행 환경을 제공  ② Servlet을 개발하기 위한 library를 제공하고, Servlet LifeCycle을 관리


[ HTML Form ]

<form action = "[url-pattern]" method = "[get] / [post]">
	<input type="text" name="[name]" id="[id]">
        <input type="text" name="[name2]" id="[id2]">
</form>
  • action : 처리할 프로그램 url (web.xml에 설정)
  • method : html request 요청 방식
    1) get 방식 - 정보 조회용 (DB select), url에 노출됨 
    2) post 방식 - 정보 전송용 (DB insert, delete, update), url 노출 안됨,  http request의 body부분에 저장되어 전송됨
    * 서버 상태 변경 시에는 post방식으로 요청한다.

  • input
  • name 요소 : 서버에 전송하기 위해 반드시 필요한 요소
  •  ex) name=파랑색&name2=노랑색
    위 정보를 전송받는 서버(Servlet or JSP)는 
    request.getParameter( [name] ) -> request.getParameter("[name]"/"[name2]")
  • id 요소 : 사용자 입력 정보 (client가 server에 전송하는 정보)
  • id는 자바스크립트에서 제어하기 위한 용도
    ex) html상에서 --> document.getElementById( [id] ) : 하나의 컴포넌트 객체
    ** 참고 : document.getElementsByName( [name] ) : 컴포넌트 배열로 반환

 

 


[ Servlet LifeCycle 서블릿 생명주기 ]

 

→ 주요 메서드 

init(ServletConfig  serlvetConfig) : ServletConfig를 할당받아서, 개별 Servlet 초기화를 위해 필요, 최초에 한번만 실행됨

service 계열(request, response) - doGet(req, res)/doPost(req,res) : client가 요청할 때마다 실행됨

destroy() : Serlvet 객체가 해제되기 전에 한번 실행됨


예제를 통한 정리!

HelloServlet 이 서비스되고 있다.

HelloServlet을 1000명의 client가 서비스 받았다.

 

HelloServlet 객체는 몇 개 생성 ? => 1개 생성 (인스턴스 변수 초기화 및 생성자 실행 1번)

HelloServlet 의 init()은 몇 번 실행 ? => 1번

service 계열의 doGet()과 doPost()는 몇 번 실행? => 1000번

request / responst 도 1000개 || servletConfig는 ? 1개

HelloServlet 의 destroy() 함수는 ? => WAS 종료 시(해당 서블릿이 소멸-메모리에서 해제될 때) 1번 실행

HelloServlet 관련 Thread는 ? => 1000개 생성

 


[ ServletConfig ] 

: 개별 서블릿 당 하나씩 생성 (init 메서드 실행 시에 웹컨테이너가 할당)

: 개별 서블릿이 서비스하는데 필요한 초기 정보를 할당하는 용도 (→ 서블릿 초기화에 필요 정보를 제공)

: ServletConfig는 SerlvetContext의 주소값을 가지고 있으므로, ServletConfig가 존재하는 객체(Servlet or JSP) 만이 ServletContext를 사용할 수 있다. (모든 Servlet/JSP 객체는 ServletConfig를 가지고있다. - httpServlet을 상속받기 때문에!)

 

[ ServletContext ]

 : 웹 어플리케이션 당 하나 생성

 :  웹 어플리케이션 내의 모든 Servlet과 JSP가 서로 정보 자원을 공유할 수 있다. (ServletConfig를 가져야 공유 대상이 됨)

 : 주요 메서드

1) getInitParameter( [name] )

web.xml(DD - Deploymet Descriptor : 배포 기술서)에 명시한 데이터를 name에 의해 value를 반환 

코드와 데이터를 분리해서 유지보수성을 향상하기 위해 사용한다

2) setAttribute([name], [value])

⇒  특정 정보를 공유하기 위해 사용

3) getAttribute([name])

⇒ 공유한 정보를 반환받기 위해 사용

 

 

728x90
반응형