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 페이지에 접속하면 커스텀 태그가 정상적으로 실행되어 결과를 확인할 수 있습니다.
반응형
'GD's IT Lectures : 기초부터 시리즈 > 자바(JAVA) 기초부터 ~' 카테고리의 다른 글
[자바(JAVA)] 스프링 프레임워크 (0) | 2023.04.30 |
---|---|
[자바(JAVA)] 자바 프레임워크 소개 (0) | 2023.04.30 |
[자바(JAVA)] 자바 서블릿 (0) | 2023.04.30 |
[자바(JAVA)] 자바와 웹 프로그래밍 (0) | 2023.04.30 |
[자바(JAVA)] 자바와 XML 처리 (0) | 2023.04.30 |
댓글