JSP [03] JSP 기초, Scriptlet

totwo·2024년 7월 10일

JSP/Servlet/JSTL

목록 보기
3/15
post-thumbnail

JSP

: Java Server page의 약자이며
HTML 코드에 JAVA 코드를 넣어 동적 웹페이지를 생성하는 웹 어플리케이션 도구이다.
JSP가 실행되면 자바 서블릿(Servlet) 으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.
(출처: https://javacpro.tistory.com/43)

JSP의 필요성

  • Servlet의 수정이 어렵다.
  • 프로그램이 복잡해지면 Servlet을 통해 출력되는 HTML 페이지를 상상하기 어렵다.
    → JSP를 사용하여 Java 내에서 HTML 코드를 작성할 수 있음!


[기본 jsp 실행시]

html 구조지만 제일 상단에 페이지 지시자를 가지고 있다!

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%> 
  • <%@ page ... %> : 현재 page의 정보를 설정하는 태그


💠 Scriptlet

: JSP에서 Java 코드를 쓰기 위해서는 스크립트립 안에 작성을 해야 한다.
: <% %>
스크립트립 내에서 주석 사용시 java 주석인 // 사용하여도 됨

✔ 표현식

: <%= %>

html 주석

: <!-- -->
: html 주석만 html에서 보인다. 나머지 주석은 사용자가 볼 수 없음.

JSP 주석

:<%-- --%>



[예시] 스크립트립, 표현식, 주석 사용해보기

<body>
	<%
		int num = 100;
	%>  
	<%= num %>
    
	<!-- html 주석 -->
    <%-- JSP 주석 --%>
    <% // JAVA 주석 %>
</body>


→ html주석 말고 다른 jsp주석, java 주석이 안 보인다


[예시] 5부터 682까지 합은?

<body>  
	<%  
		int sum = 0;
		for(int i = 5; i <= 682; i++){ 
			sum+=i;
		}
	%> 
	5부터 682까지의 합은 = <%= sum %>  
</body>

[실습] 1~10을 표 안에 넣어 웹에 출력해보자

<body>  
	<table border='1px solid black'>
	<tr>  
		<!-- 1번째 방법 -->
		<% for(int i = 1; i <= 10; i++){ %>
			<td><%= i %></td>
		<% } %>
	</tr>
	</table> 
	<br>
	<table border='1px solid black'>
	<tr> 
	    <!-- 2번째 방법 -->
	    <% 
	    String result = "";
		for(int i = 1; i <= 10; i++){ 
				result += "<td>"+i+"</td>"; 
		}%>
		<%= result %>
	    
	</tr>
	</table> 
</body>
  • 선언문 : 필드나 메소드를 만들기 위해 사용하는 문법

[예시] 필드, 메소드 선언해보기

	<%! 
		// 필드
		private	String name = "슈슈";
		
		// 메소드
		public String hello(){
			return "hello";
		}
	%>
	
	<%
		String team = "LETS GET IT";
	%>
	
	<%= hello() %>
	

💠 내장객체

내장객체란?
(Implict Object)

  • JSP page 안에 선언을 하지 않고도 사용할 수 있는 객체
  • JSP page 안에서 내장객체를 사용할 수 있는 이유는 Web container가 JSP page를 Servlet class로 변환시키면서 자동으로 내장 객체를 선언함.
  • JSP page 안에 별도의 import문 없이 자유롭게 사용 가능

[실습] 나이에 따라서 web page에 다르게 보여주기

<body> 
	<%
		int age = 200;
		
		if(age >= 500){
			out.println("<h1>당신은 불혹의 나이군요..</h1>");
		}else if(age >= 30){
			out.println("<h1>당신은 아직 한창이군요</h1>");
		}else if(age >= 20){
			out.println("<h1>당신은 매우 젊습니다.</h1>");
		}
	%>
</body>
profile
Hello, World!

0개의 댓글