백엔드/서블릿&JSP

JSP 기초 문법

ksge7 2020. 11. 2. 01:50

JSP는 기본적으로 HTML를 기반으로 그 위에 자바 코드를 끼워넣는 식으로 실행된다.

 

그래서 실제로는 대부분의 변수 선언, 메서드 선언, 로직 등은 자바 언어로 짜게된다.

 

하지만 자바 코드를 HTML 사이에 끼워 넣을 때 필요한 문법이 몇 가지가 있다.

1. 스크릿트립(Scriptlet)

"<% %>"으로 시작하고 끝나는 태그.

 

JSP 문법의 가장 기본이 되는 태그다. 대부분의 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 name = "홍길동"; %>
	<%! public int plus(int a, int b){ return a+b; } %>
	
	<!-- 스크립트릿( 변수선언, 메서드 등에 대한 실행 가능 ) -->
	<% int a = 5; %>
	<% int b = 5; %>
	
	<% plus(a,b); %>
	<!-- 10 출력 -->
	
	<% if(5>1){ System.out.println("5는 1보다 크다"); } %>
	<!-- "5는 1보다 크다" 출력 -->
	
</body>
</html>

2. 선언부 (Declaration)

"<%! %>"는 변수, 메서드 등을 선언할 때 이용하는 태그다.

 

<%@ 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 name = "홍길동"; %>
	<%! public int plus(int a, int b){ return a+b; } %>
    
</body>
</html>

 

3. 표현부 (Expession)

"<%= %>"는 변수, 메서드 등의 실행에 관한 부분을 맡아 그 결과를 표현한다.

 

<%@ 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 name = "홍길동"; %>
	<%! public int plus(int a, int b){ return a+b; } %>
	
	<!-- 구현부 (변수 선언, 변수 및 메서드에 대한 실행 가능) -->
	<p><%= name %></p>
	<!-- "홍길동" 출력 -->
	
	<p><%= plus(5,5) %></p>
	<!-- 10 출력 -->
    
</body>
</html>

 

4. JSP 지시어

JSP 지시문은 서블릿 클래스의 전체 구조에 영향을 준다.

 

해당 JSP 파일을 어떻게 처리할지 정보 등을 기술한다.

 

이름

문법

설명

page

<%@ page ... %>

현재 JSP 페이지를 처리시 필요한 정보 기재

include

<%@ include ... %>

현재 JSP파일 안에 다른 HTML, JSP 문서를 포함

taglib

<%@ taglib ... %>

태그 라이브러리를 사용하기 위해 선언해주는 태그

5. JSP 액션 태그

JSP 문서 내에서 간단하게 다양한 구현을 할 수 있도록 만든 태그다.

 

jsp:include

<jsp:include>

다른 페이지를 현재 페이지에 포함하고자 할 때 사용

jsp:useBean

<jsp:useBean>

자바 빈즈 사용을 위한 객체 생성을 위해 사용

jsp:setProperty

<jsp:setProperty>

자바 빈즈 데이터를 입력하기 위해 사용

jsp:getProperty

<jsp:getProperty>

자바 빈즈 데이터를 얻어내기 위해 사용

jsp:forward

<jsp:forward>

현재 페이지에서 다른 페이지로 이동할 때 사용

jsp:plugin

<jsp:plugin>

자바 컴포넌트를 삽입하는데 사용

jsp:element

<jsp:element>

동적으로 XML 요소를 정의하는데 사용

jsp:attribute

<jsp:attribute>

동적으로 XML 요소를 정의하는데 사용

jsp:body

<jsp:body>

동적으로 XML 요소를 정의하는데 사용

jsp:text

<jsp:text>

JSP 페이지와 문서의 템플릿 텍스트를 작성하는데 사용