TODAY TOTAL
[JSP] 2. 버퍼와 기본객체

 

 

1.JSP 처리 과정

 

JSP 처리 과정

 

WAS(Web Application Server)는 웹 서버와 웹 컨테이너의 결합으로 다양한 기능을 컨테이너에 구현 하여

다양한 역할을 수행할 수 있는 서버를 말한다.

또 여기서 웹 컨테이너란? 클라이언트의 요청이 있을 때 내부의 프로그램을 통해 결과를 만들어내고 이것을

다시 클라이언트에 전달해주는 역할을 하는 것이 웹 컨테이너이다.

JSP에 해당하는 서블릿이 존재하지 않을 경우

- JSP 페이지로부터 자바 코드를 생성한다.

- 자바 코드를 컴파일해서 서블릿 클래스를 생성한다.

- 서블릿에 클라이언트 요청을 전달한다.

- 서블릿이 요청을 처리한 결과를 응답으로 생성한다.

- 응답을 웹 브라우저에 전송한다.

JSP에 해당하는 서블릿이 존재하는 경우 ( 1.1 ~ 1.3 거친 경우)

- 서블릿에 클라이언트 요청을 전달한다.

- 서블릿이 요청을 처리한 결과를 응답으로 생성한다.

- 응답을 웹 브라우저에 전송한다.

즉, JSP 페이지를 요청할 때에는 JSP를 직접 실행하는 것이 아니라, JSP를 자바 소스 코드로 변환한 뒤

컴파일해서 생성한 서블릿을 실행하는 것이다.

 

버퍼가 다 차면 자동으로 데이터를 전송함

 

버퍼(Buffer)는 응답결과를 저장했다가 한 번에 웹 브라우저에 전송하는 것

<%@ page buffer = "1kb" autoFlush "false" %>

page buffer : 버퍼의 크기를 지정해주는 것이고 default 값은 8kb이다. 안써도 실행은 된다.

autoFlush : (true) 버퍼가 다 차면 버퍼를 플러시 하고 계속 작업

(false) 버퍼가 다 차면 익셉션을 발생시키고 작업 중지

 

2. 기본 객체

 

8가지 기본 객체와 오류페이지만 사용하는 exception 객체

 

기본 객체 8가지와 오직 오류페이지에서만 사용할 수 있는데 exception

out 기본 객체는 언제 사용할까?

 

 

<% if(grade > 10) { %>
<%= gradeStringA %>
<% }else if (grade > 5) { %>
<%= gradeStringB %>
<% } %>
--------------------------------
//if-else블록과 스크립트를 구분하기 위한 태그(<%와 %>)때문에 코드가 복잡하다
//하지만 out 객체를 사용하면 좀 더 간편해진다.
--------------------------------
<%
   if (grade > 10){
       out.println(gradeStringA);
   } else if(grade > 5) {
       out.println(gradeStringB);
   }
%>

 

하지만 out 객체를 직접 응답 결과를 생성한 경우가 많지 않고, 복잡해지는 경우 아니라면

out 객체를 사용하지 않는 것이 좋다.

 

application 기본 객체가 제공하는 자원 접근 메소드

 

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import = "java.io.*" %>
<html>
<head>
<title>절대 경로 사용하여 자원 읽기</title>
</head>
<body>

<%
	char[] buff = new char[128];
	int len = -1;
	
	String filePath = "C:\Users\ducjs\Desktop\chap5\notice.txt";
//절대 경로
	try(InputStreamReader fr = new InputStreamReader(
	new FileInputStream(filePath), "UTF-8")) {
//notice.txt로부터 내용을 읽어오는 스트림을 생성한다
		while ((len = fr.read(buff)) != -1{
			out.print(new String(buff, O, len));
		}
	} catch(IOException ex) {
		out.println("익셉션 발생 : " + ex.getMessage());
	}
%>

</body>
</html>

 

3.JSP 기본객체와 영역

 

application 기본 객체가 제공하는 자원 접근 메소드

 

- PAGE 영역 : 하나의 JSP 페이지를 처리할 때 사용되는 영역

- REQUEST 영역 : 하나의 HTTP 요청을 처리할 때 사용되는 영역

- SESSION 영역 : 하나의 웹 브라우저와 관련된 영역

- APPLICATION 영역 : 하나의 웹 어플리케이션과 관련된 영역

 

 

application 기본 객체가 제공하는 자원 접근 메소드

 

PAGE 영역은 한번의 클라이언트 요청에 대해서 하나의 JSP 페이지를 범위로 갖는다.

REQUEST 영역은 한본의 웹 브라우저 요청, 브라우저가 웹 서버에 전송하는 요청이

하나의 REQUEST 영역이 됨

SESSION 영역은 하나의 웹 브라우저와 관련되어 있고, 하나의 웹 브라우저와 관련된 모든 요청은

하나의 SESSION 영역에 포함된다.

APPLICATION 영역은 하나의 웹 어플리케이션과 관련된 전체 영역을 포함한다.

모든 요청 그리고 브라우저의 세션은 모두 하나의 APPLICATION 영역에 속함

  Comments,     Trackbacks