Backend/jsp

[JSP] 부록_3-2 중간고사 예상 문제 (4~6장)

양원준 2022. 10. 23. 06:27
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