본문 바로가기
Java 및 JSP

[JSP] JSP 개념과 태그의 종류

by jane.dev 2021. 7. 31.
반응형
JSP(Java Server Pages)
HTML 페이지를 만들기 위한 방법 중 하나로
사용자가 코드를 작성하고 컴파일을 거치지 않고 서버에서 실행 가능

 

예제) 10명의 구성원 중 하나인 나는 랜덤으로 5개의 역할 중 하나를 부여받고, 나와 같은 역할을 가진 구성원의 명수 계산

지시자: <%@ %>

<%@ page import="java.util.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>

JSP 페이지의 전체적인 속성을 지정

1. page: JSP 페이지에 대한 정보를 지정

  • language: 언어 지정
  • import: 패키지 import
  • errorPage: 설정된 페이지에서 에러가 발생하였을 때, 미리 만들어 둔 에러페이지 호출
  • contentType: HTML 문서로 작성하기 위해 text/html 라고 작성
  • pageEncoding: 출력 문자 인코딩(기본: ISO-8859-1 / 한글: utf-8)

2. include: JSP 페이지의 특정 영역에 다른 문서를 포함

3. taglib: JSP 페이지에서 사용할 태그 라이브러리를 지정

 

선언자: <%! %>

<%!
    List<String> party = new ArrayList<String>();	// arraylist 생성
    String roll;					// 역할을 부여받을 변수 생성
%>

전역변수와 메서드를 선언할 때 사용하는 것 

 

 

스크립트릿: <% %>

<%
	int pick = (int)(Math.random() * 5) + 1;	// 1부터 5까지의 난수를 받아
	if(pick == 1){
		roll = "마법사";
	}else if(pick == 2){
		roll = "사제";
	}else if(pick == 3){
		roll = "전사";
	}else if(pick == 4){
		roll = "도적";
	}else{
		roll = "사냥꾼";
	}						// 5개 중 하나의 역할을 부여
	
	party.add(roll);				// 리스트에 해당 역할을 추가
	
	int countSameRoll = 0;				// 같은 역할을 카운트할 변수 생성

	for(String player : party){
		if(roll.equals(player)){
			countSameRoll++;
		}
	}
%>

지역변수와 메서드 내부의 코드를 작성하는 것으로 페이지 요청이 발생 시 마다 실행할 로직을 작성

 

 

표현식: <%= %>

<h2>당신의 역할</h2>
	<p>
		당신에게 부여된 역할은 <b>[<%= roll %>]</b> 입니다.<br>
		현재 파티에 당신과 같은 역할을 가진 플레이어는 <%= countSameRoll %>명입니다.<br>
	</p>
	<p>
		현재 파티 구성<br>

변수 값 혹은 메서드 호출 결과 값을 출력하기 위해 out.println을 대체하여 사용

결과 값의 데이터 타입은 String으로 세미콜론을 사용할 수 없음

 

주석

JSP: <%-- --%>

HTML: <!-- -->

<%-- 아래의 내용은 body 내부에 작성된 스크립트릿 --%>
<% 
	if(party.size() == 11){					// 구성원 10명이 넘으면
		party.clear();					// 리스트 초기화
	}
		out.println(party.toString());
%>(<%= party.size() %>명 참가중)<br>
	</p>

실제 프로그램에는 영향이 없고 프로그램 설명 등의 목적으로 사용, Java 주석도 혼용 가능

 

결과물

'Java 및 JSP' 카테고리의 다른 글

[JSP] Request 파라미터 값 전달  (0) 2021.08.02
[JSP] 내장 객체 - Request  (0) 2021.08.01
[Java] 향상된 For 문  (0) 2021.07.30
[JSP] HTTP의 이해  (0) 2021.07.29
[JSP] Tomcat 개발환경 구축  (0) 2021.07.29