JSP

TPark·2020년 4월 14일
0

백엔드

목록 보기
7/8

JSP (Java Server Pages) 란

Java 언어를 기반으로 하는 Server Side 스크립트 언어

  • HTML 코드에 자바코드를 넣어 동적인 웹페이지 생성

  • JSP는 내부적으로 servlet으로 변환하기 때문에 servlet의 문법을 따른다

  • servlet의 모든 기능 + 추가적인 기능

  • JSP = Java + html(HTML + CSS + Javascript)

예)

<!DOCTYPE html> : 문서를 읽어 실행시키는 웹 브라우저에게 이 문서는 HTML5 문법을 준수해서 태그를 썻다고 알려주는 부분

<% for(int i = 1; i < 10; i++){ %> 
//위와 같이 자바문법을 사용하는 부분을 스크립트릿(scriptlet)이라한다

<%= i %> = <%= i * 3%> 
//표현식

<%>}</%>

JSP 지시자의 종류

  1. Page Directive
    • 컨테이너에게 현재 페이지를 어떻게 처리할것인가
    • 형식:
    <%@ page attr1="val1" attr2="val2" ..%>
  2. Include Directive
    • jsp 파일 추가
    • 형식:
    <%@ include file="/addr1/addr2/filename.jsp"%>
  3. Taglib Directive
    • 커스텀 태그에 자주 사용
    • 불필요한 자바코드 감소
    • 형식:
    <%@ taglib prefix="c" uri="http://..."%>

자주사용 되는 특성

  1. errorPage: 에러 발생시 처리될 jsp페이지 지정
  2. isErrorPage: 현재 페이지가 에러페이지인지 지정
  3. buffer: 버퍼의 크기 (기본값: 8kb)
  4. autoflush: 버퍼내용을 자동으로 배보낼지 설정 (true)
  5. isThreadSafe: 쓰레드세이프인지 (true)
  6. extends: 상속
  7. language: 스크립트에서 사용할 언어 (java)
  8. info: 현재 페이지에 대한 설명
  9. contentType: 브라우저로 내보내는 내용의 MIME 형식 지정 및 문자 집합 지정
  10. pageEncoding: 문자집합 지정
  11. import: 페이지에서 사용할 JAVA 패키지나 클래스 지정
  12. session: 세션 사용 유무

JSP 기본객체

  1. request
  2. response
  3. pageContext
  4. session
  5. application
  6. out
  7. config
  8. page
  9. exception

기본객체 공통 메소드

  • setAttribute
  • getAttribute
  • getAttributeNames
  • removeAttribute

Web Page 이동

  1. forward(request, response)

    • RequestDispatcher disp = request.getRequestDispatcher(path);
      disp.forward(request, response);
    • 이동 범위: 어플리케이션내 경로
    • location bar: 기존 url 유지 (실제 이동되는 주소 확인 불가)
    • 객체: 기존의 request, response 그대로 전달
    • 속도: 비교적 빠름
    • 데이터 유지: request의 setAttribute(name, value)를 통해 전달
  2. sendRedirect(location)

    • response.sendRedirect(location)
    • 이동 범위: 동일 서버 포함 타 URL 가능
    • location bar: 이동하는 페이지로 변경
    • 객체: 기존 request, response 소멸, 새로운 request, response 생성
    • 속도: forward에 비해 느림
    • 데이터 유지: request로는 저장 불가능. session 이나 쿠키 이용

0개의 댓글