//이클립스에서 서블릿 개발환경 구축 :
//https://private.tistory.com/19
지시자(Directive)
jsp페이지가 실행될 때 필요한 정보를 JSP컨테이너에게 알리는 역할을 함
지시자는 태그 안에서 @로 시작한다
지시자의 종류
1. page
2. include
3. taglib
//taglib 지시자는 JSP기능을 확장할 때 사용하는 사용자 정의태그(JSP태그(액선태그)가 지원하지 못하는 부분)의 집합을 의미
//사용자 정의 태그를 사용하기 위해서는 XML 문법 기초가 있어아하니 19장에서 다루기로
1. page 지시자
해당 페이지를 어떻게 처리할 것인가에 대한 페이지 정보를 알려줌
page는 반드시 소문자로 써야하고 닫는괄호는 %>
- info 속성
페이지를 설명해주는 문자열. jsp페이지의 제목을 붙이는 것과 같은 기능
<%@page info="JSPstudy.co.kr"%>
- language 속성
스크립트 요소에서 사용할 언어 지정. 기본값은 Java
<%@page language="jave"%>
- contentType 속성
브라우저에게 jsp페이지의 내용을 어떤형태로 출력할건지 MIME형식으로 알려주고, charset 지정하는 역할도 함
<%@page contenType="text/html"%>
<%@page contenType="text/html";charset="EUC-KR"%>
pageEncoding : JSP 페이지 자체의 캐릭터 인코딩 지정
jsp페이지에서 사용하는 character 의 인코딩 지정
이 속성이 생략돼 있다면 contentType의 charset의 값을 사용. 기본값은 ISO-8859-1
session : JSP의 내장 객체 중 하나로 페이지를 이동할때 데이터베이스에 저장하지 않고도
계속해서 정보를 유지시킬 수 있게 해주는 객체,
정보를 지우지않고 계속해서 유지하려면 메모리에 부하가 올 수 있으므로 일정 시간이 지나면 세션이 끊긴다.
ex)로그인하고 일정 시간이 지나면 세션이 종료되었다는 안내 문구가 뜬다.
buffer : 기본적으로 8KB
ex) 동영상 버퍼링: 버퍼라는 메모리 저장 공간에 일정량의 동영상을 저장시켜놓고 플레이하는 식
->네트워크가 불안정해도 끊김없이 볼 수 있다.
autoFlush : 버퍼는 가득차지 않으면 입출력이 안되므로 데이터가 가득차지 않더라도 강제로 출력하는 기능
기본값은 true, 따로 명시하지 않아도 된다.
isTreadSfae : 하나의 jsp페이지가 동시에 여러 브라우저의 요청을 처리할 수 있는지 여부 설정. 기본값은 true
isErrorPage : errorPage="jsp파일 실행 중 에러 발생시 실행할 jsp페이지"로
에러페이지 설정을 해놨을 때, 에러페이지를 보여줄 것인지 아닌지 설정.
기본값은 false. true로 명시하지 않으면 에러페이지는 실행되지 않는다.
isErrorPage 속성 예제)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <%@ page info ="Copyright 2019 by JSP study.co.kr" language="java" contentType="text/html; charset=UTF-8" import="java.util.Date" session="false" autoFlush="true" errorPage="Error.jsp" isErrorPage="true"%> <h1>Page Directive Example1</h1> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> //Arithmetic Exception 발생시키기 <% int sum = 10/0; %> </body> </html> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <%@ page language="java" contentType="text/html"; charset="UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> 에러 페이지 입니다. </body> </html> | cs |
그 외)
isELIgnored :
true일 경우 표현 언어를 지원
기본값은 web.xml 파일이 사용하는 JSP 버전 및 설정에 따라 다름
deferedSyntaxAllowedAsLiteral :
#{ 문자가 문자열 값으로 사용되는 것을 허용할지의 여부 지정
trimDirectiveWhitrSpaces :
출력 결과에서 템플릿 텍스트의 공백 문자를 제거할 지 여부 지정
2. include 지시자
<%@include file="로컬URL"%>
jsp페이지에서 공통적으로 포함하는 내용이 있을 때 이러한 내용을 매번 입력하지 않고
별도의 파일을 저장해 두었다가 JSP파일에 삽입할 수 있다.
예를 들면 페이지 상단에 있는 메뉴와 페이지 밑부분의 사이트 정보 등은 어떤 페이지에서도 포함되는 부분이므로
메뉴 jsp파일과 하단정보jsp파일을 하나씩 만들어놓고 필요한 jsp파일에서 include해서 쓰면 효율적인 프로그래밍 가능
한페이지로 인식한 후(코드를 합친 후) 컴파일하는 include directive (액션태그 include는 컴파일된 실행결과를 가져온다 )
Top부분과 Bottom부분 jsp 파일 따로 만들어서 include directive로 이식하기
Top.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <!-- table에 border안쓰면 테두리 안생긴다--> <center> <table width="600"> <tr height="100"> <td align="center" colspan="6"> <font size="15"> Camera 정보 사이트 </font> </td> </tr> <tr height="50"> <td align="center">캐논</td> <td align="center">니콘</td> <td align="center">소니</td> <td align="center">삼성</td> <td align="center">올림푸스</td> <td align="center">LG</td> </tr> </table> </center> </body> </html> | cs |
Bottom.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <center> <table width="600"> <tr height="100"> <td align="center"> 회사 소개 : 서울특별시 강서구 발산동 ㅇㅇ타워 <br> 전화번호 : 000) 000-0000 </td> </tr> </table> </center> </body> </html> | cs |
IncludeTest.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <center> <table width="600" border="1"> <!-- Top --> <tr height="150"> <td width="600" align="center"> <%@include file="Top.jsp"%> </td> </tr> <!-- Center --> <tr height="400"> <td width="600" align="center"><img alt="" src="image/camera.jpg" width="400" height="300"></td> (//WebContent 폴더에 image폴더 생성해서 camera.jpg 저장해놓음) <!-- Bottom --> <!-- Bottom.jsp에 너비 높이 맞춘다. --> <tr height="100"> <td width="600" align="center"> <%@include file="Bottom.jsp"%> </td> </tr> </table> </center> </body> </html> | cs |
실행화면
'JSP > JSP & Servlet ' 카테고리의 다른 글
액션 태그 jsp : forward (0) | 2019.04.30 |
---|---|
액션 태그 jsp: include (0) | 2019.04.29 |
내장 객체(implict object) (0) | 2019.04.29 |
JSP 기초문법 (0) | 2019.04.28 |
서블릿 코드로 변환된 파일(.java) (0) | 2019.04.26 |