[JSP] JSP 기초

yenn·2021년 1월 27일
1

JSP

목록 보기
3/8
post-thumbnail

1. JSP, JavaServer Pages

  • JSP 위치는 WebContent (폴더)
  • HTML, CSS 등도 WebContent에 존재
  • 모든 JSP는 서블릿으로 바뀌어서 동작

지시자

  • <%p %>

    <%p page ~~ %> : page 지시문, 스크립트 언어, 콘텐츠 타입, charset, 인코딩 언어를 포함

Scriptlet

  • <% ~ %> , 자바코드를 입력할 수 있는 부분

  • HTML 안에서 프로그램을 실행 시킴 (자바코드)

    → 응답 부분으로 주고 싶으면 <%=변수%> 을 이용

JSP 등장 배경

  • 마이크로소프트에서 ASP(Active Server Page)라는 쉽게 웹 개발하는 스크립트 엔진 발표 (1998)
  • 1997년에 발표된 서블릿은 ASP에 비해 상대적으로 개발 방식이 불편
  • ASP에 대항하기 위해 썬마이크로시스템즈에서 JSP 발표 (1999)
  • JSP는 실제 서블릿 기술을 사용
  • 항상 JSP는 서블릿으로 바뀌고 바뀐 서블릿이 실행되는 것임

2. JSP의 라이프 싸이클

JSP 가 실행될 때 일어나는 일

  • 이클립스 워크스페이스 아래 .metadata 폴더에 sum10_jsp.java 파일 생성
  • 해당 파일의 _jspService() 메소드 안을 살펴보면 jsp파일의 내용이 변환되어서 들어가 있음
  • sum10_jsp.java는 서블릿 소스로 자동으로 컴파일 되면서 실행되고 결과가 브라우저에 보여짐

JSP 실행 순서

  1. 브라우저가 웹서버에 JSP에 대한 요청 정보 전달

  2. 브라우저가 요청한 JSP가 최초로 요청했을 경우에만

    1) JSP로 작성된 코드가 서블릿 코드로 변환 (java파일)

    2) 서블릿 코드를 컴파일해서 실행 가능한 bytecode로 변환 (class 파일 생성)

    3) 서블릿 클래스를 로딩하고 인스턴스 생성

  3. 서블릿이 실행되어 요청을 처리하고 응답 정보를 생성

** Service() 가 아닌 필드에 생성하도록 하는 코드 : <%! ~~ %> , 선언문

3. JSP 문법

스크립트 요소

JSP 페이지에서 선언문(Declaration), 스크립트릿(Scriptlet), 표현식(Expression)이라는 3가지 스크립트 요소 제공

  • 선언문(Declaration) : <%! %>, 전역변수 선언 및 메소드 선언에 사용
  • 스크립트릿(Scriptlet): <% %>, 프로그래밍 코드 기술에 사용
  • 표현식(Expression): <%= %>, 화면에 출력할 내용 기술에 사용, 응답결과

선언문

선언문은 JSP페이지 내에서 필요한 멤버변수나 메소드가 필요할 때 선언해 사용하는 요소

  • <%! 문장 %>
  • 서블릿에서 Service() 안에서 자바코드로 변경되어짐
  • 클래스 바디에서 선언되고 표현식은 Service()에서 사용

스크립트릿

일반적으로 많이 사용하는 스크립트 요소

  • <% 문장 %>
  • 프로그래밍 로직을 기술할 때 사용
  • 스크립트릿에서 선언된 변수는 지역변수

표현식

JSP 페이지에서 웹 브라우저에 출력할 부분을 표현

  • <%=문장%>
  • 스크립트릿 내에서 출력할 부분은 내장객체인 out 객체의 print(), println() 메소드를 사용해서 출력

주석

  • HTML 주석, JSP 주석, Java 주석 사용 가능
  • <!-- 문장 -->
  • <%-- 문장 --%> : JSP 페이지에서만 사용, Java&Html 에서도 표시 안됨
  • // , /**/ : 자바가 서블릿으로 실행될 때만 실행 X, JSP → Java 까지는 존재

4. JSP 내장객체

  • JSP 는 실행하면 서블릿 소스가 생성되고 실행이 됨
  • JSP에 입력한 대부분의 코드는 생성된 서블릿 소스의 _jspService() 메소드 안에 삽입되는 코드로 생성됨
  • _jspService()에 삽입된 코드 윗 부분에 미리 선언된 객체들이 존재 → 해당 객체들은 jsp 에서도 사용 가능
  • response, request, application, session, out 과 같은 변수를 내장 객체라고 함

내장 객체 종류

  • request : HTML Form 요소 선택값과 같은 사용자 입력 정보를 읽어올 때 사용
  • response : 사용자 요청에 대한 응답을 처리할 때 사용
  • pageContext : 현재 JSP 실행에 대한 Context 정보를 참조하기 위해서 사용
  • session : 클라이언트 세션 정보 처리하기 위해서 사용
  • application : 웹 서버 어플리케이션 처리와 관련된 정보를 참조하기 위해 사용
  • out : 사용자에게 전달하기 위한 output 스트림 처리
  • config : 현재 JSP에 대한초기화 환경을 처리하기 위해 사용
  • page : 현재 JSP 페이지에 대한 클래스 정보
  • exception : 예외 처리
profile
Junior BackendEngineer 😎

0개의 댓글