티스토리 뷰

JSP

JSP 기초 문법

yoooon1212 2024. 7. 3. 10:56

JSP는 기본적으로 HTML 문서 안에 자바 언어를 삽입해 사용할 수 있도록 설계 되어 있습니다.

그래서 실제로 대부분의 변수 선언, 메서드 선언, 로직 등은 자바 언어로 작성할 수 있습니다.

하지만 HTML 사이에 자바 코드를 끼워 넣을 때 필요한 문법이 몇가지 있습니다.

 

JSP 기초 문법에 종류
  • JSP 지시어, Directive
  • 스크립트릿(Scriptlet)
  • 선언부(Declaration)
  • 표현부(Expession)
  • JSP 액션 태그

 

 

JSP 지시어, Directive

<%@ …. %>

JSP 페이지의 전반적인 속성을 설정합니다. 주로 페이지 속성, import 등을 지정합니다.

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

 

 

스크립트릿(Scriptlet)

<% ... %>

Java 코드를 HTML 중간에 삽입할 때 사용한다.

태그 안에 Java 코드를 작성하여 JSP 페이지에서 실행한다.(코드 실행 영역에 해당)

<% 
    String greeting = "Hello, JSP!";
    out.println(greeting);
%>

 

 

선언부(Declaration)

<%! ... %>

JSP 페이지에서 변수를 선언하거나 메서드를 정의할 때 사용한다.

<%! 
    private String greeting = "Hello, JSP!";
    
    public String getGreeting() {
        return greeting;
    }
%>

 

 

표현식(Expression)

<%= ... %>

값을 삽입하 출력할 때 사용하며, Java 표현식을 평가한 결과를 HTML로 출력한다.

*sysout과 동일

<%
    String greeting = "Hello, 길동!";
%>
<p>Greeting: <%= greeting %></p>

 

 

태그 사용 예시

<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 기본 태그 예제</title>
</head>
<body>
	<h1>JSP 기본 태그 예제</h1>
		
	<%-- 스크립트 릿: 현재 시간을 java 코드로 가져와서 출력해보자. --%>
	<p>현재 시간 : <%
		java.util.Date now = new java.util.Date();
		// 한국 시간 형식으로 포맷 설정하기 
		java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String formattedDate = sdf.format(now);
		out.println(formattedDate);
	%>	
	</p>	
	
	<%-- 표현식 : 임의의 숫자를 생성하여 출력 --%>
	<p>임의의 숫자 : <%= new Random().nextInt(100) %></p>
	
	<%-- 표현식 : 사용자 정의 메서드 출력 --%>
	<p><%= getWelcomeMessage("홍길동 - 허균 ") %></p>
		
	<%-- 선언문 : 사용자 정의 메서드 선언 --%>
	<%! 
		public String getWelcomeMessage(String name) {
			return "환영 합니다. " + name + "!!!";
		}
	%>
	
	<%
		Integer visitCount = (Integer)application.getAttribute("visitCount");
		if(visitCount == null) {
			visitCount = 1; 
		} else {
			visitCount += 1; 
		}
		
		application.setAttribute("visitCount", visitCount);
	%>
	
	<p> 현재 페이지 방문 횟수 : <%=visitCount %></p>
	
	<%
		int second = new java.util.Date().getSeconds();
		String bgColor; 
		if(second < 20) {
			bgColor = "#FFDDC1";
		} else if(second < 40) {
			bgColor = "#FFFFC1";
		} else {
			bgColor = "#C1FFC1";
		}
	%>
	
	<style>
		body {
			background-color: <%=bgColor %>
		}
	</style>
	
</body>
</html>

 

 

 

JSP 액션 태그(Action Tags)

JSP 페이지에서 자바빈즈(Beans)를 사용하거나 다른 JSP 페이지를 포함시키는 등의 작업을 수행할 때 사용됩니다

// 자바빈즈를 생성하거나 찾을 때 사용합니다.
<jsp:useBean id="myBean" class="com.example.MyBean" scope="session" />

// 자바빈즈의 속성 값을 설정할 때 사용합니다.
<jsp:setProperty name="myBean" property="username" value="JohnDoe" />

// 자바빈즈의 속성 값을 가져올 때 사용합니다.
<p>Username: <jsp:getProperty name="myBean" property="username" /></p>

// 다른 JSP 페이지를 포함시킬 때 사용합니다. 
<jsp:include page="header.jsp" />

// 다른 JSP 페이지로 요청을 포워드할 때 사용합니다.
<jsp:forward page="nextPage.jsp" />

 

 

자바빈즈(JavaBeans)

  • 재사용 가능한 객체: 자바빈즈는 재사용 가능하도록 설계된 Java 객체입니다.
  • 특정 규약이 적용된 객체: 자바빈즈는 캡슐화, 기본 생성자, 직렬화 등의 규약을 따릅니다.
    • 캡슐화(Encapsulation): 필드는 private으로 선언하고, 접근자 메서드(getter)와 설정자 메서드(setter)를 통해 접근합니다.
    • 기본 생성자(Default Constructor): 자바빈즈 클래스는 기본 생성자를 반드시 가져야 합니다.
    • 직렬화(Serialization): 자바빈즈는 Serializable 인터페이스를 구현하여 직렬화할 수 있습니다.
  • 데이터 저장, 연산 및 전송: 자바빈즈는 애플리케이션에서 데이터를 저장하고, 연산을 수행하며, 다른 컴포넌트나 시스템으로 데이터를 전송하는 데 도움을 줍니다. 

 

동일한 클래스를 여러 곳에서 인스턴스화 해서 사용가능하며 스코프(scope) 내에서 재사용될 수 있습니다. 세션 스코프(scope)에서 생성된 자바빈즈 객체는 세션 내내 동일한 객체로 유지될 수 있습니다. 

 

 

자바빈즈와 스코프

  • page: 현재 페이지에서만 사용 가능 (기본값)
  • request: 하나의 요청 동안 사용 가능
  • session: 세션 동안 사용 가능
  • application: 애플리케이션 전체에서 사용 가능

'JSP' 카테고리의 다른 글

JSP 내장 객체  (0) 2024.07.08
JSP 주석과 지시자  (0) 2024.07.03
JSP 라이프사이클  (0) 2024.07.03
JSP(Java Server Pages)  (0) 2024.07.03
서블릿 필터와 리스너  (0) 2024.07.02
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함