[Back-End] JSP

unzinzanda·2023년 3월 23일
0

Back-end

목록 보기
2/4
post-thumbnail

JSP(Java Server Page)

JSP

  • HTML 내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어.
  • 웹 어플리케이션 서버(WAS)에서 동작.
  • code를 작성할 땐 script 기반이지만 실행을 하면 compile 기반으로 바뀜.(java → class 파일로 변환)
  • 자바 서버 페이지는 실행 시에 자바 서블릿으로 변환된 후 실행되므로 서블릿과 거의 유사하지만 HTML 표준에 따라 작성되므로 웹 디자인하기 편리.
  • JSP 태그 라이브러리를 사용하는 경우에는 자바 코딩없이 태그만으로 간략히 기술이 가능.

jsp 동작 흐름

JSP 동작 화면

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	Hello JSP !!!
	안녕 제이에스피 !
</body>
</html>

  • 별도의 셋팅 없이도 한글이 깨지지 않음.
  • 그냥 html 쓰듯이 쓰고 그 내용이 출력.

JSP Scriptlet

JSP 스크립팅 요소(Scripting Element)

  1. 선언(Declaration)

    • 멤버 변수 선언이나 메소드를 선언하는 영역.
    • <%! 멤버변수와 메소드 작성 %>
  2. 스크립트릿(Scriptlet)

    • Client 요청 시마다 매번 호출되는 영역으로, Servlet으로 변환 시 service() method에 해당하는 영역.
    • request, respons에 관련된 코드 구현
    • <% java code %>
  3. 표현식 (Expression)

    • 데이터를 브라우저에 출력할 때 사용.
    • <%= 문자열 %>
    • 문자열 뒤에 세미콜론( ; )은 작성하면 안됨.
  4. 주석 (Comment)

    • 코드 상에서 부가 설명을 작성.
    • <%— 주석 —%>
    • html 주석과 jsp 주석의 차이점
      • html 주석은 자바 코드에 남지만 jsp 주석은 남지 않음

      • html 주석으로 자바 코드를 주석 처리할 수 없지만 jsp 주석은 가능.

        <%@ page language="java" contentType="text/html; charset=UTF-8"
            pageEncoding="UTF-8"%>
        <% String name = null; %>
        <!DOCTYPE html>
        <html>
        <head>
        <meta charset="UTF-8">
        <title>Insert title here</title>
        </head>
        <body>
        	Hello JSP !!!
        	안녕 제이에스피 !
        	// html 주석은 자바 코드의 실행을 막을 수 없음
        	<!-- <%= name.length() %> -->
        	// 자바 코드를 주석처리하고 싶으면 jsp 주석 사용
        	<%-- <%= name.length() %> --%>
        </body>
        </html>

JSP Directive

JSP 지시자

  1. page Directive

    • 컨테이너에게 현재 JSP 페이지를 어떻게 처리할 것인가에 대한 정보를 제공.
    • 페이지에 적용할 속성을 작성.
    • <%@ page attr1=”val1” attr2=”val2” … %>

    • import=”java.util.*” 이런 식으로 항상 attr=”val” 식으로 해야 함.

  2. include Directive

    • 특정 jsp file을 페이지에 포함.
    • 여러 jsp페이지에서 반복적으로 사용되는 부분을 jsp file로 만든 후 반복 영역에 include 시켜 반복되는 코드를 줄일 수 있음.
    • <%@ include file=”/templet/header.jsp %>
  3. taglib Directive

    • JSTL 또는 사용자에 의해서 만든 커스텀 태그를 이용할 때 사용되며 JSP 페이지 내에 불필요한 자바 코드를 줄일 수 있음.
    • <%@ taglib prefix=”c” url=”http://java.sun.com/jsp/jstl/core” %>

JSP 기본 객체

JSP 기본 객체

  • pageContext가 프로젝트 안에서 내가 보고 있는 페이지, 가장 작은 범위.
  • session : pageContext와 application 중간 범위.
  • application : 프로젝트 전체, 가장 넓은 범위.
  • 범위 : pageContext < request < session < application

  • out 대신 출력 태그(<%= %>) 써도 됨

JSP 기본객체의 영역(scope)

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

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

  • 자바이기 때문에 속성의 값으로 Object형 데이터를 저장할 수 있음.

WEB Page 이동

  • sendRedirect는 request와 response에 있던 것을 버리고 이동.
  • forward는 request와 response를 가지고 이동.
profile
안녕하세요 :)

0개의 댓글