JSP -> 서블릿
서블릿
-callBack
-init() - jspInit()
-service() _jspService()
-destroy() _jspDestroy()
JSP TAG
- 스크립트 태그(Script) - java 코드를 넣는 tag
- 액션 태그(tag) - JSP에서 JAVA코드를 대신하기 위한 tag
○ 표준 액션 tag : servlet/jsp spce에서 제공
○ Custom tag : 사용자 정의 태그
JSP TAG
- 스크립트
- action
- Expression Language : 표현언어
JSP 스크립트 태그
- 지시자(Directive)태그
- 표현식(Expression) 태그
<%=dto.getId() %>
- 선언자(Declaration) 태그 (X)
쓰이는 경우는 거의 없다.
- 스크립트릿(Scriptlet) 태그
가장 많이 쓰인다.
- 주석
○ 지시자 태그
- Web container가 JSP를 Servlet으로 변환 할때 특정 지시를 내리기 위해서 사용하는 태그
- 구문
<%@ 지시어 속성="값" [속성="값" . . ..] %>
<%@page import="member.dto.MemberDTO"%>
- 지시어
- page : 페이지의 기능, 특징을 지시
- include : jsp 페이지에 다른 페이지를 포함시킬 것을 지시
- taglib : jsp페이지에서 사용할 customer tag 라이브러리를 등록을 지시
-page 지시자
-페이지에 관련된 기능 환경을 정의하는 지시어
- 속성
import : jsp에서 사용할 클래스들을 import할때 사용
contentType : response.setContentType()의 인수로 들어갈 값 설정
session : 내장객체 session의 생성 여부 설정. 값 : true/false,true가 default
errorPage : jsp가 실행 도중 exception이 발생했을때 이동할 url 지정
○ 표현식 태그
-응답 Stream을 통해 출력하기 위한 태그
-구문
<%=출력내용%>
ex)
<%="안녕하세요"%> -> 서블릿 변환 -> out.print("안녕하세요");
<%int i=10;%><%=i> -> 서블릿 변환 -> out.print(i);
<%=dto.getId() %>
-서블릿으로 변환시 out.print(출력내용); 으로 변환됨
○ 선언자 태그
-JSP가 서블릿으로 변환될때 서블릿의 member 변수(Field)나 member 메소드를 선언할때 사용
-jspInit(), jspDestroy() 오버라이딩시 사용
_jspService()는 오버라이딩해서는 안된다.
-구문
<%! 선언문 %>
○ 스크립트 태그
-클라이언트의 요청에 대해 서비스하는 동적 코드(java 실행 구문)을 작성 하기 위한 태그
-태그내의 코드는 _jspService()의 로컬 코드로 삽입된다.
- 구문
<% java 코드%>
-ex)
<%if(i){%> ->java code
10보다 큽니다.-> html코드
<%}%> ->java 코드
-> _jspService(){
if(i>10){
out.println("10보다 큽니다.");
}
}
○ 주석
-jsp에서의 주석
-html주석 <!-- 주석 내용 --!> : client에 전송이 됨
-JSP 주석 : <%-- 주석내용 --%> : client에 전송이 안됨
-java 주석 : //, /*주석내용 */
-스크립트릿, 선언자 태그에서 사용 가능
○ 내장 객체(Implicit variable)
-JSP에서 기본적으로 제공해주는 객체
-변수의 선언, 객체의 생성, 할당 없이 JSP 태그에서 사용할 수 있는 객체
-JSP가 서블릿으로 변환될때 web container가 생성해서 제공
-종류
-request : HttpServletRequest
-response : HttpServletResponse
-out : JspWriter -Servlet에서의 PrintWriter 역할
-session : HttpSession -<%@ page session="false"%>로 설정하면 안 생긴다.
-application : ServletContext
-config : ServletConfig(초기 파라미터 조회 말고 안쓰인다)
-pageContext : PageContext - Servlet에는 없는 객체로 다른 내장 객체들을 생성할 수 있다.(커스텀 태그 만들때 쓰인다)
-page : this - 서블릿 객체 자신
-exception : Throwable -<%@ page isErrorPage="true"@%>로 설정된 경우만 생성(default는 false)