Programming/Servlet & JSP

JSP (2) - Scriptlet : 스크립틀릿, 주석문, 지시자

코딩하는 포메라니안 2022. 3. 23. 01:34

0. Scriptlet이란?

JSP파일에서 Java코드를 쓸 때, 사용되는 코드 블럭을 말함.

종류는 아래와 같다.

1) 선언

2) 처리

3) 출력

 

 

 

1. 선언

- 멤버변수 선언 혹은 메서드를 선언하는 영역

<%! 멤버변수 & method %>

 

[예시코드]

<%!
String name = "홍길동";

public void introduce(){
    out.println("내 이름은 "+name+"입니다.");
}
%>

 

 

 

2. 처리

- Servlet으로 변환하면 service() method가 되는 영역

- 요청 처리 Logic을 구현

<% JAVA Code %>

 

 

 

3. 출력

- 표현식이라고도 함

- 데이터를 브라우저에 출력할 때 사용

- 문자열 뒤에 세미콜론(;) 작성 X : <%= name; %>

<%= 출력할문자열 %>

 

[예시코드]

아래 두 라인은 같은 결과를 출력함

<%= name %>
<% out.print(name); %>

 


 

4. 주석

<%-- 주석 할 라인 --%>

 

 

[html주석과 jsp주석의 차이점]

jsp파일에는 html주석과 jsp주석 모두 사용할 수 있다.

 

두 주석의 차이는 두 파일의 실행 시점이 다름을 이해하면 된다.

jsp => servlet일 때 % 태그인 java를 해석(실행)한 후, servlet이 client로 가서 html, css, js를 해석(실행)하기 때문에, 

jsp로 html문서를 통제할 수 있지만 반대는 적용되지 않는다.

 

<%-- <h2>html문서입니다.</h2> html코드를 막을 수 O--%>
<!-- <% name.length() %> 자바코드를 막을 수 X-->

 

주석의 경우, jsp => servlet 변환 시 jsp주석이 무시되고 html주석은 같이 변환하여 client로 전송된다.

html의 주석은 client에서 무시 처리하고, 필요한 코드만 실행하게 된다.

 

 


 

5. 지시자

<%@ ... %>

 

1. page 지시자

- 컨테이너에게 해당 JSP페이지 처리 방법에 대해 지시

속성 기본값 설명
language java 사용할 언어 지정
contentType text/html;charset=ISO-8859-1 현재 JSP 페이지에 대한 설명
import   사용할 Java 패키지나 클래스 불러오기
session true 세션 사용 유무
errorPage   에러 발생 시, 처리될(이동할) JSP페이지 지정
isErrorPage false 현재 JSP 페이지가 에러를 핸들링하는 페이지인지 지정

 

//형식
<%@ page attr1="val1" attr2="val2" ... %>

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

 

 

2. include 지시자

- jsp file을 해당 페이지에 포함시키는 것으로, 반복적으로 사용되는 부분을 쓸 때 유용

- 복사 & 붙여넣기와 같은 효과로 include한 파일에서 쓴 변수를 해당 페이지에서 사용 가능함

<%--header.jsp파일--%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%
String name = "홍길동";
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
	.header{
		height: 30px;
		background-color: skyblue;
	}
</style>
</head>
<body>
	<div class="header">
		여기는 파일의 header입니다!!
		여러 파일에 쓰여서 파일을 따로 만들었습니다.
	</div>
	
</body>
</html>

 

<%--main.jsp파일--%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="/header.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	안녕하세요 <%= name %>님,
	<br>
	여기는 main.jsp입니다.
</body>
</html>

 

 

 

3. taglib 지시자

- JSTL 혹은 사용자가 만든 커스텀 태그를 이용할 때 사용

- JSP에서 불필요한 자바코드를 줄일 수 있음

 

2022.03.27 - [웹프로그래밍/Servlet & JSP] - JSP (4) - JSTL

 

JSP (4) - JSTL

1. JSTL(Jsp Standard Tag Library)이란? JSP 표준 태그 라이브러리는 웹 개발을 위한 컴포넌트 모음으로, JSP페이지에서 스크립트릿을 사용하지 않고 간단하게 처리할 수 있는 방법을 제공한다. 2. JSTL core l

yerinpy73.tistory.com