ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ 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();

     

     

     

     

     

     


     

     

    잘못된 정보에 대한 지적은 언제나 환영입니다. 

     

    복습 끝!

     

     

     

     

Designed by Tistory.