JSP 2강 - 스크립트태그, 디렉티브 태그
스크립트 태그
1) 선언문(<%!...%>) : 자바 변수, 메소드 정의
2) 스크립트릿(<% %>) : 자바 로직 코드 작성
3) 표현식(문)(<%= %>) : 변수, 계산식, 메소드 호출 결과를 문자열로 출력
선언문
1) 선언문 태그에 선언된 변수와 메소드는 JSP페이지의 임의의 위치에서 선언 가능
2) 그 변수는 전역변수가 되고, 그 메소드는 전역 메소드로 사용됨
스크립트릿
1) 모든 일반 텍스트, HTML 태그, JSP 요소는 스크립트릿 태그 외부에 있어야 함
표현식
1) 선언문, 스크립트릿에서 선언된 변수/메소드 반환값을 외부로 출력 가능
2) 표현식은 스크립트릿 내부에서 사용할 수 없으므로 out.print() 메소드를 사용한다.
3) 표현식에 작성된 모든 자바 코드의 값은 문자열로 변환되어 웹 브라우저에 출력
디렉티브 태그
- JSP 페이지에 대한 설정 정보를 지정
- 디렉티브 구문
<%@ 디렉티브이름 속성1="값1" 속성2="값2" ... %>
ex <%@ page contentType = "text/html; charset=euc-kr" %>
JSP가 제공하는 디렉티브
page : JSP 페이지에 대한 정보를 지정
-- JSP가 생성하는 문서의 타입, 출력 버퍼의 크기, 에러페이지 등 정보 지정
taglib : JSP 페이지에서 사용할 태그 라이브러리를 지정
include : JSP 페이지의 특정 영역에 다른 문서를 포함
기본 객체
JSP는 웹 프로그래밍에 필요한 기능을 제공해주는 기본 객체 9가지를 제공
JSP에서 별도 선언 없이 사용 가능(단, exception은 iserrorpage="true")
- 주요 기본 객체
request : 요청 정보를 구할 때 사용
response : 응답과 관련된 설정(헤더, 쿠키 등)시 사용
application : 웹 어플리케이션 정보를 읽어옴
out : 직접 응답을 출력할 때 사용
session : 세션 관리 및 처리에 사용
tagRan.jsp
<%@ 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>
<!--
* JSP 태그 : 문법을 기술
1. 스크립트 태그(script tag) : HTML 내의 자바 코드
1) 선언문(꺾임쇠퍼센트느낌표) : 자바 변수나 메소드 정의
2) 스크립트릿(꺾임쇠퍼센트) : 자바 로직 코드 작성
3) 표현식(꺾임쇠퍼센트이퀄) : 변수/계산식/메소드 호출 결과를 문자열로 출력
2. 디렉티브 태그(directive tag) : JSP 설정
3. 액션태그(action tag) : 클라이언트/서버에 명령을 지시(XML형태)
-->
<h2>Scripting Tag</h2>
<%!
//전역변수
int count = 3;
//대문자 와라 단, 소문자로 변경될것임
//data : 매개변수(파라미터를 받아주는 변수)
//String ma... : 리턴타입
String makeItLower(String data){
return data.toLowerCase();
}
%>
<%
for(int i=1; i<=count;i++){
out.print("이선우 : " + i + "<br />");
}
%>
<%=makeItLower("Hello 이선우!")%>
</body>
</html>
tagRan2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Scripting Tag</title>
</head>
<body>
Page Count is :
<!-- 스크립트릿 -->
<!-- 선언문 태그가 밑에 있고 위에서 호출해도 가능하다 -->
<%
//전역 메소드 호출
out.print(myMethod(0));
%>
<!-- 선언문 태그 -->
<%!
public int myMethod(int count){
//전위증가
return ++count;
}
%>
</body>
</html>
tagRan3.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Scripting Tag</title>
</head>
<body>
<!-- 문제 : 다음을 해결해보자-->
<%
out.print("2 + 3 = " + sum(2,3));
%>
<%!
public int sum(int x, int y){
return x + y;
}
%>
</body>
</html>
tagRan4.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Scripting Tag</title>
</head>
<body>
<!-- 다음을 해결해보자 -->
<!-- 스크립트릿 : 변수 (메소드를 만들 수 없음!)-->
<%
out.print(makeItLower("Hello 허민정 슈퍼 개발자!"));
%>
<!-- 선언부는 스크립트릿 위, 아래 어디있든 노상관 -->
<!-- 선언부 : 변수, 메소드까지 -->
<%!
public String makeItLower(String data){
return data.toLowerCase();
}
%>
</body>
</html>
tagRan5.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Scripting Tag</title>
</head>
<body>
메소드를 사용하지 않고 쉽게 연산해보자<br />
<%
int a = 2;
int b = 3;
int sum = a + b;
out.print("2 + 3 = " + sum);
%>
</body>
</html>
tagRan6.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Scripting Tag</title>
</head>
<body>
다음처럼 화면에 표시해보자. 단 스크립트릿으로만 해보자<br>
0
2
4
6
8
10
<hr>
<%
for(int i = 0; i <= 10; i+=2){
out.print(i + "<br>");
}
%>
</body>
</html>
tagRan7.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Scripting Tag</title>
</head>
<body>
<p>오늘은 몇일? <%=new java.util.Date() %></p>
<%
int a = 10;
int b = 20;
int c = 30;
%>
<p>a+b+c : <%=a+b+c %></p>
</body>
</html>
declaration.jsp
<%@ 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>
<%!
String str = "Hello, Java Server Pages";
public String getString(String str){
return str;
}
%>
<%=getString(str)%>
</body>
</html>
expression.jsp
<%@ 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>
<%!
java.util.Calendar cal = java.util.Calendar.getInstance();
%>
<p>Current Time : <%= cal.getTime() %></p>
</body>
</html>
welcome2.jsp
<%@ 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>
<%!
java.util.Calendar cal = java.util.Calendar.getInstance();
%>
<p>Current Time : <%= cal.getTime() %></p>
</body>
</html>
directiveTagRan1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>디렉티브 태그</title>
</head>
<body>
<h1>디렉티브 태그</h1>
<h3> : JSP 페이지를 어떻게 처리할까?를 설정</h3>
<h5>page(<%@ page ...%>) -> 페이지 정보 설정</h5>
<h5>include(<%@ include... %>) -> 다른 문서를 포함</h5>
<h5>taglib(<%@ taglib... %>) -> 태그 라이브러리 설정</h5>
</body>
</html>
directiveTagRan2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>page 디렉티브</title>
</head>
<body>
<h1>page 디렉티브의 속성</h1>
<h3>language : 사용할 프로그래밍 언어(java)</h3>
<h3>contentType :
* 생성할 문서의 유형(text/html)
cf) text/xml, text/plain, application/msword
* charset : UTF-8, EUC-KR, ISO-8859-1
</h3>
<h3>pageEncoding : 문자 인코딩 설정(UTF-8)</h3>
<h3>import : 사용할 자바 클래스를 설정</h3>
<h3>session : 세션 사용 여부 설정(기본 true, 생략 가능)</h3>
<h3>buffer : 출력 버퍼 크기를 설정(기본 8KB)</h3>
<h3>autoFlush : 출력 버퍼의 동작 제어 설정(true)</h3>
<h3>errorPage : 오류 발생 시 보여줄 오류(404-page not found, 500(개발오류)) 페이지 설정(jsp)</h3>
<h3>iserrorPage : 오류 페이지 여부 설정(기본 false -> 수동으로 true)</h3>
</body>
</html>
directiveTagRan3.jsp
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="application/msword; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Directive Tag</title>
</head>
<body>
Today is : <%=new Date()%>
</body>
</html>
Author And Source
이 문제에 관하여(JSP 2강 - 스크립트태그, 디렉티브 태그), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hazel_jo/JSP-2강저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)