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
'Programming > Servlet & JSP' 카테고리의 다른 글
Servlet & JSP (1) - 기본객체(내장객체) (0) | 2022.03.25 |
---|---|
[환경설정] Context root 변경 (0) | 2022.03.24 |
[환경설정] Servlet & JSP 프로젝트 생성 (0) | 2022.03.24 |
Servlet (1) - Servlet이란? (0) | 2022.03.23 |
Web Architecture (0) | 2022.03.22 |