-request, response 객체인 이유 : HttpServletRequest 인터페이스의 미완성 메서드의 구현을 TOMCAT에서 하기 때문에
<%-- 주석 --%> : 번역 X
/* */ : 자바 코드의 주석으로 번역
<%@ .... %>
errorPage => 에러 출력 페이지 설정
isErrorPage="true" : 번역될때 exception 내장 객체 생성
isElIgonred="true" : EL 식 사용 불가 X
(Expression Language)
${식}
<%@ page 속성1="값" [속성2 = "값2" ..] %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.*, java.time.LocalDateTime" %>
<%@ page buffer="32kb" %>
//_jsp.java
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 32768, true);
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page errorPage="error.jsp" %>
<%
int num1 = 0;
int num2 = 10;
int result = num2 / num1;
%>
//에러처리할 페이지
<%@ page contentType="text/html; charset=UTF-8" %>
<h1>에러 발생</h1>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page isErrorPage="true" %>
<h1>에러 발생</h1>
<%=exception.getMessage()%>
<%
exception.printStackTrace();
%>
바뀐 에러발생 페이지
${10 + 20}
// 페이지에 30 출력됨
<%@ page isELIgnored="true" %> : EL 사용 안함
// 페이지에 ${10 + 20} 출력됨
JSP, 서블릿, 텍스트 파일 출력 결과물을 물리적으로 포함
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ include file="header.jsp" %>
<main>
<h1>메인 영역</h1>
</main>
<%@ include file="footer.jsp" %>
ex01에서 footer와 header을 연결해줌
태그 라이브러리
JSTL - 3.0
uri="jakrta.tags.core"
참고)
JSTL(1.2~)
uri="http://java.sun.com/jsp/jstl/core|fmt|functions"
https://mvnrepository.com/artifact/org.glassfish.web/jakarta.servlet.jsp.jstl/3.0.1
<%@ page contentType="text/html; charset=UTF-8" %>
<h1>ex01.jsp</h1>
<jsp:forward page="ex02.jsp"></jsp:forward>
응답 버퍼를 교체해버림.
// 실제로 이동함
<%@ page contentType="text/html; charset=UTF-8" %>
<h1>ex03.jsp</h1>
<%
response.sendRedirect("ex02.jsp");
%>
<%@ page contentType="text/html; charset=UTF-8" %>
<jsp:include page="header.jsp" />
<main>
<h1>내용 영역</h1>
</main>
<jsp:include page="footer.jsp" />
forward는 버리고 include는 추가함.
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="jakarta.servlet.*" %>
<h1>ex01.jsp - 상단</h1>
<%
RequestDispatcher rd = request.getRequestDispatcher("ex02.jsp");
// rd.forward(request, response);
rd.include(request, response);
%>
<h1>ex01.jsp - 하단</h1>
참고)
RequestDispatcher
forward(...)
include(..)
M
V(View) - JSP 담당
C(Controller) - Servlet 담당
디렉티브: JSP 페이지의 속성 설정 및 컴파일 시 동작을 정의합니다. 정적인 정보 설정에 사용
액션 태그: JSP 페이지에서 동적으로 기능을 실행하거나 제어를 전환할 때 사용. 동적인 작업에 유용하며, 실행 시점에서 동작