brunch

You can make anything
by writing

C.S.Lewis

by 김선우 Aug 02. 2016

웹 어플리케이션 구축을 위한 기초

구성요소

1. 웹 서버 apache, nignx 등

2. 어플리케이션 서버 tomcat, jboss 등

3. 데이터베이스 - oracle, mysql 등

4. 웹 브라우저 - chrome, ie, firefox 등


CGI 와 어플리케이션 서버 방식의 차이

: 웹 서버가 프로그램을 직접 호출하는지(CGI 방식), 

어플리케이션 서버를 통해 프로그램을 호출하는지의 차이(어플리케이션 서버 방식)


쿼리스트링이란 ?

: 리소스 뒤에 붙는 파라미터 개념

예시)
http://host:port/resources?이름1=값1&이름2=값2


서블릿이란 ?

: 서블릿 규약에 따라 만든 클래스. 클라이언트의 요청을 처리하여 응답을 돌려주는 프로그램 (동적)

코딩 -> 컴파일


JSP 이란 ?

: JavaServer Pages 스크립트 언어, 서블릿 표준에 의존하고 있기 때문에 서블릿에 대한 이해가 필요. 

주로 HTML 결과화면을 생성하기 위하여 사용된다. 서블릿과는 다르게 별다른 컴파일 과정 없이 작성하고 실행 가능


서블릿과 JSP의 차이

: 서블릿은 JAVA코드 안에 HTML이 존재하는 반면, JSP는 HTML 안에 JAVA 코드가 존재하는 것이 가장 큰 차이다.


웹 컨테이너

: JSP + 서블릿...각 사용 환경에 따라서 JSP 컨테이너, 서블릿 컨테이너라고 불렸으나, 이후 대부분의 엔진에서 동시지원하면서 구분이 무의미해짐


charset, pageEncoding 차이

: pageEncoding 은 JSP 파일을 읽어올 때의 캐릭터 셋,

반면에 charset 은 클라이언트가 보게될 페이지(응답 결과)의 캐릭터 셋이다. (http header 에 추가됨)


GET / POST Encoding 처리

POST 의 경우 아래와 같이 인코딩 처리가 가능하다.

setCharacterEncoding("utf-8");


GET 도 위와 같이 처리하기 위해서는 톰캣을 예로.

server.xml 의 useBodyEncodingForURI 속성값을 true로 주면 된다.

URIEncoding 방식으로도 캐릭터 셋을 지정할 수 있지만, request 나 setCharacterEncoding은 적용되지 않는다. 동시에 처리도 가능


캐시(Cache)

: 로컬 PC의 임시저장소. 캐시에 저장된 데이터를 사용하는 경우 웹서버에 접근하지 않기때문에 응답이 훨씬 빠르다. 이미지, 정적인 HTML 등은 캐시에 보관함으로써 응답 속도를 향상시킬 수 있다.


JSP의 처리 과정

: 요청 JSP에 해당하는 서블릿 체크 -> 있으면 서블릿사용 없으면 JSP컴파일 -> 서블릿 (jsp가 컴파일됨) 사용 (tomcat 디렉토리에 work라는 폴더가 있는데 여기에 jsp파일과 관련된 자바 코드와 컴파일된 클래스(서블릿)들을 찾을 수 있음)

JSP페이지는 생성된 결과를 바로 클라이언트에 전달하지 않고, Buffer에 임시로 저장했다가 한번에 전달한다. 작은 단위로 데이터를 전송하는 것보다 한번에 큰 단위로 데이터를 전송하는 것이 더 높은 성능을 발휘하기 때문이다. jsp:forward 는 호출시에 모든 버퍼를 지우고 요청 페이지로 넘어가기에 "page buffer = none" 를 사용하면 사용이 불가하다.


JSP 기본 객체

1. request : 클라이언트의 요청 정보를 저장한다.

2. response : 서버의 응답 정보를 저장한다.

3. pageContext : JSP 페이지의 정보를 저장한다.

4. session : http session 정보를 저장한다.

5. application : 웹 어플리케이션의 정보를 저장한다. (웹 컨테이너)

6. out : JSP 페이지가 생성하는 결과에 대해서 출력할 때 사용

7. config : JSP 페이지에 대한 설정 정보를 저장한다.

8. page : JSP 페이지를 구현한 자바 클래스의 인스턴스 (거의 사용안함)

9. exception : 에러 페이지에서 사용


웹 어플리케이션 영역

1. page : 하나의 jsp 페이지

2. request : 하나의 http 요청

3. session : 하나의 웹 브라우저

4. application : 하나의 웹 어플리케이션


jsp:include 와 include file 의 비교

공통점 

- 지정한 페이지를 현재 위치에 포함시킨다.

차이점 

- jsp:include 는 요청 시간에 처리하지만, include file 은 지정한 페이지를 해당 위치에 삽입한 후에 자바 파일을 서블릿 파일로 컴파일한다.

- jsp:include 는 레이아웃의 모듈화를 위해 주로 사용하고, include file 은 모든 jsp 페이지에서 사용되는 변수나 중복되는 코드에 주로 사용된다.




**최범균님의 jsp 2.2 웹 프로그래밍 기초부터 중급까지 책을 참고하였습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari