[BackEnd] JSP (03/08)

박세윤·2023년 3월 8일

BackEnd

목록 보기
2/5
post-thumbnail

📖 JSP

📌 JSP (Java Server Page)


✅ JSP

  • Servlet 표준을 기반으로 작성된 웹 어플리케이션 개발 언어

  • HTML 내에 Java를 작성(Servlet과 반대)하여 동적으로 웹페이지를 생성하여 브라우저에게 돌려주는 페이지

  • 실행 시 Servlet으로 변환된 후 실행



✅ JSP 구성 요소

  • 지시자(Directive)

    • JSP 페이지에 대한 설정 정보를 지정하기 위해 사용
  • 스크립트 요소 : 스크립트릿(Scriptlet), 표현식(Expression), 선언부(Declaration)

    • JSP에서 문서의 내용을 동적으로 생성하기 위해 사용
  • JSP 기본 객체

    • 요청 및 응답 관련 정보를 얻거나, 응답 결과를 만들기 위해 사용
  • 표현 언어 (Expression Language)

    • JSP를 좀 더 간결하게 작성하기 위해서 사용
  • Action Tag와 JSTL

    • 자주 사용하는 기능을 모아 미리 정의하여 Tag 형태로 작성
    • JSP에서 자바 코드를 쉽게 작성할 수 있도록 사용



📌 JSP 기본 태그

✅ JSP 태그 종류

종류사용용도형식
스크립트릿(scriptlet)자바코드 작성<% %>
선언(declaration)변수, 메소드 선언<%! %>
표현식(expression)계산식이나 함수를 호출한 결과를 문자열 형태로 출력<%= %>
주석(comment)JSP 페이지 설명 작성<%-- --%>
지시자(directive)JSP 페이지 속성 지정<%@ %>



✅ 스크립트릿 (Scriptlet)

  • 스크립팅 언어(java)로 작성된 코드 조각을 포함하는데 사용



✅ 선언부 (Declaration)

  • 멤버 변수 선언이나 메서드를 선언하는 영역



✅ 표현식 (Expression)

  • 변수의 값이나 계산식 혹은 함수를 호출한 결과를 문자열 형태로 웹문서에 출력



✅ 주석문 (Comment)

  • 작성한 코드에 대한 설명을 기술할 경우 사용

  • HTML 주석문과 동일한 기능을 하지만 HTML 주석문은 클라이언트에게 보여지고, JSP 주석문은 보여지지 않는다.

JSP 주석문 vs 스크립트릿 주석문 차이는 강의



✅ 지시자 (Directive)

  • 웹 컨테이너(Tomcat)가 JSP 번역하고 실행하는 방법을 서술

  • page : 해당 JSP 페이지 전반적으로 환경을 설정할 내용 지정

  • include : 현재 페이지에 다른 파일의 내용 삽입할 때 사용

  • taglib : 태그 라이브러리에서 태그를 사용할 수 있게 기능 제공



✅ 지시자 (Directive) - page

  • JSP 페이지 실행 매개변수를 제어

  • 출력처리, 오류처리 등의 내용을 포함




✅ 지시자 (Directive) - include

  • JSP 내에 다른 HTML 문서나 JSP 페이지의 내용을 삽입할 때 사용한다.

  • 반복적으로 사용되는 부분(header, footer 등) 별도로 작성하여 페이지 내에 삽입하면 반복되는 코드의 재작성을 줄일 수 있다.



✅ 지시자 (Directive) - taglib

  • JSTL 또는 사용자가 작성한 커스텀 태그를 사용할 때 작성한다.

  • 불필요한 자바 코드를 줄일 수 있다.



📌 JSP 기본 객체

✅ JSP 기본 객체

내장 객체타입설명
requestjavax.servlet.http.HttpServletRequest요청 정보를 저장하는 객체
responsejavax.servlet.http.HttpServletResponse응답 정보를 저장하는 객체
pageContextjavax.servlet.jsp.PageContextJSP 페이지 정보를 저장하는 객체
sessionjavax.servlet.http.HttpSessionHTTP 세션 정보를 저장하는 객체
applicationjavax.servlet.ServletContext웹 어플리케이션 context 정보를 저장하는 객체
outjavax.servlet.jsp.jsp.jspWriter결과를 출력하기 위해서 사용하는 스트림
configjavax.servlet.ServletConfigJSP 페이지 설정 정보를 포함하는 객체
pagejava.lang.ObjectJSP 페이지를 구현한 자바 클래스 인스턴스
exceptionjava.lang.Throwable에러페이지에서 사용하는 객체, 오류 정보를 담고 있음



✅ JSP 기본 객체 영역 (Scope)



✅ JSP 기본 객체 영역 (Scope) 메서드

  • servlet과 페이지간 정보를 공유하기 위해서 메서드를 지원한다.
메서드반환형설명
setAttribute(String name, Object value)voidkey-value 형태로 각 영역에 데이터를 저장. name이 value를 얻어오기 위한 key가 됨.
getAttribute(String name)Object현재 객체에서 인자로 받은 이름으로 설정된 값을 반환
getAttributeNames()Enumeration현재 객체에서 설정된 값의 모든 속성의 이름을 반환
removeAttribute(String name)void현재 객체에서 인자로 받은 이름으로 설정된 값을 삭제



📌 페이지 이동

✅ 페이지 이동

  • 페이지 이동
    • 요청(request)을 받아서 화면을 변경하는 두 가지 방법

    • 포워드 방식

      • 요청이 들어오면 요청을 받은 JSP 또는 Servlet이 직접 응답을 작성하지 않고 요청을 서버 내부에서 전달하여 해당 요청을 처리하게 하는 방식
    • 리다이렉트 방식

      • 요청이 들어오면 내부 로직을 직접 실행한 후, 브라우저의 URL을 변경하도록 하여 새로운 요청을 생성함으로써 페이지를 이동한다.



✅ 포워드 방식

RequestDispatcher dispatcher = request.getRequestDispatcher("이동할 페이지");
dispatcher.forward(request, response);
  • request, response 객체가 전달되어 사용되기 때문에 객체가 사라지지 않는다.

  • 브라우저에는 최초 요청한 주소가 표시된다.



✅ 리다이렉트 방식

response.sendRrdirect("location");
  • 브라우저가 새로운 요청을 만들어내기 때문에 최초 요청 주소와 다른 요청 주소가 화면에 보여진다.



profile
개발 공부!

0개의 댓글