1. JSP 내장 객체
2. request
3. response
4. pageContext
1. JSP 내장 객체
[ 정의 ]
- JSP Implicit Object
- 개발자가 직접 생성하지 않아도, JSP가 미리 만들어서 제공하는 객체이다. (Tomcat이 만든다!!!)
- 예약어를 사용해서 얻어온다.
- JSP 내장 객체는 Servlet에도 동일하게 있다. 단, Servlet에서는 직접 만들어서 사용한다. (내장 객체라는 형식이 존재하지 않기 때문..)
- 종류: request, response, session, pageContext, out, application, config, page, exception 등..
- 사용빈도
1순위) request, response, session, pageContext (가장 많이 쓰임)
2순위) out, application
3순위) config, page, exception 등..
[ JSP 내장 객체의 저장소 ]
- 내부에 사용자 데이터를 저장할 수 있는 Map을 가지고 있다.
- 종류: request, session, pageContext, application
- setAttribute(key, value), getAttribute(key)
2. request
[ 정의 ]
- 데이터 저장하는 기능
- 클라이언트(브라우저)가 서버에게 전송한 데이터를 받아오는 기능이다.
- 클라이언트(브라우저)가 서버에게 전송한 데이터의 인코딩 처리를 한다.
- 클라이언트(브라우저)가 서버에게 페이지 요청 시 관련된 정보 가져온다.
[ request 예시 ]
- 2개의 페이지에서 데이터 전송 -> 받아오기(출력)
- 전송 페이지
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>request 전송 페이지</h1>
<form method="GET" action="request_two.jsp">
<div><input type="text" name="txt"/></div>
<div><input type="password" name="pw"/></div>
<div><input type="number" name="num"/></div>
<div><input type="checkbox" name="cb1" value="red"/>red</div>
<div><input type="checkbox" name="cb2" value="blue"/>blue</div>
<div><input type="submit" value="보내기"/></div>
</form>
</body>
</html>
- 결과 페이지
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
// 넘어온 데이터 가져오기
// - request 객체 담당
// - request.getParameter("name") -> 1개의 컨트롤을 얻는다.
// - 모든 데이터는 문자열로 전송 된다. (*******************) -> 자료형이 존재하지 않음
String txt = request.getParameter("txt");
String pw = request.getParameter("pw");
String num = request.getParameter("num");
String cb1 = request.getParameter("cb1");
String cb2 = request.getParameter("cb2");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>request 결과 페이지</h1>
<div>txt 결과: <%= txt %></div>
<div>pw 결과: <%= pw %></div>
<div>num 결과: <%= num %></div>
<div>cb1 결과: <%= cb1 %></div>
<div>cb2 결과: <%= cb2 %></div>
</body>
</html>
- 결과
데이터 입력 받은 후 결과 페이지에 전송 후 출력하는 페이지
3. response
[ 정의 ]
- 돌려줄 웹 페이지 제작 > response.getWriter() > PrintWriter
- 돌려줄 웹 페이지 인코딩 > response.setCharacterEncoding("UTF-8")
- 돌려줄 내용의 MIME 지정(text/html)
- 페이지 이동하기
[ response 예시 ]
- 첫번째 페이지에 접속하자마자 두번째 페이지로 이동하기
- 첫번째 페이지
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
// 자동적으로 해당 페이지로 이동
response.sendRedirect("response_two.jsp");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>response 첫번째 페이지</h1>
</body>
</html>
- 두번째 페이지
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>response 두번째 페이지</h1>
<span>두번째 페이지입니다 하하하.</span>
</body>
</html>
- 결과
첫번재 페이지로 실행 후, 자동적으로 두번째 페이지로 이동됨
4. pageContext
[ 정의 ]
- 페이지 저장
- 페이지 실행에 필요한 컨텍스트 정보를 저장한 객체
- 페이지간의 데이터를 전달할 때 사용
[ pageContext 예시 ]
- 첫번째 페이지(.jsp)가 갖고있는 지역변수를 두번째 페이지에 전달하기
- 첫번째 페이지
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
// 지역 변수
// - 현재 JSP 페이지에서만 사용 가능한 변수
// - 이 변수를 two.jsp에게 전달하려면...??
int num1 = 100;
int num2 = 200;
request.setAttribute("num1", num1);
request.setAttribute("num2", num2);
pageContext.forward("pagecontext_two.jsp");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>pagecontext 첫번째 페이지</h1>
</body>
</html>
- 두번째 페이지
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>pagecontext 두번째 페이지</h1>
<div>num1: <%= request.getAttribute("num1") %></div>
<div>num2: <%= request.getAttribute("num2") %></div>
</body>
</html>
- 결과
첫번째 페이지로 실행 시, 자동적으로 두번째 페이지로 이동하며, 변수num1, num2의 값을 가져왔다.
'인천일보아카데미 > - 학습일지' 카테고리의 다른 글
[학습일지]JAVA교육일지 66일차 (SERVER)⭐ (0) | 2022.07.07 |
---|---|
[학습일지]JAVA교육일지 65일차 (SERVER)⭐ (0) | 2022.07.07 |
[학습일지]JAVA교육일지 63일차 (SERVER)⭐ (0) | 2022.07.05 |
[학습일지]JAVA교육일지 62일차 (SERVER)⭐ (0) | 2022.07.02 |
[학습일지]JAVA교육일지 61일차 (0) | 2022.06.30 |