JSP/Learn2012.04.04 17:05


인터페이스

  하나의 시스템을 구성하는 2개의 구성요소(하드웨어,소프트웨어) 또는 2개의 시스템이 상호작용할 수 있도록 접속되는 경계(boundary), 또는 이 경계에서 상호 접속하기 위한 하드웨어, 소프트웨어, 조건, 규약등을 포괄적으로 가리키는 말.

 

웹 어플리케이션 구성요소

 웹 브라우저 웹 서버 웹 어플리케이션 서버(WAS) – 데이터베이스

 

웹 동작 방식

CGI 방식 웹 서버가 하나의 요청당 하나의 프로세스. 시스템 과부하

웹 어플 방식 웹 서버가 웹 어플리케이션 서버에 넘기고 한 개의 프로세스만 할당, 여러 스레드를 사용(멀티 쓰레딩) 

JSP는 내부적으로 서블릿으로 동작. 처음 실행시 서블릿으로 변환됨

 

서블릿 요청 및 응답 과정

1. 클라이언트에서 서비스 요청

2. 객체 생성 유무 체크하여 없으면 생성(Class Load), 있으면 생성 안함

3. Invoker가 실행되어 Thread가 생성.(request 1)

4. Thread에서 service메소드 호출

5. Service() 메소드가 doGet()혹은 doPost() 자동호출

6. 결과를 클라이언트에 전송.

 

2~5 번까지가 컨테이너가 하는일

 

서블릿 생명주기

1. 클래스 로딩

2. 인스턴스화

3. Init() - 1번만 호출(컨테이너당 1)

4. 요청마다 새로운 서블릿 스레드 생성 후 service()메소드 실행(요청에 따라 doGet(), doPost())4\

5. Destroy() 실행

 


서블릿 사용시 멀티스레드 처리 문제(Service() 메소드 병행성 제어)

가급적 인스턴스변수(member변수) 사용 하지 말 것

Synchronized code 블록을 사용(속도가 떨어진다)

Public synchronized void service(){..} – 속도 매우 느림

Synchronized(this){…} – 문제가 발생하는 코드만 감싸는 방법 쓰기

 


JSP 동작구조

1. 페이지 요청

2. JSP컨테이너로 처리가 넘어옴

3. JSP가 서블릿으로 파싱됨(이미 요청되었다면 바로 클래스가 메모리에 적재)

4. 실행 가능한 클래스 파일로 컴파일

5. 클래스파일은 메모리에 적재되어 실행

6. 실행 결과가 웹 서버로 다시 넘어감

7. 웹 서버는 HTML형태로 결과를 응답함.

 

 

MIME

  MIME는 송신되는 문서의 내용을 기술하는 MIME 유형을 사용함으로써 ASCII 이외의 텍스트나 멀티미디어 데이터를 전송할 수 있도록 제공한다. MIME 유형의 하나인 text에는 plain,html등 몇가지의 하위 유형이 있는데 text/html 이라는 MIME 유형은 HTML 형식의 파일 이라는 것을 의미한다. MIME HTTP프로토콜의 한 부분이며, 웹 브라우저와 웹 서버는 MIME를 사용하여 그들이 송신하고 수신하는 파일을 해석한다.



<jsp: xxxxxx/>태그 종류

include, forward, plug-in, useBean, setProperty, getProperty


 

<%@ include file=””%> <jsp:include page=”file.jsp” flush=”false”/> 의 차이

 전자는, 두 개의 파일을 하나의 파일로 합쳐져 인식함,

후자는 페이지 처리 중 저 구문을 만나면 그 페이지로 가서 결과를 처리 후 다시 결과물을 가지고 돌아와서 띄워 준 후, 다시 이전 페이지의 처리로 넘어감.

 

 

커넥션 풀 사용시, private static myName instance = new myName(); 등으로 static을 주는 이유.

 이 객체에 접근하는, 즉 이 홈페이지를 사용하는 모든 사용자간에 해당 객체를 공유하게 하기 위함이다. 그리 하여야 커넥션 풀을 이용하는 의미가 생긴다.



Context ?

사전적 의미는 문맥, 환경 등의 의미를 갖지만 명확하게 번역이 되는 한글단어가 없다고 한다.

어떤 무언가를 사용하기 위한 통로, 혹은 접근 경로라 볼 수 있다.

예를 들어 servlet 을 사용하기위해선 getServletContext()를 이용하여 servletContext를 얻어 와야 한다.

Posted by 하품 - yawn 하품 - yawn