JSP

MinJi·2024년 7월 2일

JSP

  • HTML 코드 안에서 스크립트 형태로 자바 언어를 사용하여 동적인 페이지를 구현한다.
  • 서블릿의 비즈니스 로직으로부터 화면 로직을 분리하는 것으르 목표로 한다.

실행 과정

  • 웹 컨테이너는 클라이언트로부터의 요청이 JSP에 대한 요청일 경우 먼저 JSP 파일을 자바 코드(서블릿)로 변환한다.
  • 변환된 자바 코드(서블릿)를 컴파일하고 서블릿 인스턴스를 생성한다.
  • 서블릿 인스턴스가 생성되면 서블릿의 라이플 사이클을 거치면서 클라이언트의 요청을 처리해준다.

특징

  • 대부분의 운영체제에서 사용이 가능하다.
  • 서버 자원을 효율적으로 사용한다.(요청을 스레드 단위로 처리)
  • MVC 패턴을 쉽게 적용할 수 있다.
  • JSP 파일의 배포 위치는 HTML 파일과 동일하다.

스크립팅 요소

  • <% 로 시작해서 %>로 끝나는 것이 특징이다.

주석 태그

  • <%-- --%>

지시자 태그

  • <%@ 지시자 [속성명="value"] %>

page 지시자

  • JSP 페이지에 대한 속성을 지정한다.
  • JSP 파일 어느 위치에 와도 상관없으나 가장 첫 부분에 작성한다.
<%@ page import="java.io.*"%>
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page isErrorPage="true" %> * 
<%@ page errorPage="/error/errorForm.jsp" %>

include 지시자

  • 다른 페이지(JSP, HTML)를 포함할 때 사용하는 지시자이다.
<%@ include file="footer.html" %>

taglib 지시자

  • JSP에서 사용할 태그 라이브러리를 지정한다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

선언문 태그

  • 서블릿 클래스의 필드와 메소드를 선언할 때 사용한다.
  • <%! %>
<%! public static final String DEFAULT_NAME = "홍길동"; %>
<%! int counter = 0; %>

<%!
  public String getName(HttpServletRequest request){
    return request.getParameter("name");
  }
%>

스크립트릿(Scriptlet) 태그

  • _jspService() 메소드의 지역 변수와 자바 코드를 작성할 때 사용한다.
<% int i = 10; %>

<% if(i > 10) { %>
  ... 
<% } else { %>
  ...
<% } %>

표현식 태그

  • 서블릿 코드에서 out.print()의 역할 수행하는 태그로 클라이언트로 데이터를 출력하는 코드를 작성할 때 사용한다.
  • <%= %>
현재 시간은 <%= new java.util.Date() %> 입니다.

내장 객체

  • JSP에서 기본적으로 제공하는 객체들로 request, response, out 등 스크립트릿 태그와 표현식 태그에서 사용할 수 있게 선언된 객체이다.

내장 객체 영역

  • Page < Request < Session < Application 영역 순으로 범위가 넓다.

JSP 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/servlet-jsp/02_JSP

EL/JSTL

EL(Expression Language)

  • JSP 2.0버전에서 추가된 표현 언어이다.
  • 표현식(Expression) 태그를 대신하여 클라이언트에 출력하고자 하는 값들은 좀 더 간결하게 사용하는 방법이다.
<%= request.getParameter("name") %>

${ param.name }

내장 객체

EL 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/servlet-jsp/03_EL_JSTL/src/main/webapp/views/el

JSP 액션 태그

  • JSP 페이지에서 자바 코드를 직접 입력하지 않고 특정 작업을 수행하는데 사용하는 태그이다.
  • 액션 태그의 경우 웹 브라우저에서 실행되는 것이 아니라 웹 컨테이너에서 실행된다.

표준 액션 태그

  • JSP에서 기본으로 제공하는 액션 태그로 별도의 라이브러리 설치 없이 바로 사용할 수 있다.

jsp:include 태그

  • include 액션 태그는 다른 페이지를 포함 시킬 때 사용하는 액션 태그이다.
  • include 지시자와 다르게 include 액션 태그는 런타임 시에 포함된다.
		<jsp:include page="포함할 페이지" />

jsp:forward 태그

  • forward 액션 태그는 다른 페이지로 요청을 전달할 때 사용하는 액션 태그이다.
  • 요청을 전달하는 페이지에서 request, response 객체가 함께 전달되며 URL은 변경되지 않는다.
		<jsp:forward page="이동할 페이지" />

JSTL(JSP Standard Tag Library)

  • JSP에서 사용하는 커스텀 태그이다.
  • JSP 페이지에서 자주 사용하는 코드들을 사용하기 쉽게 태그로 만들어 표준으로 제공한다.

등록

	<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

JSTL 태그 종류

JSTL 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/servlet-jsp/03_EL_JSTL/src/main/webapp/views/jstl

0개의 댓글