공부/JSP
[JSP 태그] 스크립트, 디렉티브 태그
래울
2022. 9. 18. 20:07
1. 스크립트 태그의 종류
스크립트 태그 | 형식 | 설명 |
선언문 | <%! %> | 자바 변수나 메소드를 정의 서블렛으로 변환 시, _jspService() 외부에 배치된다. |
스크립틀릿 | <% %> | 일반적인 자바 코드 작성 서블릿으로 변환시, _jspService() 내부에 배치된다. 스크립틀릿에 선언된 변수는 해당 태그 안에서만 사용가능하다. |
표현문 | <%= %> | 변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력 값이 _jspService()의 out.print()의 매개변수로 사용되기 때문에 세미클론을 사용하면 안된다. |
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%! String greeting = "welcome to web shopping mall";
String tagline = "welcome to web market!";
%>
<%! String str = "Hello, Java Server Pages";
public String getString(){
return str;
}
%>
<% out.println(getString());
%>
<h1><%= greeting %></h1>
<h3><%= tagline %></h3>
</body>
</html>
2. 주석 태그
<%-- 주석 내용 --%>
html주석 : <!-- 주석내용 -->
3. 디렉티브 태그
속성 | 설명 | 기본 값 |
language | 현재 페이지가 사용할 프로그래밍 언어 | java |
contentType | 현재 페이지가 생성할 콘텐츠 유형 | text/html |
pageEncoding | 페이지의 문자 인코딩 설정 | ISO-8859-1 |
import | 현재 페이지에서 사용할 자바 클래스를 설정 두개 이상의 자바 클래스를 포함하는 경우 쉼표(,)로 구분 가능 |
|
session | HTTP 세션 사용 여부를 설정 | true |
buffer | 페이지의 출력 버퍼 크기를 설정, none 또는 버퍼크기로 설정 | 8KB |
autoFlush | 자동으로 출력 버퍼를 비우는 것을 제어하는데 사용 true의 경우 버퍼가 채워질 때마다 자동으로 웹 브라우저에 보내고 버퍼를 비우지만, false면 overflow exception 발생 |
true |
isThreadSafe | 멀티스레드 동작 설정, flase시, 하나씩 순차처리 | true |
info | 페이지에 대한 설명, 주석문의 기능과 같고, JSP 컨테이너는 info 속성을 무시한다. 실행되도 웹 브라우저에서 보이지않는다. | |
errorPage | 현재 페이지가 실행되는 동안 오류가 발생하면 특정 페이지로 이동 | |
isErrorPage | 현재 페이지가 오류 페이지인지 설정 false이면 자바 내장 객체인 exception 변수를 사용할 수 없다. |
false |
isELignored | 현재 페이지의 표현언어 사용 여부 결정 true시 표현 언어들이 정적 텍스트로 처리된다. |
false |
isScriptingEnabled | 현재 페이지의 스크립트 태그 사용여부 결정 |
* StackTrace로 출력시 flush로 버퍼를 비워줘야한다.
errorpage 관련 참고 : https://offbyone.tistory.com/166
include는 위와 같다. include 태그를 사용해서, 페이지의 헤더, 푸터 등을 구성하면 코드 재사용성을 높일 수 있다.
header.jsp에 cnt를 하나 선언하고, main.jsp에서 계속 새로고침하는 경우, cnt는 정상적으로 계속 올라간다.
*header.jsp가 제어권을 가지고 있다.