JSP -- 자바 웹 기술의 최종 진화
서블릿 | JSP |
자바 코드 안에서 전체 HTML 페이지 생성 | HTML 코드 안에서 필요한 부분만 자바 코드를 스크립트 형태로 추가함. |
변수 선언 및 초기화가 반드시 선행되어야함 | 내장 객체 제공하여 즉시 사용 가능함. |
컨트롤러(Controller) | 처리된 결과 보여주는 뷰(View)만들 때 사용 |
JSP 구성 요소
1)HTML 태그, CSS, JS 코드
2)JSP 기본 태그
3)JSP 액션 태그
JSP 페이지 구성 요소
1)디렉티브 태그(Directive Tag)
2)스크립트 요소(Scripting Element) : 주석문, 스크립틀릿(Scriptlet), 표현식, 선언식
3)표현 언어(Expression Language, EL)
4)내장 객체(내장 변수)
5)액션 태그(Action Tag)
디렉티브 태그 종류
1.페이지(Page Directive Tag)
-JSP 페이지의 전반적인 정보 설정 시 사용
-이클립스에서 자동으로 생성되는 페이지 디렉티브 태그
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
-속성
1)import : 페이지에서 사용할 자바 패키지와 클래스 지정
2)errorPage : 해당 페이지에서 에러가 발생했을 때 에러 발생 여부를 보여줄 페이지를 지정함.
3)isErrorPage : 해당 페이지가 에러를 처리할지 여부를 지정함.
int myAge가 비어있기 때문에 당연히 에러가 발생한다.
=>에러가 발생했을 때 출력할 페이지를 따로 지정. (이미지 태그 사용)
4)trimDirectiveWhitespaces : 지시어 선언으로 공백을 제거할지 여부 지정
trimDirectiveWhitespaces="false"
trimDirectiveWhitespaces="true"
5)buffer : 출력 버퍼의 크기 지정
6)autoFlush : 출력 버퍼가 모두 채워졌을 때 자동으로 비울지 결정.
buffer = "1kb" autoFlush = "false" -> buffer가 채워져도 비워지지 않기 때문에 에러 발생
buffer = "8kb" autoFlush = "true" -> buffer가 채워지고 자동으로 비워지기 때문에 정상적으로 실행
2.인클루드(Include Directive Tag)
-공통으로 사용하는 JSP 페이지를 다른 JSP 페이지에 추가할 때 사용
-재사용성이 높음.
-JSP 페이지 유지 관리가 쉬움.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<%@page import="java.time.LocalDateTime"%>
<%@page import="java.time.LocalDate"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>include 지시어</title>
</head>
<body>
<%
LocalDate today = LocalDate.now(); //오늘 날짜
LocalDateTime tomorrow = LocalDateTime.now().plusDays(1); //내일 날짜
%>
</body>
</html>
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@include file="includeFile.jsp" %> <!-- 다른 JSP 파일 포함 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>include 지시어</title>
</head>
<body>
<%
out.println("오늘 날짜 : "+today);
out.println("<br>");
out.println("내일 날짜 : "+tomorrow);
%>
</body>
</html>
|
cs |
3)태그라이브(Taglib Directive Tag)
-개발자나 프레임워크에서 제공하는 태그 사용 시 사용
-EL(표현 언어)에서 자바 클래스의 메서드를 호출.
-JSTL(JSP 표준 태그 라이브러리) 사용하기 위한 지시어.
'📒 education archive > 📍Servlet, JSP' 카테고리의 다른 글
[국비학원 기록/JSP] 내장 객체, page, request, 세션(session), 애플리케이션(application) 영역 (0) | 2021.12.07 |
---|---|
[국비학원 기록/JSP] 스크립트 요소, 선언문, 스크립틀릿, 표현식, 주석문 (0) | 2021.12.07 |
[국비학원 기록/Servlet] 서블릿 리스너(Listener), 로그인 접속자 수 카운트 (0) | 2021.12.07 |
[국비학원 기록/Servlet] 서블릿 필터(Filter), 필터 한글(utf-8) 인코딩 (0) | 2021.12.06 |
[국비학원 기록/Servlet] 서블릿 스코프(scope), URL - pattern (0) | 2021.12.06 |