[ 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])
⇒ 공유한 정보를 반환받기 위해 사용
'Java Web Programming > 3. Servlet' 카테고리의 다른 글
[Servlet] 서블릿과 JDBC - Database 연동 (DB 연동) / annotation 기반 설정 (0) | 2020.08.25 |
---|---|
[Servlet] ServletContextListener 개념, 구현 방법 및 예제 (0) | 2020.08.24 |
[Servlet] 서블릿 ServletConfig / ServletContext (2) | 2020.08.21 |
[Servlet] 서블릿 Life Cycle 생명주기 (0) | 2020.08.21 |
[Servlet] 서블릿 Hierarchy 계층 구조 (Web Container, Web Server) (0) | 2020.08.21 |