일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- HTML
- 메소드
- Servlet
- 함수
- JavaScript
- 웹
- 자바스크립트
- SQL
- 자바
- jsp
- 데이터베이스
- String
- java
- oracle
- function
- Programming
- 오라클
- frontend
- 파이썬
- Database
- 프론트엔드
- Python
- web
- It
- 코딩
- PL/SQL
- Method
- 문자열
- 서블릿
- 프로그래밍
- Today
- Total
Untitled_Blue
[JSP] 내장객체 본문
안녕하세요. 이번 글은 JSP의 내장객체와 영역에 대한 설명입니다.
- 내장객체란?
- JSP와 Servlet에서 자체적으로 제공하는 특수한 참조타입
- 변수와 메서드형식으로 접근 가능
- MVC 패턴으로서 프론트와 백엔드를 상호작용할 수 있도록 제공
내장 객체 | 참조 공식 API | 설명 |
request | javax.servlet.http.HttpServletRequest javax.servlet.ServletRequest |
웹 브라우저의 요청 정보를 저장하고 있는 객체 (프론트 -> 백으로 넘길 때 사용) |
response | javax.servlet.http.HttpServletResponse javax.servlet.ServletResponse |
웹 브라우저의 요청에 대한 응답 정보를 저장하고 있는 객체 (백 -> 프론트로 반환할 때 사용) |
out | javax.servlet.jsp.JspWriter | JSP에 출력할 내용이 있는 출력 객체 |
session | javax.servlet.http.HttpSession | 하나의 웹 브라우저에서 정보 유지를 위한 정보를 가지고 있는 객체 |
application | javax.servlet.ServletContext | 웹 App의 컨텍스트의 정보를 저장하고 있는 객체 |
pageContext | javax.servlet.jsp.PageContext | JSP에 대한 정보를 가지는 객체 |
page | java.lang.Object | JSP를 구현하는 클래스 객체 |
config | javax.servlet.ServletConfig | JSP에 대한 설정 정보를 가지는 객체 |
상단의 표는 JSP에서 제공하고 있는 객체이다. 총 8개이며 이들은 프론트엔드와 백엔드가 상호작용하기 위해 필요한 존재들이다. 특히 request, response, out, session은 가장 많이 사용되고 있다. request는 .getParameter()를 통해 서블릿 파일에다 프론트엔드에서 요청한 정보를 전달해주는 역할을 담당하고 있으며 반대로 response는 서블릿 파일에서 주로 데이터베이스를 기반으로 자료를 받아온 것을 프론트엔드로 요청에 대한 응답을 제공하는 역할을 담당하고 있다.
또한 앞서 언급한 4개는 속성을 지정하는 .setAttribute(String key, String value)와 지정받은 데이터를 받아서 읽을 수 있는 .getAttribute()를 공통적으로 제공하고 있다. 이외에도 .getAttributeName()와 .removeAttribute(String key)도 제공한다.
https://docs.oracle.com/javaee/7/api/
Java(TM) EE 7 Specification APIs
docs.oracle.com
JSP와 Servlet에 대한 API는 JAVA EE에 소속되어 있으므로 상단의 링크에 접속하면 공식 API 문서를 확인할 수 있다.
- request
메서드 | 설명 |
.getParameter(name) | View에서 Servlet으로 데이터를 전달할 때 사용 |
.getParametervalue(name) | 이전 .getParameter()를 배열 형식으로 전달할 때 사용 |
.getParameterNames() | 데이터를 Enummeration 형식으로 전달할 때 사용 |
.getProtocol() | 사용 중인 프로토콜(Protocol)을 반환 |
.getServerName() | 서버의 도메인의 이름을 반환 |
.getMethod() | 웹 서버로 요청할 때 사용한 폼 양식이 GET인지 POST인지를 반환 |
.getRequestURI() | 웹 서버로 요청할 때 요청에 사용된 URL로부터 URI 반환 |
.getQueryString() | 웹 서버로 요청할 때 사용된 쿼리 문자열 반환 |
String vId = request.getParameter("id");
String vPwd = request.getParameter("pwd");
String vName = request.getParameter("name");
String vDate = request.getParameter("date");
상단의 코드는 서블릿 자바 파일에서 발췌한 코드 일부이다. 다음과 같이 .getParameter()를 통해 jsp파일에서 입력하고 양식을 서버로 제출하면 입력받은 데이터를 해당 메서드를 통해 서블릿 파일에 전달할 수 있다. 그리고 이들을 기반으로 데이터베이스와 컬렉션 프레임워크 등을 활용해서 다양한 로직을 처리할 수 있다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h2><%=request.getProtocol() %></h2>
<h2><%=request.getServerName() %></h2>
<h2><%=request.getRequestURI() %></h2>
</body>
</html>
다음과 같이 3개의 메서드를 통해 현재 작동 중인 프로토콜, 서버의 이름과 URI (정확히는 파일의 경로)를 반환받을 수 있다는 점을 확인할 수 있다. 그 외에도 .getRemoteHost(), .getRemoteAddr, .getServerPort(), .getContextPath(), .getHeader(name), .getHeaderNames() 가 있다.
- response
메서드 | 설명 |
void setHeader(name, value) | Header의 값을 설정하는 메서드 |
void setContentType(type) | 해당 페이지로 이동할 때 문자코드를 설정하는 메서드 (주로 text.html;charser=UTF-8로 설정한다.) |
void sendRedirect(url) | 페이지를 이동시키는 메서드 |
- out
메서드 | 설명 |
.print(str) / .println(str) | str를 웹 문서에 출력하는 메서드 |
.flush() | 현재 버퍼 내부 내용을 브라우저에 전송 후 버퍼 초기화 |
.close() | 현재 버퍼 내부 내용을 브라우저에 전송 후 스트림 종료 |
.isAutoFlush() | 출력 버퍼의 용량이 찰 때 처리 여부 결정하는 메서드 |
.getBufferSize() / .getRemaining() | 버퍼의 전체 크기와 남아있는 버퍼 용량을 반환 |
- session
메서드 | 설명 |
.getId() | 현재 브라우저에 보유한 세션의 아이디를 반환 |
.getCreationTime() | 하나의 세션이 생성된 시간 반환 |
.getLastAccessedTime() | 브라우저의 요청이 시도된 최근 접근시간 반환 |
.setMaxInactiveInteval(int time) | 세션을 유지할 시간 설정 (홈페이지 기준 로그인 유효 시간) |
.getMaxInactiveInterval() | 세션 유지 시간 반환 (기본 30분이며 .set을 통해 설정 가능) |
.isNew() | 새로 생성된 세션인지에 대한 여부 반환 |
.isvaildvate() | 세션을 해제하는 메서드 (홈페이지 기준 로그아웃 처리) |
다음은 액션태그에 대한 설명입니다. 감사합니다.
'JSP&Servlet' 카테고리의 다른 글
[JSP] JavaBeans (자바빈즈) (1) | 2023.10.09 |
---|---|
[JSP] 액션태그 (0) | 2023.10.08 |
[JSP] JSP의 스크립트 요소 (0) | 2023.10.03 |
[JSP] JSP의 디렉티브 (Directive) (1) | 2023.10.02 |
[JSP] Web에 대한 이해 및 JSP & Servlet이란? (0) | 2023.10.01 |