#1 JSP란?
JSP란 Java Server Pages의 약자로, JAVA를 이용한 서버 사이드 스크립트 언어이다. HTML/CSS를 활용하여 웹을 만들었을 때 JSP를 활용하여 동적인 기능을 추가할 수 있는 것이다. 확장자는 .jsp를 사용한다.
#2 스크립트 태그의 종류
1) 스크립트릿(Scriptlet)
JSP 문법의 가장 기본이 되는 태그로, 대부분의 JSP 문법 표현을 스크립트릿을 활용한다.
<% %> 사이에 필요한 자바 코드를 입력하는 형식이다.
모든 텍스트, HTML 태그 또는 JSP 요소는 스크립틀릿 태그 외부에 위치해야 한다.
<%@ page import="java.util.Random" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- JSP(Java Server Page) : 연산 능력을 갖고 있는 html -->
<% //스크립트릿(Scriptlet) : jsp에서 자바코드를 사용하고자 할 때
//사용하는 영역
//jsp가 web페이지로 전환되는 과정에서 만나는 Servlet 클래스가 가진 객체이므로
//jsp에서는 Servlet클래스가 허용하는 범위안에서 객체를 마음대로 가져다 쓸 수 있다.
String ip = request.getRemoteAddr(); //접속자의 ip주소 얻어오기
Random rnd = new Random();
int num = rnd.nextInt(5)+1;
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
2) 선언문 (Declaration)
<%! %>안에 변수, 메소드 등을 선언할 때 이용한다.
선언문 태그에 선언된 변수와 메소드는 JSP 페이지 임의의 위치에서 선안할 수 있고, 스클립틀릿 태그보다 나중에 선언해도 스클립틀릿 태그에서 사용할 수 있다.
선언문 태그로 선언된 변수는 전역 변수로 사용되고, 선언문 태그로 선언된 메소드는 전역 변수처럼 전역 메소드로 사용된다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 선언문 -->
<%!
String name = "연수";
int tall = 180;
%>
<%!
public int sum(int a,int b) {
return a+b;
}
%>
</body>
3) 표현문 (Expression)
<%= %> 안에 변수, 메서드 등의 실행에 관한 부분을 작성하여 화면에 출력할 때 이용한다.
표현문 태그에 작성된 모든 자바코드의 값은 문자열로 변환되어 출력된다.
간단하게 스크립트릿에서 가져온 접속자의 ip주소와 자바의 Random을 활용하여 화면에 출력하는 코드를 작성해보았다.
<%@ page import="java.util.Random" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- JSP(Java Server Page) : 연산 능력을 갖고 있는 html -->
<% //스크립트릿(Scriptlet) : jsp에서 자바코드를 사용하고자 할 때
//사용하는 영역
//jsp가 web페이지로 전환되는 과정에서 만나는 Servlet 클래스가 가진 객체이므로
//jsp에서는 Servlet클래스가 허용하는 범위안에서 객체를 마음대로 가져다 쓸 수 있다.
//request는 내장객체로 사용자 요청과 관련된 기능을 제공한다.
String ip = request.getRemoteAddr(); //접속자의 ip주소 얻어오기
Random rnd = new Random();
int num = rnd.nextInt(5)+1;
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 표현문(변수, 메서드 출력) -->
<p><%= ip %>님 방문해주셔서 감사합니다.</p>
<br>
<%= num %>
</body>
</html>
#3 디렉티브 태그
디렉티브 태그는 jsp 페이지를 어떻게 처리할 것인지 설정하는 태그이다.
디렉티브 태그는 JSP 페이지가 서블릿 프로그램에서 서블릿 클래스로 변환할 때 JSP 페이지와 관련된 정보를 JSP 컨테이너에 지시하는 메시지이다. 따라서 컴파일하는 경우에만 역할을 수행하기 때문에 개별 HTML 응답에 영향을 미치지는 않는다.
디렉티브 태그는 세종류로, 모두 <%@ %>를 사용한다.
디렉티브 태그 | 형식 | 설명 |
page | <%@ page ~~ %> | JSP 페이지에 대한 정보를 설정한다. |
include | <%@ include ~~ %> | JSP 페이지의 특정 영역에 다른 문서를 포함한다. |
taglib | <%@ tagelib ~~ %> | JSP 페이지에서 사용할 태그 라이브러리를 설정한다. |