반응형
JSP 주석은 JSP 페이지 내에서 주석을 작성할 때 사용됩니다. 주석은 JSP 페이지를 해석할 때 무시되며, 최종 HTML 페이지에 포함되지 않습니다. JSP에는 HTML 주석, JSP 주석, 그리고 Java 주석이 있습니다.

 

HTML 주석

HTML 주석은 최종 HTML 페이지에 포함되며, 브라우저에서 볼 수 있습니다.

 

<!-- 이것은 HTML 주석입니다. 최종 HTML 페이지에 포함됩니다. -->

 

JSP 주석

JSP 주석은 JSP 페이지를 해석할 때 무시되며, 최종 HTML 페이지에 포함되지 않습니다.
<%-- 이것은 JSP 주석입니다. 최종 HTML 페이지에 포함되지 않습니다. --%>

 

Java 주석

Java 주석은 스크립트릿, 선언, 표현식 등 Java 코드 내부에서 사용됩니다.
<% 
    // 이것은 한 줄짜리 Java 주석입니다.
    /* 이것은 여러 줄짜리 
       Java 주석입니다. */
%>

 

JSP 지시자

페이지 지시자는 JSP 페이지의 전체 설정을 지정합니다. 예를 들어, 페이지의 인코딩, import 문, 에러 페이지 등을 설정할 수 있습니다.

 

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

 

include 지시자

include 지시자는 다른 JSP 파일을 현재 JSP 파일에 포함시킵니다. 이는 정적 포함 방식으로, 컴파일 시 포함됩니다.
<%@ include file="header.jsp" %>

 

코드 실습 1 - 주석을 사용해 보자
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>JSP 주석 예제</title>
</head>
<body>
    <!-- HTML 주석: 이것은 최종 HTML 페이지에 포함됩니다. -->
    <%-- JSP 주석: 이것은 최종 HTML 페이지에 포함되지 않습니다. --%>
    <%
        // Java 주석: 한 줄짜리 주석
        /* Java 주석: 
           여러 줄짜리 주석 */
    %>
    <h1>JSP 주석 예제</h1>
</body>
</html>

 

코드 실습 2 - JSP 지시자와 include 의 사용

header.jsp

header.jsp 파일에는 페이지의 헤더 부분을 포함합니다. 이 파일에는 <html>, <head>, <body> 태그를 열고, 공통으로 사용되는 스타일시트나 스크립트를 포함할 수 있습니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>공통 헤서 만들어보기</title>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
	<header>
		<h1>사이트 이름</h1>
		<nav>
			<ul>
				<li><a href="home.jsp"></a></li>
				<li><a href="about.jsp">소개</a></li>
				<li><a href="contact.jsp">연락처</a></li>
			</ul>
		</nav>
	</header>

home.jsp

home.jsp 파일에서는 header.jsp와 footer.jsp 파일을 포함하여 페이지의 본문 내용을 작성합니다.

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

<h1>JSP 지시자 예제</h1>
<p> 현재 시간 <%= new Date() %> </p>

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

 

footer.jsp

footer.jsp 파일에는 페이지의 푸터 부분을 포함합니다. 이 파일에서는 열린 <body>와 <html> 태그를 닫습니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

		<footer>
			<p>공통 푸터 &copy; 2024</p>
		</footer>    

	</body>
</html>
반응형

'Java > Java 이론' 카테고리의 다른 글

[JSP] JSP 기초 문법  (0) 2024.07.03
[JSP] JSP 라이프사이클  (0) 2024.07.03
[JSP] Java Server Pages 란?  (0) 2024.07.03
스레드(Thread)  (0) 2023.10.04
중첩 클래스  (0) 2023.10.02
반응형

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

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

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

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

 

JSP 지시어, Directive
<%@ xxxx…. %>
JSP 디렉티브는 JSP 페이지의 전반적인 속성을 설정합니다. 주로 페이지 속성, import 등을 지정합니다.

 

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

 

스크립트릿(Scriptlet)
Java 코드를 HTML 중간에 삽입할 때 사용한다.
<% ... %> 태그 사이에 Java 코드를 작성한다 (코드 실행 영역에 해당)

 

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

 

선언부(Declaration)
JSP 페이지에서 변수를 선언하거나 메서드를 정의할 때 사용한다.
<%! ... %> 태그를 사용한다.

 

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

 

표현식(Expression)
값을 출력할 때 사용하며, Java 표현식을 평가한 결과를 HTML로 출력한다.
<%= ... %> 태그를 사용한다.
<%
    String greeting = "Hello, 길동!";
%>
<p>Greeting: <%= greeting %></p>

 

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: 애플리케이션 전체에서 사용 가능

 

코드 실습 1 - 인사말 생성기
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<h1>인사말 생성기</h1>
	<!-- 절대 경로 -->
	<!-- 상대 경로 -->
	<form action="greet.jsp" method="POST">
		<label for="name">당신에 이름을 입력하세요: </label>
		<input type="text" id="name" name="name" >
		<button type="submit">서버로 제출</button>
	</form>
	
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!-- JSP 페이지의 설정을 정의하는 지시자   -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>인사말을 완성 하였습니다.</h1>
	
	<%
		// 자바 실행 코드 
		// request 객체에서 값 추출 
		String name = request.getParameter("name");
		if(name == null || name.trim().isEmpty()) {
			out.println("<p> 앗! 당신에 이름을 먼저 입력해주세요 </p>");
		} else {
			out.print("<p>반가워, " + name + "! 나의 JSP Site 잘 왔어 환영~~");
		}
	%>
	
	<!-- 다시 이전 페이지로( 특정 페이지로 이동)   -->
	<a href="greet_from_page.html">Back</a>
	

</body>
</html>

 

코드 실습 2 - 간단한 계산기
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body{
            display: flex;
            height: 100vh;
            justify-content: center;
            align-items: center;
            margin: 0;
            background-color: #f0f0f0;
        }
        .container{
            width: 300px;
            background-color: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        }
        form{
            display: flex;
            flex-direction: column;
        }
        label{
            margin-bottom: 10px;
        }

        input[type="number"] {
            height: 30px;
            border: 1px solid #bababa;
            border-radius: 5px;
            margin-bottom: 20px;
        }
        input[type="submit"] {
                height: 40px;
                border-radius: 5px;
                border: 0;
                background-color: #45a049;
                color: #fff;
        }
        input[type="submit"]:hover{
            background-color: #1c5a1f;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>간단한 계산기</h1>
        <form action="calculator.jsp" method="post">
            <label for = "num1">첫번째 숫자를 입력하세요</label>
            <input type="number" id="num1" name="num1" required="required">

            <label for = "num2">첫번째 숫자를 입력하세요</label>
            <input type="number" id="num2" name="num2" required="required">

            <input type="submit" value="계산 요청하기">
        </form>
    </div>
</body>
</html>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body{
            display: flex;
            height: 100vh;
            justify-content: center;
            align-items: center;
            margin: 0;
            background-color: #f0f0f0;
        }
        .container{
            width: 300px;
            background-color: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        }
        form{
            display: flex;
            flex-direction: column;
        }
        label{
            margin-bottom: 10px;
        }

        input[type="number"] {
            height: 30px;
            border: 1px solid #bababa;
            border-radius: 5px;
            margin-bottom: 20px;
        }
        input[type="submit"] {
                height: 40px;
                border-radius: 5px;
                border: 0;
                background-color: #45a049;
                color: #fff;
        }
        input[type="submit"]:hover{
            background-color: #1c5a1f;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>간단한 계산기</h1>
        <form action="calculate.jsp" method="post">
            <label for = "num1">첫번째 숫자를 입력하세요</label>
            <input type="number" id="num1" name="num1" required="required" value="10">
            
            <label for = "num2">첫번째 숫자를 입력하세요</label>
            <input type="number" id="num2" name="num2" required="required" value="20">
            <input type="submit" value="계산 요청하기">
        </form>
    </div>
</body>
</html>
반응형

'Java > Java 이론' 카테고리의 다른 글

[JSP] 주석과 지시자  (0) 2024.07.03
[JSP] JSP 라이프사이클  (0) 2024.07.03
[JSP] Java Server Pages 란?  (0) 2024.07.03
스레드(Thread)  (0) 2023.10.04
중첩 클래스  (0) 2023.10.02
반응형

1. JSP 라이프사이클이란?

JSP 라이프사이클은 JSP 페이지가 요청을 처리하기 위해 거치는 일련의 단계를 의미합니다. JSP 페이지는 서블릿으로 변환되고, 컴파일되고, 요청을 처리한 후, 소멸되는 과정을 거칩니다. 즉, 라이프사이클은 JSP의 생성으로 시작하여 JSP의 해체로 끝납니다.

 

1. JSP 페이지 번역 (Translation) 
   └── example.jsp -> example_jsp.java
-- JSP 컨테이너는 JSP 파일을 서블릿 자바 파일로 변환합니다.

2. JSP 페이지 컴파일 (Compilation)
   └── example_jsp.java -> example_jsp.class
-- 서블릿 자바 파일을 컴파일하여 자바 바이트코드로 변환합니다.

3. 클래스 로딩 (Class Loading)
   └── example_jsp.class 로드
-- 컴파일된 클래스 파일을 JVM으로 로드합니다.  

4. 인스턴스화 (Instantiation)
   └── new example_jsp()
-- 서블릿 클래스의 객체를 생성합니다.

5. 초기화 (Initialization)
   └── example_jsp._jspInit()
-- 서블릿 객체의 초기화 작업을 수행합니다.

6. 요청 처리 (Request Processing)
   └── example_jsp._jspService(request, response) 
-- 라이언트의 요청을 처리하고 응답을 생성합니다.

7. 소멸 (Destroy)
   └── example_jsp._jspDestroy()
-- 서블릿 객체가 소멸될 때 자원을 해제합니다.

 

WAS (웹 애플리케이션 서버)
│
├── 웹 컨테이너 (Web Container)
│   │
│   ├── 서블릿 컨테이너 (Servlet Container)
│   │   ├── 서블릿 클래스 로딩
│   │   ├── 서블릿 인스턴스 생성
│   │   ├── 서블릿 초기화 (init)
│   │   ├── 요청 처리 (service, doGet, doPost)
│   │   └── 서블릿 소멸 (destroy)
│   │
│   └── JSP 컨테이너 (JSP Container)
│       ├── JSP 페이지 번역 (Translation)
│       ├── JSP 페이지 컴파일 (Compilation)
│       ├── 클래스 로딩 (Class Loading)
│       ├── 인스턴스화 (Instantiation)
│       ├── 초기화 (jspInit)
│       ├── 요청 처리 (jspService)
│       └── 소멸 (jspDestroy)
│
│
└── ...

 

샘플 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>    
<%
	// http://localhost:8080/jsp/example.jsp
	// 초기화 단계(jspInit 역할)
	if(application.getAttribute("initialized") == null) {
		application.setAttribute("initialized", true);
		application.setAttribute("initializedTime", new Date());
		out.println("JSP가 초기화 되었습니다. <br>");
	}
	
	out.println("요청이 완료 되었습니다. <br>");
	out.println("현재 시간 : " + new Date() + " <br>");
	
	// 세션이라는 전역 메모리지에 데이터를 저장하고 확인해 보자. 
	String message = (String)session.getAttribute("message");
	if(message != null) {
		out.println("세션 메시지 : " + message);
	} else {
		out.println("저장된 세션 메시지가 없습니다.");
	}
	
	// 세션이라는 메모리에 key, value 를 할당하자. 
	session.setAttribute("message", "안녕~ 세션에 저장한 메세지야");
	
%>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<h1>JSP 라이프 사이클 확인</h1>
	<p>이 페이지에 학습 목적은 JSP 동작 방식에 대한 이해와 라이프 사이클 입니다.</p>

</body>
</html>

<%
	// 소멸 단계 확인 (jspDestroy)
	if(application.getAttribute("initialized") != null) {
		application.removeAttribute("initialized");
		application.removeAttribute("initializedTime");
		out.println("JSP 객체가(서블릿) 소멸 되었습니다. <br>");
	}
%>

반응형

'Java > Java 이론' 카테고리의 다른 글

[JSP] 주석과 지시자  (0) 2024.07.03
[JSP] JSP 기초 문법  (0) 2024.07.03
[JSP] Java Server Pages 란?  (0) 2024.07.03
스레드(Thread)  (0) 2023.10.04
중첩 클래스  (0) 2023.10.02
반응형
1. JSP의 정의와 역할을 이해한다.
2. JSP의 장점과 특징을 파악한다.
3. JSP와 관련된 기본 용어를 익힌다.

 

1. JSP란 뭘까?

Java Server Pages (JSP)는 동적인 웹 콘텐츠를 생성하기 위한 서버 측 기술이다. JSP는 HTML 페이지 내에 Java 코드를 포함시켜 웹 서버에서 실행된 후, 클라이언트에 HTML을 전송하는 방식으로 동작한다. 좀 더 자세히 말하자면 JSP(Java Server Pages)는 자바 서버 페이지의 약자로, 웹 애플리케이션 개발을 위한 서버 사이드 기술(Server-Side Rendering)입니다. JSP는 HTML, CSS, JavaScript 등의 클라이언트 사이드 언어와 함께 사용되어 동적인 웹 페이지를 생성하는 데 사용됩니다. 자바 코드를 HTML 코드에 삽입하여 웹 서버에서 실행할 수 있게 해주며, 그 결과는 클라이언트의 웹 브라우저로 전송됩니다.

 

SSR은 Server-Side Rendering(서버 측 렌더링)의 약어입니다. SSR은 클라이언트에게 웹 페이지를 제공하기 전에 서버에서 웹 페이지를 렌더링하여 HTML을 생성하는 웹 개발 방법론입니다. 이 방법론은 클라이언트에게 정적인 HTML을 먼저 제공하고, 클라이언트 측에서 JavaScript를 사용하여 동적인 콘텐츠를 추가하는 방식인 Client-Side Rendering(CSR)대비됩니다.

 

 

2. Servlet vs JSP

JSP 역할

웹 애플리케이션에서 사용자 요청을 처리하고, 동적으로 생성된 HTML을 클라이언트에게 반환한다. 프론트엔드와 백엔드의 중간 역할을 하며, HTML과 같은 프론트엔드 코드와 Java와 같은 백엔드 코드를 혼합하여 사용할 수 있다.

 

JSP의 기본 동작 원리

클라이언트 요청: 클라이언트(웹 브라우저)가 JSP 페이지에 접근한다.

서버 처리: 웹 서버(아파치 톰캣)가 JSP 페이지를 찾아 Java 서블릿으로 변환한 후 컴파일하여 실행한다.

응답 생성: JSP 페이지가 실행되어 동적인 HTML을 생성하고, 이를 클라이언트에게 전송한다.

 

샘플 코드 확인 1
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<html>
<head>
    <title>My First JSP Page</title>
</head>
<body>
    <h1>Hello, JSP!</h1>
    <%
        String message = "Welcome to Java Server Pages!";
        out.println("<p>" + message + "</p>");
    %>
</body>
</html>

 

샘플 코드 확인 2
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>JSP Example</title>
</head>
<body>
    <h1>JSP Example</h1>
    
    <hr>
    
    <%-- JSP 디렉티브 : 페이지 속성 설정 --%>
    <%@ page import="java.util.Date" %>
    <%@ page import="java.text.SimpleDateFormat" %>
    
    <%-- JSP 스크립트릿 : Java 코드 영역 --%>
    <%
        // 현재 날짜와 시간을 가져오기
        Date now = new Date();
        
        // 날짜 포맷 지정
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = sdf.format(now);
    %>
    
    <%-- HTML과 함께 JSP 표현식 사용하여 날짜 출력 --%>
    <p>현재 시간: <%= formattedDate %></p>
    
    <%-- JSP 선언문 : 변수 선언 --%>
    <%!
        int number = 10;
        String message = "Hello, JSP!";
    %>
    
    <%-- HTML과 함께 JSP 표현식 사용하여 변수 출력 --%>
    <p>숫자: <%= number %></p>
    <p>메시지: <%= message %></p>
    
    <%-- JSP 주석 : HTML 주석 --%>
    <!-- 이 부분은 HTML 주석입니다. JSP에서는 이렇게 사용할 수 있습니다. -->
    
    <%-- JSP 액션 태그 : Java 코드 실행 및 제어 --%>
    <%-- if-else 구문 --%>
    <% if (number > 5) { %>
        <p>숫자가 5보다 큽니다.</p>
    <% } else { %>
        <p>숫자가 5보다 작거나 같습니다.</p>
    <% } %>
    
     <%-- JSP 액션 태그 : include 지시자를 사용한 다른 JSP 파일 포함 --%>
    <%-- <%@ include file="included.jsp" %> -->
    
    
    <%-- JSP 표현언어(EL) : 변수 값 출력 --%>
    <p>EL 표현식을 사용한 숫자: ${10}</p>
    <p>EL 표현식을 사용한 메시지: ${"Hello, JSP!"}</p>
</body>
</html>

 

JSP 처리 과정

웹 브라우저에 JSP 페이지에 해당하는 URL을 입력하면, 톰캣 서버는 다음과 같은 과정을 거쳐 JSP 페이지를 실행한다.

 

JSP를 실행한다는 말은 곧 JSP 페이지를 컴파일한 결과인 서블릿 클래스를 실행한다는 의미가 된다.
반응형

'Java > Java 이론' 카테고리의 다른 글

[JSP] JSP 기초 문법  (0) 2024.07.03
[JSP] JSP 라이프사이클  (0) 2024.07.03
스레드(Thread)  (0) 2023.10.04
중첩 클래스  (0) 2023.10.02
람다 함수  (0) 2023.10.02
반응형

💡 JSP의 조건문, URL 매개변수에 3개를 전달해서 조건에 따라 출력하기

📂 MultiParamController.java

   TODO : 예제 3) JSP의 조건문, URL 매개변수 3개를 전달해서 조건에 따라 출력하기
//     URL 테스트 : http://localhost:8000/exam03/condition?name=삼식이&color=brown&kind=dog
    @GetMapping("/condition")
    public String setCondition(Model model,
                               @RequestParam(defaultValue = "") String name,
                               @RequestParam(defaultValue = "") String color,
                               @RequestParam(defaultValue = "") String kind)
    {
        model.addAttribute("name", name);
        model.addAttribute("color", color);
        model.addAttribute("kind", kind);
        return "/exam03/condition.jsp";
    }
}

📂 condition.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%--TODO : JSTL 표현식 사용을 위한 import--%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <%--    TODO 부트스트랩 CSS CDN --%>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet"
          integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
</head>
<body>
    <div class="container">
        <h2>매개변수(파라메터) 전달받아 출력하기</h2>
        <p>${name}</p>
        <p>${color}</p>
        <p>${kind}</p>

<%--        TODO : if 조건문으로 출력하기: jstl 표현식, else 없음 사용--%>
<%--         사용법 : <c:if test="${조건식}">실행문</c:if>--%>
        <c:if test="${name == '삼식이'}">
            <p>삼식이가 맞습니다.</p>
        </c:if>
    </div>
</body>
</html>

✅ JSP의 if 조건문

JSP에서 if 조건문을 사용할 경우에는 JSTL 표현식을 사용합니다. 사용법은 아래와 같습니다.

<c:if test="${조건식}> 실행문 </c:if>

단 JSP의 if 조건문은 JAVA에서 처럼 else구문이 따로 없는것이 특징입니다.

 

그럼 else 구문을 사용하려면 어떻게 해야할까요?

 

✅ JSP의 choose 조건문

choose 조건문은 JAVA의 if ~ else if 구문과 비슷합니다.

 

JAVA의 else 구문과 같은 의미인 otherwise가 있습니다.

 

📌 choose 조건문

<%--        TODO : choose 조건문으로 출력하기, else 있음--%>
        <c:choose>
            <c:when test="${color == 'brown'}">
                갈색입니다.
            </c:when>
            <c:when test="${color == 'yellow'}">
                노란색입니다.
            </c:when>
            <c:otherwise>
                다른색입니다.
            </c:otherwise>
        </c:choose>

📌 사용법

// TODO: choose 조건문으로 출력하기 , else 있음

사용법 
<c:choose>
(if, else if): <c:when test="조건문">실행문</c:when>
(else): <c:otherwise>실행문</c:otherwise>
</c:choose>

📌 출력결과

반응형

+ Recent posts