Servlet과 JSP 비교
JSP 실행 방식
JSP 특징
1. JSP 파일이 변경되지 않는다면, '.jsp'파일에 대한 컴파일은 다시 일어나지 않음
2. JSP 파일이 변경될 때 마다 translate 과정을 거쳐 인스턴스를 다시 생성한다
3. JSP 파일의 배포 환경(위치)은 HTML과 동일 (web_root폴더 하단)
JSP Element 표기법
Directive
: < %@지시자% >
페이지에 대한 설정을 하는 지시자 태그이다.
Comments
: <%-- 주석 -- %>
HTML 주석은 클라이언트에게 노출 되지만, JSP 주석은 클라이언트에게 노출되지 않는다
Declaration
: <%! 선언문 %>
서블릿으로 변환 시 선언 태그 내에 작성한 내용을 필드로 선언해준다
Scriptlet
: <% 코드 %>
간단한 자바 코드를 작성할 수 있는 부분 / 스크립틀릿 태그 내에서의 주석은 자바 주석과 동일
선언한 태그 내에서 작성한 내용을 초기화 하고 출력할 수도 있으며, 간단한 로직 처리도 가능
Expression
: <%= 표현식%>
PrintWriter를 이용하여 브라우저에 값을 내보내기하여 브라우저에 보여지게 한다
JSP Element 표기법 예시
페이지 지시자 태그
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>1_simpleHspState</title>
</head>
<body>
선언 태그
<%!
private String name;
private int age;
%>
스크립틀릿 태그
<%
name = "홍길동";
age = 20;
System.out.println("name : " + name );
System.out.println("age : " + age );
for(int i = 0; i < name.length(); i++){
System.out.println(name.charAt(i));
}
%>
expression 태그
name : <%= name %><br>
age : <%= age %><br>
지시자 태그 종류
: page 지시자 태그, include 지시자 태그, taglib 지시자 태그
include 지시자 태그
: 다른 JSP 파일을 포함하기 위해 사용하는 지시자 태그
ex) <div align="center"> <%@include file="today.jsp" %> </div>
file 속성에 jsp경로를 지정해주면 해당 jsp에 작성한 내용을 그대로 포함시켜 현재 jsp 파일을 동작시킴.
동일한 변수 사용시 컴파일 에러!
taglib 지시자 태그
: XML 문법 기반의 라이브러리인 JSTL을 사용하기 위해 선언하는 지시자 태그
page 지시자 태그
: 페이지에 대한 설정을 하는 지시자 태그
- page 지시자 태그 종류
import
: java.lang 패키지 외의 클래스를 현 jsp 파일에서 사용할 때 import 속성에 정의하면 import 선언부를 작성하는 것과 같음
ex) import="java.util.Date, java.util.ArrayList"
errorPage
: 현재 페이지에서 Exception이 발생하게 되면 속성 값에 설장한 JSP 경로로 exception을 던짐
ex) errorPage="errorPage.jsp" / errorPage를 만들어 주어야 함.
isErrorPage
: 현재 페이지가 Exception을 처리할 페이지인 경우 true로 지정한다. 기본 값은 false
ex) isErrorPage = "true" / 설정을 통해 JSP 안에서 exception 객체를 사용할 수 있음 / false은 사용불가
JSP 활용 예제
request.jsp 생성
서블릿 생성
response.jsp 생성
'프로그래밍 > Servlet&JPS' 카테고리의 다른 글
11 Servelt & JSP : JSP Action Tag _ 표준 액션 태그 (0) | 2022.08.25 |
---|---|
10 Servlet & JSP : EL 표현식 (0) | 2022.08.25 |
08 Servlet : listener (0) | 2022.08.24 |
07 Servlet : Filter (0) | 2022.08.24 |
06 Servlet : Session과 Cookie (0) | 2022.08.23 |