JSP, 요청응답방식

김고양이·2023년 9월 18일

BackEnd

목록 보기
4/8

JSP (Java Server Page)

- 웹 컨테이너

  • JSP 컨테이너, Servlet 컨테이너
    • .jsp 파일을 java파일(서블릿 파일)로 변환해주는 역할

- JSP의 변환과 동작 방식

  1. .jsp는 JSP 컨테이너에 의해 Servlet파일(.java)로 변환됨
  2. 변환된 Servlet파일은 서블릿 컨테이너에 의해 관리됨
    • 해당 jsp에 대한 요청 수신 시, 응답으로 out.write()를 통해 문자열(HTML문서)을 클라이언트에게 반환

1. 지시자 (Directive)

<%@ page %>

  • 페이지에 대한 정보 지정
  • import
  • session

<%@ include file =".jsp파일명" %>

  • 메뉴바, footer등 모든 페이지에서 중복 사용되는 것들을 모듈별로 관리할 수 있음

2. 선언 (Declaration)

<%! 멤버변수, 메소드 선언 %>

  • .java로 변경 시, 멤버변수, 메소드 선언 영역으로 옮겨짐

3. 스크립틀릿 (scriptlet)

<% service()에서 실행될 코드 %>

  • .java로 변경시, service()메소드 내부로 옮겨짐

4. 표현식 (expression)

<%= 출력될 값 %> =>자바코드에서의 값

  • HTML 문서로 만들어질 값을 넣어줌
  • .java로 변경 시, out.print("출력될 값")

5. 주석

<%-- 주석구문 --%>

  • .java파일로 변경 시 사라짐
    => jsp주석은 클라이언트에게 전달하지 않음(코드에서 제외됨)
    (사라지는 시점은. jsp 컨테이너가 servlet파일로 바꿀 때)

내장객체

  • .jsp파일에서 사용가능 객체

    1. application

    • ServletContext 객체
    • 프로젝트마다 하나씩 생성되는 객체
    • 서버에 대한 정보 등을 확인하거나, 서버 단위로 상태 유지가 필요한 경우

    2. session 객체

    • HttpSesstion 객체
    • 클라이언트(브라우저)마다 하나씩 생성
    • 클라이언트 단위로 상태유지 필요한 경우 사용
      • 로그인 정보를 주로 저장

    3. Request, Response

    • HttpServletRequest, HttpServletResponse 객체
    • 요청을 받을 때마다 생성되고 사라짐

    4. PageContext

    • JSP 페이지당 하나씩 생성되는 객체
    • HttpServleetRequest 객체를 반환해주는 용도로 주로 사용 예쩡
      • Ex) PageContext.getRequest()를 통해

페이지 요청 응답 방식

forward 방식

  • 요청을 받은 서블릿 | jsp가 => 다른 내부의 서블릿 | jsp로 요청을 전가하는 방식
  • HttpServeletRequest, HttpServletResponse 객체를 함께 넘김(=>정보전달)
    • HttpServletRequest에 필요한 정보를 담아 넘길 수 있음
  • 경로의 기준

redirect 방식

  1. 요청을 받은 서블릿 | jsp가 클라이언트(브라우저)에게 재요청할 url을 응답으로 줌
  2. 클라이언트(브라우저)는 받은 url로 다시 서버에 요청(request, response 객체 새로이=>값 없음)
  • 현재 서버가 아닌 외부의 다른 서버(페이지)로도 요청 가능
  • response.sendRedirect("url")
    • url에는 외부 경로도 가능

      redirect 방식을 사용해야 하는 경우들

        1. 외부 다른 페이지로 이동해야 할 때
        1. 클라이언트(브라우저)의 주소 표시줄에 새로운 URL이 표시되어야 할 때

0개의 댓글