본문 바로가기
GD's IT Lectures : 기초부터 시리즈/자바(JAVA) 기초부터 ~

[자바(JAVA)] 자바 서버 페이지 (JSP)

by GDNGY 2023. 4. 30.

29.자바 서버 페이지 (JSP)

29.1. JSP 개요

자바 서버 페이지(JSP)는 웹 기반 애플리케이션을 개발할 때 동적인 웹 페이지를 생성하기 위해 사용하는 서버 사이드 스크립트 언어입니다. JSP는 자바로 작성된 서블릿과 함께 사용되며, 웹 페이지의 레이아웃과 디자인을 쉽게 만들 수 있게 해줍니다. JSP는 HTML 코드 내에 자바 코드를 삽입할 수 있는 방식으로 동작하며, 이를 통해 웹 페이지의 동적인 부분을 처리합니다.

 

29.2. JSP 스크립트 요소

JSP 스크립트 요소는 세 가지로 구분됩니다: 표현식(Expression), 스크립트릿(Scriptlet), 선언(Declaration).

 

    • 표현식(Expression): 표현식은 <%= %> 태그 안에 작성되며, 자바 변수나 메서드 호출의 결과를 문자열로 변환하여 웹 페이지에 출력합니다.
<%= "Hello, JSP!" %>
  • 스크립트릿(Scriptlet): 스크립트릿은 <% %> 태그 안에 작성되며, 자바 코드를 포함합니다. 코드는 서블릿의 _jspService() 메서드 안에서 실행됩니다.
<%
    int x = 10;
    int y = 20;
    int sum = x + y;
%>
  • 선언(Declaration): 선언은 <%! %> 태그 안에 작성되며, 변수와 메서드를 선언하는데 사용됩니다. 선언된 변수와 메서드는 JSP 페이지 내의 모든 스크립트릿에서 사용할 있습니다.
<%! int count = 0; %>

<%! void increment() {
    count++;
} %>
29.3. JSP 액션 태그

 

JSP 액션 태그는 페이지에 동적인 요소를 추가하는 사용되며, XML 스타일로 작성됩니다. 대표적인 JSP 액션 태그에는 jsp:include, jsp:forward, jsp:useBean 등이 있습니다.

<jsp:include page="header.jsp" />
<jsp:forward page="success.jsp" />
<jsp:useBean id="user" class="com.example.User" />
29.4. JSP 커스텀 태그

JSP 커스텀 태그는 개발자가 직접 만든 태그로, 반복적인 작업을 줄이고 코드의 가독성을 높여줍니다. 커스텀 태그를 사용하려면 태그 라이브러리를 작성하고 JSP 페이지에 등록한 사용할 있습니다.

 

JSP 커스텀 태그를 사용하려면 다음 단계를 따르세요:

  • 태그 핸들러 클래스 작성: 태그의 기능을 구현하는 자바 클래스를 작성합니다. 이 클래스는 javax.servlet.jsp.tagext.TagSupport 또는 javax.servlet.jsp.tagext.BodyTagSupport 클래스를 상속받아야 합니다.
package com.example;

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;

public class HelloWorldTag extends SimpleTagSupport {
    @Override
    public void doTag() throws JspException, IOException {
        JspWriter out = getJspContext().getOut();
        out.println("Hello, Custom Tag!");
    }
}

 

  • 태그 라이브러리 디스크립터(TLD) 파일 생성: XML 형식의 파일로, 커스텀 태그와 태그 핸들러 클래스를 연결해주는 역할을 합니다.
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
        version="2.0">
    <tlib-version>1.0</tlib-version>
    <short-name>mytags</short-name>
    <uri>http://www.example.com/mytags</uri>
    <tag>
        <name>helloWorld</name>
        <tag-class>com.example.HelloWorldTag</tag-class>
        <body-content>empty</body-content>
    </tag>
</taglib>

 

  • JSP 페이지에 태그 라이브러리 등록 사용: JSP 페이지에서 태그 라이브러리를 등록한 커스텀 태그를 사용합니다.
<%@ taglib uri="http://www.example.com/mytags" prefix="my" %>
<html>
<head>
    <title>JSP Custom Tag Example</title>
</head>
<body>
    <h1><my:helloWorld/></h1>
</body>
</html>

 

커스텀 태그 배포 실행: 커스텀 태그를 포함하는 애플리케이션을 배포하고 실행합니다. 애플리케이션의 WEB-INF 디렉터리 안에 lib 폴더를 만들고 태그 핸들러 클래스를 포함하는 JAR 파일을 넣어주세요. 또한, WEB-INF 디렉터리에 TLD 파일을 넣어주세요.

 

애플리케이션 구조

my-webapp/
    ├── WEB-INF/
    │      ├── web.xml
    │      ├── helloWorld.tld
    │      └── lib/
    │           └── mytags.jar
    └── index.jsp

 

  • 애플리케이션 실행: 애플리케이션을 서블릿 컨테이너(: Tomcat) 배포하고 실행합니다. 이후 브라우저에서 JSP 페이지에 접속하면 커스텀 태그가 정상적으로 실행되어 결과를 확인할 있습니다.

 

 

반응형

댓글