-
[ JSP ] JSP 구성요소, 내장객체PROGRAMMING/Web 2022. 5. 26. 23:41
하루입니다.
디렉티브
- JSP페이지에 대한 설정 정보를 정의한다.
Page 디렉티브
<%@ page 속성="속성값" />page 디렉티브의 주요 속성
contentType
- 응답컨텐츠의 타입 및 인코딩방식을 설정한다.
<% page contentType="text/html; charset=utf-8" %>pageEncoding
jsp 파일 저장할 때 사용할 인코딩 방식을 설정한다.
<%@ page pageEncoding="utf-8" %>import
<%@ page import="java.util.List"%>errerPage
발생한 에러를 전달받는 jsp 페이지이다. 여러 jsp 페이지에서 오류가 발생해도 하나의 jsp 페이지에서 일괄적으로 오류를 처리할 수 있다.
<%@ page errorPage="serverError.jsp" %>
home.jsp도 list.jsp도 error.jsp로 에러를 보낸다. trimDirectiveWhiteSpace
디렉티브 정의로 발생되는 빈줄을 삭제할지 여부를 설정한다.
<%@ page trimDirectiveWhiteSpace="true" %>
트림 전 
트림 후 (line 12부터 빈줄이 줄어들었다) include 디렉티브
JSP페이지에 다른 JSP 페이지를 포함시킨다.
<%@ include file="현재페이지에 포함시킬 jsp파일의 경로와 이름" />
웹사이트 중 헤더 배너 푸터는 같은데 본문 내용만 달라지는 웹사이트들이 있을 것. 그런 사이트의 경우엔 헤더, 배너, 푸터의 JSP 페이지만 따로 만든다. 본문 내용을 만든 후 헤더 배너 푸터의 JSP 파일을 조립하면 된다. 페이지마다 내용 바뀌는 경우는 굳이 쓸 일 없다.
스크립트요소
<%스크립트릿 %>
- JSP가 자바파일로 변환될 때, _jspService메소드 내에 포함되는 코드 작성할 수 있게 한다.
- 접근제한자 가진 변수 정의 불가
- 메소드 정의 블가
<%=표현식 %>
- 변수에 저장된 값이나, 메소드의 실행결과로 획득되는 반환값을 표현식에서 사용할 수 있다.
- 반환값 없는 거 사용 불가.
- <%=book.getNo()%> 가능
- <%=book.setNo()%> 불가능. 반환값이 없다.
<%!선언식 %>

- 안에 적은 게 가장 상위로 올라간다. 생성제한자도 사용 가능. 멤버변수/클래스변수/멤버메소드/정적메소드 이런 거랑 비슷하다고 생각.
- 그런데 잘 안 쓴다. 왜일까? 객체를 메소드로 만든 이유는 다른 곳에서도 사용하기 위함이니까. 이런 식으로 적으면 해당 jsp페이지 내에서만 사용 가능하다. 자주 사용된다면 유용할 수 있으나, util 클래스로 만들어도 되는 거니까.
<%-- 주석 --%>
<%-- 이 코드는 자바코드로 변환될 때 주석처리되어서 실행되지 않는다. --%>JSP의 내장객체
톰캣은 jsp가 자바로 변환될 때 사용 가능하도록 유용한 객체들을 미리 안에 담아뒀다.
객체 중 꼭 알아야 할 것 (나머진 나중에)
변수명 클래스명 설명 request HttpServletRequest 클라이언트가 보낸 요청메세지 정보를 저장한다. response HttpServletResponse 클라이언트로 보낼 응답메세지 정보를 저장한다. session HttpSession 세션정보를 저장한다.(로그인처리와 관련) 
jsp 내장객체 선언 - 객체 획득 후 변수 대입 - 우리가 적은 코드 이 순서로 적혀있다.
톰캣이 이렇게 요청메세지를 담고 - 담은 걸 분석하고 - 다 해 준다. 우리는 request.get~을 사용하여 원하는 값을 얻을 수 있다.
// 요청라인정보 String method = request.getMethod(); String uri = request.getRequestURI(); String protocol = request.getProtocol(); // 요청헤더정보 String accept = request.getHeader("Accept"); String acceptEncoding = request.getHeader("Accept-encoding"); String acceptLanguage = request.getHeader("Accept-language"); String userAgent = request.getHeader("User-Agent"); // 클라이언트의 ip주소 String ipAddress = request.getRemoteAddr();
잘못된 정보에 대한 지적은 언제나 환영입니다.
복습 끝!
'PROGRAMMING > Web' 카테고리의 다른 글
[ JSP ] 로그인하기(HttpSession), 로그인 활용(cart), 절대주소와 상대주소 (0) 2022.05.31 [ JSP ] 서블릿(Servlet)의 주요 객체 (0) 2022.05.30 [ JSP ] 클라이언트의 요청방식 (0) 2022.05.26 [ Web ] Tomcat, html, JSP (0) 2022.05.25 [ Web ] 네트워크 (0) 2022.05.25