국비지원

[JAVA] jsp란? JSP 스크립트 요소, JSP 작동원리,기본 내장객체, Request, Response

yeon-96 2023. 1. 24. 22:00
반응형

JSP(Java Server Pages)란?

HTML 코드에 Java코드를 넣어 동적인 웹 페이지를 생성하는 웹 어플리케이션 도구

JSP를 통해 정적인 HTML과 동적으로 생성된 contents를 혼합하여 사용할 수 있다.

즉, 사용자가 입력한 contents에 맞게 동적인 웹 페이지를 생성한다.

 

JSP 스크립트 요소

스크립틀릿

JSP에서 자바코드를 실행할 때 사용하는 자바코드블록.

<% %> 사이에 자바코드가 온다.

예시

 

표현식

어떤 값을 출력 결과에 포함시키고자 할 때 사용

<%= 와 %> 사이에 출력할 값이 위치

숫자나 문자열, 변수 등의 값을 사용할 수 있음

예시

선언부

JSP의 스크립트릿이나 표현식에서 사용할 수 있는 메소드를 작성할 때 사용

자바의 메소드와 동일함.

메소드 이름 규칙도 자바와 동일하다.

선언부를 맨 아래에 선언하고 스크립트릿에서 선언부에 선언한 메소드를 사용해도 사용할 수 있다.

예시 출처 : https://sas-study.tistory.com/198

지시자

JSP페이지가 실행될 때 필요한 정보를 JSP컨테이너에게 알리는 역할

페이지 내용을 어떻게 처리할 것인지 힌트를 주는 것이라 보면 된다.

예시

 

JSP 작동원리

1. 클라이언트 (사용자)가 웹브라우저로 jsp를 요청 

2. JSP 컨테이너가 JSP 파일을 Servlet파일(.java)로 변환

3. 그리고 Servlet 파일(.java)은 컴파일 된 후 클래스 파일(.class)로 변환

4. 요청한 클라이언트에 html파일 형태로 응답

출처 : https://doozi316.github.io/jsp/2020/01/26/WEB18/

 

 

JSP 기본객체

1.request: 웹브라우저 즉 클라이언트의 요청 정보를 저장한다.

2.response : 웹 브라우저 즉 클라이언트의 요청에 대한 응답 정보를 저장한다.

3. out : JSP 페이지에서 출력할 때 사용되는 출력 스트림 객체이다.

4. session : 하나의 브라우저 내에서 정보를 유지하기 위한 HTTP 세션 정보를 저장한다.

5.page : JSP페이지 를 구현한 자바 클래스 객체이다.

6.pageContext : JSP페이지에 대한 정보를 저장하는 객체이다.

7. application : 웹 애플리케이션의 Context 정보를 저장한다.

8.config : JSP 페이지에 대한 설정 정보를 저장한다. 9.exception : jsp에서 예외가 발생할 때 사용하는 객체이다.

 

Request

Request 객체는 JSP로 전달되는 요청과 관련이 있는 객체이다.

웹 브라우저에서 웹사이트의 주소를 입력하고 실행하니 해당 정보가 전송된다.

이것을 관여하는 것이 Request 객체이다.

 

Request가 제공하는 기능 정리

1. 웹 브라우저 즉 클라이언트와 관련된 정보를 읽을 수 있는 기능

2. 웹 서버와 관련된 정보를 읽을 수 있는 기능

3. 웹 브라우저 즉 클라이언트가 전송한 요청 파라미터 정보를 읽는 기능

4. 웹 브라우저 즉 클라이언트가 전송 한 요청 헤더의 정보를 읽는 기능

5. 웹브라우저 클라이언트가 전송한 쿠키 정보를 읽을 수 있는 기능

<!-- jsp 표현식  -->
<!-- jsp 기본객체 request  -->
클라이언트IP = <%= request.getRemoteAddr() %> <br>
요청정보길이 = <%= request.getContentLength() %> <br>
요청정보 인코딩 = <%= request.getCharacterEncoding() %> <br>
요청정보 컨텐츠타입 = <%= request.getContentType() %> <br>
요청정보 프로토콜 = <%= request.getProtocol() %> <br>
요청정보 전송방식 = <%= request.getMethod() %> <br>
요청 URI = <%= request.getRequestURI() %> <br>
컨텍스트 경로 = <%= request.getContextPath() %> <br>
서버이름 = <%= request.getServerName() %> <br>
서버포트 = <%= request.getServerPort() %> <br>

 

Response

Response 객체는 반대로 서버에서 사용자의 웹 브라우저에 전송(응답)할 응답 정보를 가지고 있다.

페이지의 헤더 정보를 입력하는 용도, 페이지를 리다이렉트하는 용도로 많이 사용된다.

 

response 객체 주요 기능

  • response.addCookie(Cookie cookie) : 쿠키 정보를 추가한다.
  • response.sendRedirect(String location) : 현재 페이지에서 다른 페이지("지정한 url")로 이동한다.
  • response.sendStatus(int status-code) : 상태 정보를 클라이언트로 전송한다.
  • response.sendError(int error-code)  : 에러 정보를 클라이언트로 전송한다.
반응형