728x90
page 지시어
page 지시어
- 현재 jsp 페이지를 컨테이너에서 처리하는 데 필요한 각종 속성을 기술하는 부분
- 보통 jsp 페이지 맨 앞에 위치
<%@ page 속성1="속성값1" 속성2="속성값2"..%>
ContentType charset 속성
- ContentType은 현재 jsp 페이지를 클라이언트에서 처리하기 위한 콘텐츠 유형을 지정하는 부분
- ContentType charset 속성은 브라우저가 받을 http 응답 페이지의 문자 인코딩 방식을 설정
pageEncoding 속성
- contentType의 charset과 유사한 기능
- 컨테이너에서 처리할 jsp 파일 자체의 인코딩 설정
- "해당 jsp 파일을 UTF-8로 인코딩 하겠다"를 뜻하며 charset은 "클라이언트가 받아볼 페이지가 UTF-8 형식이다"임
위에 두 속성 차이
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="MS949"%>
//jsp파일은 MS949로 작성되었으며 브라우저는 UTF-8로 받게될 것이다
- 한마디로 pageEncoding은 jsp 소스파일을 다른 환경에서 열람 등을 할때 소스의 상태를 관리하는 문장이고 우리가 소스를 실행시켜 웹브라우저의 출력을 하여 글자깨짐 없이 보기 위해서는 charset을 건드려야함
request.setCharacterEncoding("UTF-8");
->html 폼에서 입력된 값을 서버로 전달될 때 한글로 해준다
response.setChararacterEncoding("UTF-8);
->서블릿에서 화면에 데이터를 출력하기 위해 out.println을 사용하는데 그 때 한글로 변환해준다
response.setContentType("text/html; charset=utf-8")
-> response.setChararacterEncoding("UTF-8) 코드만 사용하면 '안녕'이라 쳤을 때 그대로 나오지 않고 이상한 문자가 나옴, 브라우저가 기본적으로 문자코드를 해석하는 디폴트 값이 달라서 인데 이를 해결함
import 속성
- jsp에서 사용할 자바 클래스 또는 패키지를 설정하는데 사용
- 패키지 import 구분을 "," 또는 라인 단위로 작성
session 속성
- 웹 브라우저와 웹 서버가 지속적인 클라이언트 인식을 위해 필요한 정보를 임시로 저장해두는 기법
- 기본값은 true, 일부러 사용을 제한할 목적이 아니면 별도로 설정 안해도 됨
- 주로 웹 사이트에 로그인, 쇼핑몰 장바구니 등을 구현할 때 사용
buffer 속성
- jsp페이지 데이터를 출력하기 위한 jspWriter, out내장객체의 버퍼 크기 지정
- 기본값 8kb, jsp 페이지에 동적으로 많은 내용 포함될 경우 사용
autoFlush 속성
- 버퍼를 자동으로 비울 것인지 지정하는 속성
- 기본값은 true, 버퍼 속성에 지정된 크기만큼 유지하고 있다가 다 차면 자동으로 전송
- 만약 속성값 false일때 버퍼가 다 채워지면 예외 발생
info 속성
- 해당 jsp에 대한 간단한 설명
- 저작권이나 작성일 등 간단한 정보 기술에 사용
errorPage
- 현재 페이지에 오류 발생시 호출할 페이지를 지정
- 일반적인 jsp 파일에서 에러가 발생할 경우를 대비하여 오류 처리 파일을 설정
<%@ page errorPage="myError.jsp" %>
//오류가 났을 경우 myError.jsp로 이동
isErrorPage
- 오류 처리를 위한 전용 페이지임을 알리는 속성
- 오류 처리 전용 파일에만 사용
<%@ page isErrorPage="true" %>
//나는 오류전용 페이지입니당
include 지시어란? include 지시어와 include action 태그와 차이점
include 지시어
- 현재 jsp 파일에 다른 html이나 jsp 문서를 포함하기 위한 기능을 제공
<%@ include file="포함할 파일_이름" %>
/*
파일 속성값
-현재 jsp 페이지에 포함할 내용을 가진 외부 파일명
-현재 jsp 페이지와 같은 폴더에 있으면 파일명, 아니면 전체 url을 넣어줘야돼
include 액션 태그
- 현재 jsp페이지 특정 영역에 외부 파일의 내용을 포함하는 태그
- 단순히 페이지 뿐아니라 param 액션 태그를 사용하여 포함될 페이지로 파라미터 전달 가능
<jsp:include page="포함할 파일이름" flush="false" >
<jsp:param name="id" value"hihihi" />
</jsp:include>
/*
page 속성: jsp 페이지 내에 포함할 내용을 가진 외부 파일명
flush 속성: default=false, 설정한 외부 파일로 제어가 이동할 때 지금까지 출력버퍼에 저장한 결과 처리
param 태그로 파라미터까지 전달 가능
*/
위 둘의 차이?
지시어를 사용하면 단지 소스 코드만 분리되고 컴파일은 부모되는 파일에서 함께됨, 유지 보수는 코드가 분리되어 편하겠지만 파일의 일부를 변경하려 하면 모든게 재 컴파일 되야함 -> 낭비 발생, 따라서 지시어는 잘 바뀌지 않는 정적인 데이터로 구성
BUT, 액션 같은 경우는 자신만의 클래스 파일을 만들어 요청이 올 경우 호출함, 따라서 낭비가 발생하지 않아 자주 변경되어도 상관 없는 동적인 데이터로 구성
include 액션 | include 지시어 |
param을 이용하여 데이터 전달 | 페이지 내 변수 선언후, 변수에 값 저장 |
요청에 따라 바로 처리 | jsp파일을 컴파일 할때 처리 |
별도의 파일 | 현재 파일에 삽입 |
동적 | 정적 |
내장 객체란? 내장 객체의 용어
내장객체
- jsp 내에서 선언하지 않고 사용할 수 있는 객체
- 별도의 import문 없이 자유롭게 사용가능
request 내장객체
- 사용자요청과 관련된 기능을 제공하는 내장객체
- 대표적으로 html 폼을 통해 입력된 값을 jsp에서 가져올 때 사용
<%=request.getParameter("id")%>
//getParameter() 메서드는 파라미터 이름과 일치하는 html form 요소 입력 값을 가져옴
//입력 데이터 유형에 상괍없이 String 형태로 값을 취함
html 폼에서 입력된 값 서버로 전달될 때 한글 처리를 위한 캐릭터셋 변환 필요
<% request.setCharacterEncoding("UTF-8"); %>
response 내장객체
- request와 반대되는 개념, 사용자 응답과 관련된 기능을 제공
728x90
'Backend > jsp' 카테고리의 다른 글
[JSP] 부록_3-2 중간고사 예상 문제 정리(~3장) (0) | 2022.10.23 |
---|---|
[JSP] 서블릿, 서블릿 컨테이너 (0) | 2022.10.19 |
[JSP] JSP 태그 (0) | 2022.10.19 |
[JSP] JSP 개요 (0) | 2022.10.16 |
[JSP] 네트워크, 인터넷, 웹 용어 정리 (0) | 2022.09.26 |