<정리>
스크립트 태그
1) 선언문(<%!...%>) : 자바 변수, 메소드 정의할 때 쓰임
2) 스크립트릿(<%...%>): 자바 로직 코드 작성
3) 표현식(문)(<%=...%>): 변수/계산식/메소드호출 결과를 문자열로 출력
2. 선언문
1) 선언문 태그에 선언된 변수와 메소드는 JSP 페이지 임의의 위치에서 선언 가능
2) 그 변수는 전역변수가 되고, 그 메소드는 전역 메소드로 사용됨
스크립트릿
1) 모든 일반 텍스트, HTML태그, JSP요소는 스크립트릿 태그 외부에 있어야 함 -> 자바의 영역이기 때무네!!!
표현식
1) 선언문, 스크립트릿 에서 선언된 변수/메소드반환값을 외부로 출력 가능
2) 표현식은 스크립트릿 내부에서 사용 가능할 수 없으므로 out.print() 메소드를 사용한다.
3) 표현식에 작성된 모든 자바 코드의 값은 문자열로 변환되어 웹 브라우저에 출력된다.
<%@ 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>
<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>
<%@ 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>
<!-- 스크립트릿 -->
<%
//전역 메소드 호출
out.print(myMethod(0));
%>
<!-- 선언문 태그 -->
<%!
public int myMethod(int count){//매개변수에 0이 할당됨
//전위증가
return ++count;//1부터 먼저 증가하고 처리됨
}
%>
</body>
</html>
1
<%@ 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>
<%!
int sum(int a, int b){
return a + b;
}
%>
<!-- 문제 : 다음을 해결해보자 -->
<%
out.print("2+3="+sum(2,3));
%>
</body>
</html>
2+3=5
<%@ 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 허민정 슈퍼 개발자!"));//3.다시돌아감
%>
<!-- 선언부: 변수, 메소드 -->
<%!
String makeItLower(String data){//1.문자열을 매개변수로 받아서
return data.toLowerCase();//2.리턴된다음
}
%>
</body>
</html>
hello 허민정 슈퍼 개발자!
<%@ 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 = 10;
int c = 10;
%>
<p>a+b+c : <%=a+b+c%></p>
</body>
</html>
오늘은 몇일?Sun Jan 02 13:37:34 KST 2022
a+b+c : 30