서버쪽의 순수한 기술 레벨
제이쿼리 - 라이브러리
스프링 - 프레임워크
CGI(Common Gateway Interface) - 웹 서버와 동적 콘텐츠 작성ㅇ르위한 외부 응용프로그램감에 데이터를 주고 받기 위한 공통 규약이다.
Servlet(Server + let)
동적 콘텐츠 생성을 위한 자바로 작성도니 CHI 프로그램을 의미한다.
웹 클라이언트의 HTTP 요청과 응답을 위한 Servlet API를 지원한다.
서블릿 엔진(웹 컨테이너)에 의해 실행되고 관리된다.
웹서버 + 웹컨테이너 = 웹 어플리케이션 서버 (WAS)
EJB가 어려워서 쉽게 만든게 Spring
서블릿 소개
서블릿은 웹 애플리케이션 서버(WAS)의 서블릿 엔진(컨테이너)에 의해 실행되고 관리되며, 웹 클라이언트에 전송할 동적 콘텐츠(HTML....등등)를 생성하기 위한 웹 컴포넌트로, 자바를 기초로 하는 기술이다.
서블릿 컨테이너는 서블릿의 라이프사이클을 관리(생성, 실행, 삭제) 해 주며 웹 크라이언트 요청이 있을 경우 서블릿을 실행시켜 요청에 대한 응답을 처리하는 서버 모듈로, 웹 애플리케이션서버의 일부분이다.
서블릿 컨테이너의 HTTP 요청 처리 과정
1. 사용자의 서블릿 요청 (문서이름이 아닌 프로그램이름 으로 호출)
web.xml에서 서블릿이름을 찾는다.
2. 컨테이너는 2개의 객체 생성(HttpServletRequest(http 요청 메시지 정보 저장), httpServletResponse(http 응답 메시지 정보 저장))
위 2개의 객체는 인터페이스이다.
3. 요청 URI를 분석하여 어떤 서블릿에 대한 요청인지 알아낸다. 스레드에 의해 서블릿이 하나 생성된다.
4. 컨테이너는 서블릿 객체의 service()메소드 호출하면서 request, response 객체 전달
5. doGet() 메소드는 동적 콘텐츠를 생성한 다음 response객체에 출력한다.
6. 컨테이너는 response 객체를 HTTP 응답 메시지로 변환하여 웹 클라이언트로 전송하고 request와 response 객체를 소멸시킨다.
서블릿은 클래스 생성자를 만들지 않는것이 권장사항이다.
왜냐하면 컨테이너에서 자동으로 만드는대 이때 리플렉션 클래스의 class.forname으로 web.xml에서 이름을 가져다가 만들기때문에 매게변수를 가지면 못만든다.
WAS에는 여러개 웹 애플리케이션을 등록할 수있다.
어떤것은 "", 어떤것은 "hello"식의 등록이 이루어진다.
하나의 웹 애플리케이션은 정형화(표준)된 웹 디렉토리 구조를 가져야한다.
WebContent 밑에 다양한 정적 페이지를 저장할수 있다.
WebContent/WEB_INF 에는 classes아래 동적인 서블릿클래스를 저장하는 위치
WebContent/lib 에는 외부 라이브러리 파일을 저장한다.
WebContent/web.xml 에는 서블릿 설정파일이 들어있다. (중요)
위 정형화된 구조가 제대로되지있않으면 프로그램이 돌아가지 않는다.
- MME Type(Multipurpose Internet Mail Extension)
다목적 인터넷 메일 확장 규약 - 인터넷 메일을 통해 문자코드로 구성된 텍스트 파일뿐만 아니라 멀티미디어 파일도 주고 받을 수 있도록 인터넷 메일 표준 규약을 확장한 규약이다.
응답 헤더 설정 : Content-Ype:text/html; charset=utf-8
MIME타임에는 8가지 형식이 존재한다.
파일 경로가 공개되지않아 보안에 유리할수 있다.
- 서블릿 라이프 사이클
서블릿 라이프 사이클은 서블릿 컨테이너에 의해 일관되게 관리된다.
Instance -> init(servletConfig) -> init() ->service(request, response) - destroy()
init은 처음 생성될때만 호출된다.
'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글
9월 4주차 3일 (12주) (0) | 2015.09.23 |
---|---|
9월 4주차 2일 (12주) (0) | 2015.09.22 |
개인 홈페이지 포트폴리오 작업 (0) | 2015.09.18 |
9월 3주차 5일 (11주) (0) | 2015.09.18 |
9월 3주차 4일 (11주) (0) | 2015.09.17 |