developer-ellen
인간 디버거의 로그 찍기
developer-ellen
전체 방문자
오늘
어제
  • 분류 전체보기 (217)
    • 회고록 (0)
    • 취뽀 및 커리어 여정의 Stack (2)
      • SSAFY 7기 (2)
    • 프로그래밍공부 (24)
      • c++ (0)
      • JAVA (3)
      • Spring (5)
      • design pattern (3)
      • BackDB (1)
      • Servlet&JSP (3)
      • Vue (4)
      • JPA (4)
      • Infra (1)
      • Linux (0)
    • AI (3)
      • papers (3)
      • trend (0)
    • 프로젝트진행 (0)
      • 데이터베이스 (0)
      • 서버개발 (0)
      • 인공지능 (0)
      • 하루정리 (0)
    • 포트폴리오 (0)
    • 알고리즘 (158)
      • 알고리즘문풀 (155)
      • 알고리즘공부 (3)
    • 통계공부 (15)
      • 시계열분석 (15)
      • 회귀분석 (0)
    • CS (14)
      • 컴퓨터네트워크 (4)
      • 운영체제 (8)
      • 데이터베이스 (2)
    • 주저리주저리 (0)
      • 필사 (0)
    • 취업관련정보 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 삼성코테기출
  • c++디자인패턴
  • 백준파이썬풀이
  • 삼성코테구현풀이
  • Arima
  • 삼성코테구현문제추천
  • 카카오코테
  • MA모형
  • 삼성코테준비
  • 통계학
  • 삼성코테기출자바풀이
  • 통계분석
  • 카카오코테java풀이
  • BOJ파이썬풀이
  • 삼성코테파이썬
  • 코테파이썬
  • 삼성코테파이썬풀이
  • ARIMA모형
  • 삼성코테자바풀이
  • c++ 빌더 패턴
  • 운영체제인터럽트
  • 삼성코테자바준비
  • 시계열분석
  • 삼성코테자바꿀팁
  • 데이터분석
  • AR모형
  • SW역량테스트파이썬
  • 삼성코테파이썬준비
  • 시계열
  • SW역량테스트파이썬풀이

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
developer-ellen

인간 디버거의 로그 찍기

JSP(Java Server Page)란 ?
프로그래밍공부/Servlet&JSP

JSP(Java Server Page)란 ?

2022. 3. 23. 01:14

JSP (Java Server Page)

1. JSP 란?

  • JSP는 HTML 내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹페이지를 생성하여 웹브라우저를 돌려주는 언어
  • Java EE 스펙 중 하나로 웹 애플리케이션 서버에서 동작함
  • JSP는 실생시에 자바 서블릿으로 변환되어 실행되어 서블릿과 거의 유사함. 그러나 서블릿과 달리 HTML 표준에 따라 작성되므로 웹 디자인에 편리함
  • 아파치 스트럿츠나 자카르타 프로젝트의 JSTL 등의 JSP 태그 라이브러리를 사용하는 경우 자바 코딩 없이 태그만으로 간략한 기술이 가능하므로 생산성을 높일 수 있음

 

2. JSP 의 동작 흐름

 

  • 최초 jsp 요청하면 jsp file로 변경될 때 jsp가 servlet으로 변경됨
** jsp -> servlet 변환 파일 확인 경로
%workspace%\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\[project]\org\apache\jsp

 

 

2. JSP 의 스크립트 요소

1) 선언 : 멤버 변수 선언이나 메소드르 선언하는 영역

// 형식
<%! 멤버변수와 method 작성%>

2) 스크립트릿 : Client 요청 시 호출되는 영역으로 Servlet 으로 변환 시 service() method에 해당되는 영역이며 request, response에 관련된 코드를 구현하는 곳

// 형식
<%
이곳에 자바코드 작성
%>

3) 표현식 : 데이터를 브라우저에 출력할 때 사용

  • 문자열 뒤에 세미콜론 작성하면 안됨
  • <%= 문자열 %> 이랑 <% out.println(문자열); %> 이랑 같은 표현임
// 형식
<%= 문자열 %>

4) 주석 : 코드 상에 부가 설명을 작성 

<!-- HTML 주석 -->
<%-- JSP 주석 -->
<%
	// JAVA 주석
%>

 

3. JSP 의 지시자

1) page Directive 

  • 컨테이너에게 현재 JSP 페이지를 어떻게 처리할 인지에 대한 정보를 제공
속성 기본값 설명
language java 스크립트에 사용할 언어 지정
info   현재 JSP 페이지의 설명
contentType text/html;charset=UTF-8 브라우저에 내보내는 내용의 MIME 형식 지정 및 문자 집합 지정
pageEncoding UTF-8 현재 JSP 페이지 문자집합 지정
import   현재에 import할 java 패키지나 클래스
session true 세션의 유무 사용 설정
errorPage   에러가 발생할 때 대신 처리될 JSP 페이지 지정
isErrorPage false 현재 JSP 페이지가 에러 핸들링 하는 페이지인지를 지정하는 요소

 

2) include Directive

  • 특정 jsp file을 페이지에 포함 
  • 여러 jsp 페이지에서 반복적으로 사용되는 부분을 jsp file로 만든 후 반복 영역에 include 시킬 수 있음

3) taglib Directive

  • JSTL 또는 사용자에 의해서 만든 커스텀 태그를 이용할 때 사용
  • JSP 페이지 내에 불필요한 자바 코드를 줄일 수 있음
// 1. page Directive
<%@ page attr1="val1" attr2="val2" %>

// 2. include Directive
<%@ include file ="/template/header.jsp" %>

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

 

4. JSP 의 기본 객체

1) JSP의 기본 객체

 

2) JSP 기본객체의 영역

기본 객체 설명
pageContext 하나의 JSP 페이지를 처리할 때 사용되는 영역. 한번의 클라이언트 요청에 대하여 하나의 JSP 페이지가 호출되며 이 때 단 한개의 page 객체만 대응이 됨. 페이지 영역에 저장한 값은 페이지를 벗어나면 사라짐. 커스텀 태그에서 새로운 변수를 추가할 때 사용함
request 하나의 HTTP 요청을 처리할 때 사용되는 영역. 웹 브라우저가 요청을 할 때마다 새로운 request 객체가 생성됨. request 영역에 저장한 속성은 그 요청에 대한 응답이 완료되면 사라짐.
session 하나의 웹 브라우저와 관련된 영역으로 같은 웹 브라우저 내에서 요청되는 페이지들은 같은 session들을 공유하게됨 -> 로그인 정보 등을 저장
application 하나의 웹 어플리케이션과 관련된 영역이며 웹 어플리케이션 1개의 application 객체가 생성됨. 같은 웹 어플리케이션에서 요청되는 페이지들은 같은 applicatin 객체를 공유함

 

2) JSP 기본객체의 영역 - 공통 method

- sevlet과 jsp 페이지 간에 특정 정보를 주고 받거나 공유하기 위한 메소드를 지원

method 설명
void setAttribute(String name, Object value) 문자열 name 이름으로 Object형 데이터를 저장. Object형이므로 어떠한 Java 객체도 저장이 가능
Object getAttribute(String name) 문자열 name에 해당하는 속성 값이 있다면 Object 형태로 가져오고 없으면 null을 리턴. 따라서 리턴 값에 대한 적절한 형 변환이 필요
Enumeration getAttributeNames() 현재 객체에 저장된 속성들의 이름들을 Enumeration 형태로 가져옴
void removeAttribute(String name) 문자열 name에 해당하는 속성을 삭제함.

 

5. WEB Page 이동

  forward(request, response) sendRedirect(location)
사용 방법 RequestDispatcher dispatcher =
 request.getRequestDispatcher(path);

dispatcher.forward(request, response);
response.sendRedirect(location);
이동 범위 동일 서버(project) 내 경로 동일 서버 포함 타 URL 가능
location bar 기존 URL 유지 (실제 이동되는 주소 확인 불가) 이동하는 page로 변경
객체 기존의 request와 response가 그대로 전달 기존의 request와 response는 소멸되고 새로운 request와 response가 생성됨.
속도 비교적 빠름 forward()에 비해 느림
데이터 유지 request의 setAttribute(name, value)를 통해 전달 request로는 data 저장 불가능 session이나 cookie를 이용

 

'프로그래밍공부 > Servlet&JSP' 카테고리의 다른 글

Servlet에 대하여  (0) 2022.03.23
Web Architecture  (0) 2022.03.22
    '프로그래밍공부/Servlet&JSP' 카테고리의 다른 글
    • Servlet에 대하여
    • Web Architecture
    developer-ellen
    developer-ellen

    티스토리툴바