JSP

mandarinduk·2021년 1월 15일
0

JSP

목록 보기
1/1

JSP 특징

  • 동적 웹어플리케이션 컴포넌트
  • 확장자는 jsp
  • 클라이언트의 요청에 동적으로 동작을 하며, 응답은 html로 응답을 한다.
  • jsp 파일은 서블릿으로 변환되어 실행된다.
  • MVC 패턴에서 view로 이용됨

JSP 동작과정

  1. jsp 파일 요청
  2. jsp 컨테이너로 전송 : 웹컨테이너로 jsp 파일을 넘긴다.
  3. jsp 파일 파싱 : 해당 jsp 파일이 처음 요청된 것이면 파일을 파싱한다. 이전에 요청되었던 페이지일 경우에는 6번 단계로 넘어간다.
  4. 서블릿으로 변환 : 새로운 Java 파일을 생성한다.
  5. 클래스 파일 생성 : 서블릿 파일(Java 파일)은 실행 가능한 상태의 클래스 파일로 컴파일 된다.
  6. 메모리에 로딩됨 : 클래스 파일은 메모리에 로딩됨.
  7. html 전송 : 클래스 파일에 대한 실행 결과는 다시 웹서버로 넘겨진다. 웹서버는 html 형태로 사용자에게 응답을 한다.
  8. 브라우저에 html 실행

JSP 태그 종류

지시자(directive)

<%@ 페이지 속성 %>

종류

  1. page 지시자
    • info: 페이지를 설명해주는 문자열 ex) <%@ page info = "copyrights by~" %>
    • language: jsp 페이지에서 사용할 언어를 지정 <%@ page language="java" %>
    • contentType: jsp 페이지의 내용을 어떠한 형태로 출력할 지를 브라우저에게 알려주는 역할 <%@ contentType="text/html; charset=EUC-KR" %>
    • extends: jsp가 서블릿으로 변환될 때 상속받을 클래스를 지정하는 속성(거의 사용 x)
    • import: 다른 패키지에 있는 클래스를 가져도 사용할 때 <%@ page import="java.util.*, java.sql.*" %>
      JSP 페이지가 자동으로 import하는 패키지
      - javax.servlet
      - javax.servlet.jsp
      - javax.servlet.http
    • session: HttpSession 속성의 사용 여부를 지정 <%@ page session = "false" %>
    • buffer: jsp 페이지의 출력 크기를 KB 단위로 지정하는 속성, 기본 값은 8KB
    • autoFlush: 기본 값은 true, 버퍼가 다 찼을 경우 자동적으로 버퍼를 비우는 속성
    • isThreadSafe: 여러 개의 요청을 처리할 지 여부를 결정(거의 사용 x)
    • errorPage: 예외처리를 할 페이지의 url 지정
    • isErrorPage: 에러 페이지를 담당하는 페이지인지 여부를 지정하는 속성
    • pageEncoding: contentType의 charset과 같다.
  1. include 지시자
    • <%@ include file="aaa.jsp" %>
    • 현재의 jsp 페이지에 다른 jsp 페이지나 html 문서를 불러와서 현재 페이지의 일부로 사용할 때 이용하는 속성
    • 불러올 대상은 file 형태(file 속성 이용).
  1. taglib 지시자
    • <%@ taglib prefix="c" uri="http://oracle.com/jsp/jstl/core" %>
    • 액션을 사용할 때 필요한 지시자
    • 액션을 사용할 때 기본적으로 사용할 수 있는 액션이 있고, 액션이 속한 라이브러리를 설치해야만 사용할 수 있는 액션이 있다.
    • taglib 지시자는 후자의 경우에 필요하다.

스크립팅 요소(스크립트릿, 익스프레션, 선언부)

  • 스클립트릿: <% 자바코드 %>
  • 익스프레션: <%= 결과값 출력 %>
    익스프레션의 결과 값은 String 타입, 세미콜론 사용 불가
  • 선언: <%! 변수, 메서드 선언 %>

주석

<%-- --%>

액션태그

<jsp:action> </jsp:action> 자바빈 연결

JSP 내부 객체

내부객체

객체를 생성하지 않고 바로 사용할 수 있는 객체를 의미
JSP에서 제공되는 내부객체는 JSP 컨테이너에 의해 servlet으로 변환될 때 자동으로 객체가 생성된다.

내부객체 종류

  • 입출력 객체
    request - doGet, doPost 메서드의 첫 번째 파라미터와 동일한 역할
    response - doGet, doPost 메서드의 두 번째 파라미터와 동일한 역할
    out - 웹 브라우저로 HTML 코드를 출력하는 기능(javax.servlet.jsp.jspWriter)
  • 서블릿 객체
    page - jsp 페이지로부터 생성된 서블릿
    config - jsp 페이지의 구성정보를 가져오는 기능
  • 세션 객체
    session - 세션과 관련된 기능
  • 예외 객체
    exception - 예외처리와 관련된 기능

request 객체

  • 사용자(클라이언트)의 요청을 관리하는 객체

  • 관련 메서드
    getContextPath(): 웹 어플리케이션의 컨텍스트 패스를 얻어올 때 사용하는 메서드
    getMethod(): get 방식과 post 방식을 구분하기 위해서 사용
    getSession(): 세션 객체를 얻을 때 사용
    getProtocol(): 해당 프로토콜을 얻어올 때 사용
    getRequestURL(): 요청한 URL을 얻어올 때 사용
    getRequestURI(): 요청 URI를 얻어올 때 사용
    getQueryString(): 쿼리스트링을 얻어올 때 사용
    getParameter(String name): name에 해당하는 파라미터의 값을 구할 때 사용
    getParameterNames(): 모든 파라미터의 이름을 얻어올 때 사용
    getParameterValues(String name): name에 해당하는 파라미터의 값들을 얻어올 때 사용(return 타입은 배열)

response 객체

  • 관련 메서드
    getCharacterEncoding(): 응답할 때 문자 인코딩을 얻어올 때
    addCookie(Cookie): 쿠키를 지정할 때
    sendRedirect(URL): 이동하고자 하는 URL을 지정할 때
profile
front-end 신입 개발자

0개의 댓글