본문 바로가기
Backend/Servlet & JSP

[Servlet & JSP] JSP 태그 종류

by Forsaken Developer 2023. 5. 28.
728x90
728x90

[Servlet & JSP] JSP 태그 종류

지시자(Directive) 태그

지시자 태그는 페이지에 대한 설정을 하는 태그이다.

주로 페이지의 인코딩, import할 패키지 등을 설정한다.

지시자 태그의 종류에는 page, include, taglib이 있다.

  • page : jsp 페이지에 대한 설정을 하는 태그
  • include : 다른 jsp 파일을 포함하기 위해 사용하는 태그
  • taglib : xml 문법 기반의 라이브러리인 JSTL을 사용하기 위한 태그
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.Date" errorPage="errorPage.jsp"%>

jsp 파일을 생성하면 일반적인 html 파일과 같지만 위에 contentType, charset, pageEncoding과 같은 페이지에 대한 지시자 태그가 있다.

이 속성들은 자바코드로 변환될 때 response header에 해당 타입으로 설정된다.

java.lang 패키지 이외의 클래스를 jsp 파일에서 사용할 때 import 속성에 정의한다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>today</title>
</head>
<body>
<div><%@ include file="today.jsp" %></div>
</body>
</html>

include 지시자 태그를 사용하면 다른 jsp 파일을 포함하여 마치 하나의 페이지에서 작성한 것처럼 사용할 수 있다.

file 속성에 다른 jsp 파일의 경로를 적어서 사용한다.

include 지시자 태그를 사용할 때 include하는 페이지에서 사용하는 변수와 외부에서 사용하는 변수가 겹쳐서 컴파일 오류가 발생할 수 있어서 주의해야한다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
	String exceptionType = exception.getClass().getName();
	String exceptionMessage = exception.getMessage();
	%>

	<div><%=exceptionType%></div>
	<div><%=exceptionMessage%></div>
</body>
</html>

현재 페이지에서 Exception이 발생하게 되면 errorPage 속성값에 설정한 jsp 경로로 exception을 던진다.

exception을 처리할 페이지에 isErrorPage의 속성값을 true로 설정하게되면 에러처리 페이지로 사용할 수 있다.

 선언(Declaration) 태그

    <%!
       private String name;
    %>

페이지 내에서 메소드나 변수를 선언하는 태그이다.

서블릿으로 변환될 때 선언 태그 영역의 코드를 필드로 추가해준다.

스크립트릿(Scriptlet) 태그

    <%
       name="forsaken";
       System.out.println(name);
       
       for(int i=0; i<name.length();i++) {
    	   System.out.print(name.charAt(i));
       } 
    %>

페이지 내에서 Java 코드를 실행하는 태그이다.

서블릿으로 변환될 때 스크립트릿 영역의 코드는  _jspService() 메소드 안에 포함된다.

표현식(Expression) 태그

<div>name : <%= name %></div>

페이지에서 변수나 메소드 등의 값을 출력하는 태그이다.

주석(Comment) 태그

    <% //한 줄 주석%>
    <%-- 여려 줄 주석--%>

 JSP 페이지에서 주석을 작성할 때 사용된다.

주석 태그는 html 주석태그와 달리 브라우저에게 전달되지 않아서 노출되지 않는다.

액션(Action) 태그

액션 태그는 JSP페이지에서 Java 코드를 실행하기 위해서 특수한 태그 형식으로 작성된다.

스크립트릿 태그보다 간결하고 가독성이 좋다.

<jsp:include page="common.jsp"/>

다른 JSP 페이지나 HTML 파일을 현재 JSP 페이지에 포함할 수 있다.

<jsp:forward page="forward.jsp"/>

현재 JSP 페이지를 다른 JSP 페이지로 이동시킨다.

<jsp:forward page="forward.jsp">
    <jsp:param name="username" value="forsaken" />
</jsp:forward>

param을 통해서 forward나 include할 때, 전달할 파라미터를 설정할 수도 있다.

    <jsp:useBean id="member" class="dto.MemberDTO" scope="page"/>
    <jsp:setProperty property="name" name="member" value="forsaken"/>
    <jsp:setProperty property="age" name="member" value="20"/>
    <jsp:setProperty property="email" name="member" value="forsaken@test.com"/>
    
    이름 : <jsp:getProperty property="name" name="member"/> <br>
    나이 : <jsp:getProperty property="age" name="member"/> <br>
    이메일: <jsp:getProperty property="email" name="member"/> <br>

useBean을 통해서 Java Bean 객체를 생성하고 초기화 한다.

scope에는 page, request, session, application을 선택할 수 있고 생략 시에는 page가 기본 값이다.

Bean으로 설정한 객체의 속성 값을 setProperty로 설정할 수 있다.

이 때 setter 메소드를 사용하기때문에 property의 setter 메소드가 이름 규칙에 맞게 작성되어 있어야 한다.

마찬가지로 getProperty로 Java Bean 객체의 속성 값을 가져온다.

728x90
반응형

'Backend > Servlet & JSP' 카테고리의 다른 글

[Servlet & JSP] JSTL core  (0) 2023.05.30
[Servlet & JSP] JSP EL 표현식  (0) 2023.05.29
[Servlet & JSP] JSP의 역할  (0) 2023.05.27
[Servlet & JSP] 서블릿 listener  (0) 2023.05.26
[Servlet & JSP] 서블릿 filter  (0) 2023.05.25

댓글