JSP - JSP

iseon_u·2022년 6월 25일
0

JSP

목록 보기
2/4
post-thumbnail

JSP JavaServer Pages


  • View Template 중 하나
  • 서버 사이드 스크립트 언어
  • HTML 표준에 따라 작성 된다.

JSP 동작 구조

  • 클라이언트에서 서비스가 요청되면 JSP 의 실행을 요구
  • JSP 는 WAS 의 서블릿 컨테이너에서 서블릿 원시코드로 변환
  • 서블릿 원시코드는 바로 컴파일된 후 실행되어 결과를 HTML 형태를 클라이언트에 반환

JSP 구조

  • HTML 기반 위에 Java 코드를 작성한다.

템플릿 데이터

  • HTML, JavaScript, CSS, JSON, XML, TEXT
  • 클라이언트로 출력되는 콘텐츠
  • 서블릿 코드를 생성할 때 출력문으로 바뀐다.
    • 톰캣의 경우 out.println 으로 바뀐다.

Directives 지시자

page 지시자

  • JSP 페이지와 관련된 속성을 정의할 때 사용하는 태그
  • import=”java.util.ArrayList” 도 가능
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>

taglib 지시자

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

Scriptlet Elements 스크립트릿

  • <% %>
    • JSP 문법에 가장 기본이 되는 태그
    • 가급적 사용을 안하는 것을 권장 (유지 보수가 어려워지고 협업에 어려움이 따른다.)
    • <% %> 사이에 실행될 Java 코드 작성
    • 변수 선언, 메서드 실행 가능
    • 스크립트릿 태그 안에 작성한 코드는 서블릿 파일을 만들 때 그대로 복사된다.
<body>
	<% if(true){ System.out.println("TRUE");} %>
</body>

Declarations 선언문

  • <%! %>
    • 변수나 메서드 등을 선언할 때 사용하는 태그
    • 서블릿 클래스의 멤버 (변수, 메서드) 를 선언할 때 사용
    • 선언만 가능
    • JSP 에서 작성 위치는 상관 없다. (대부분 문서 상단에 위치)
      • 선언문은 _jspService() 밖 클래스 블록 안에 복사
<body>
	<%! String name = "PGRRR"; %>
	<%! public int add(int a, int b){ return a+b; } %>
</body>

Expressions 표현식

  • <%= %>
    • 문자열을 출력할 때 사용
    • 결과를 반환하는 Java 코드를 작성해야 한다.
    • 표현식은 출력문으로 만들어지며 스크립트릿과 같이 _jspService() 안에 순서대로 복사
    • ; (세미콜론) 을 작성하지 않는다.
<body>
	<div><%= name %></div>
	<div><%= add(5, 5) %></div>
</body>

EL Expression Language

  • JSP 2.0 에서 추가된 스크립트 언어
  • 기존의 Script tag 의 표현식 <%= %> 태그에서 ${} 로 변경
  • JSP 속성 영역에 저장된 속성 객체의 property 를 출력
  • 리터럴 데이터, 다양한 연산 결과 출력 가능

Servelt Data Storge 서블릿 데이터 보관소

데이터 접근

<object>.setAttribute(<key>, <value>);
<object>.getAttribute(<key>);
  • 접근 방식은 모든 보관소 동일

ServletContext

  • 웹 애플리케이션이 시작될 때 생성, 종료될 때까지 유지
  • 웹 애플리케이션이 실행되는 동안 모든 서블릿이 사용 가능

HttpSession

  • 클라이언트 최초 요청시 생성되어 브라우저를 닫을 때까지 유지
  • 클라이언트 당 한 개씩 생성
  • 보통 로그인할 때 보관소를 초기화하고 로그아웃하면 저장된 값 삭제

ServletRequest

  • 클라이언트의 요청이 들어올 때 생성되서 응답할 때까지 유지

JspContext

  • JSP 를 실행하는 동안 유지
profile
🧑🏻‍💻 Hello World!

0개의 댓글