JSP란 무엇인가?

toget ㅣ 2023. 10. 10. 20:20

JSP(JavaServer Pages)

Java를 기반으로 하는 웹 기술로, HTML 웹 페이지 내에 Java 코드를 포함하여 동적으로 웹 콘텐츠를 생성할 수 있게 해줍니다.

즉, JSP는 클라이언트에게 동적으로 응답을 생성하기 위한 서버측 스크립팅 언어입니다.

JSP는 서블릿 기술에 기반을 두고 있으며, 개발자가 Java 코드와 HTML 태그를 혼합하여 사용할 수 있게 해줍니다. 

 

JSP의 기본 구조

JSP 페이지는 주로 다음의 구성 요소로 이루어져 있습니다:

  • HTML 코드: JSP 페이지의 주요 내용을 구성합니다.
  • 스크립트릿(Scriptlet): <% %> 사이에 위치하는 Java 코드로, JSP 페이지가 실행될 때 해당 Java 코드도 실행됩니다.
  • 표현식(Expression): <%= %> 사이에 위치하며, 값이 출력될 위치에 사용됩니다.
  • 선언(Declaration): <%! %> 사이에 위치하며, JSP 페이지 내에서 사용될 변수나 메서드를 선언하는 데 사용됩니다.
  • 디렉티브(Directive): JSP 페이지의 동작을 지시하거나 제어하는 태그입니다.
  • 액션 태그(Action Tags): JSP의 기본 기능을 확장하거나 특정 동작을 수행하기 위해 사용되는 XML 스타일의 태그입니다.
  • 커스텀 태그(Custom Tags): 개발자가 직접 정의하여 사용하는 태그입니다.

디렉티브 태그(Directive Tags)

디렉티브 태그는 JSP 페이지의 전체 동작을 제어하는 데 사용되며, 주로 세 가지 주요 디렉티브 태그가 있습니다.

 

page 디렉티브: JSP 페이지의 응답 및 요청 객체, 페이지 인코딩, 임포트 클래스, 에러 페이지, 세션 사용 여부 등을 지정합니다.

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

include 디렉티브: 다른 JSP 또는 HTML 파일을 현재 JSP 페이지에 포함시키는 데 사용됩니다. 해당 태그를 만나면 지정된 파일의 내용이 해당 위치에 포함됩니다.

<%@ include file="header.jsp"%>

taglib 디렉티브: 사용자 정의 태그 라이브러리나 JSTL 등의 태그 라이브러리를 JSP 페이지에 추가하는 데 사용됩니다. 주로 커스텀 태그나 JSTL을 사용할 때 이 디렉티브를 통해 해당 태그 라이브러리를 임포트합니다.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

 

JSP페이지 예시

1. welcome.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Welcome Page</title>
</head>
<body>
    <h2>Welcome to our website!</h2>
    <form action="greet.jsp" method="post">
        Please enter your name: <input type="text" name="userName">
        <input type="submit" value="Submit">
    </form>
</body>
</html>
2. greet.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Greeting Page</title>
</head>
<body>
    <h2>Hello, <%= request.getParameter("userName") %>! Thank you for visiting our website.</h2>
    <a href="welcome.jsp">Go back</a>
</body>
</html>
  • welcome.jsp에서는 간단한 HTML 폼을 사용하여 사용자의 이름을 입력 받습니다.
  • 사용자가 이름을 입력하고 "Submit" 버튼을 클릭하면, 데이터는 greet.jsp 페이지로 POST 방식으로 전송됩니다.
  • greet.jsp에서는 <%= request.getParameter("userName") %>를 사용하여 사용자로부터 전송된 이름을 가져와 환영 메시지를 표시합니다.

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

[JSP] JavaBean/JSP Bean  (0) 2023.10.10
[JSP] JSTL(Custom Tag)  (0) 2023.10.10
[JSP](EL)Expression Language  (0) 2023.10.10