Chillax in dev

[JSP&Servlet] JSP : 내장 객체 "response" 정리하기. 본문

Java 공부/JSP&Servlet

[JSP&Servlet] JSP : 내장 객체 "response" 정리하기.

Seong Story 2020. 8. 15. 17:06
728x90

[JSP&Servlet] JSP : 내장 객체 "response" 정리하기. 

- request 객체가 하는 역할을 어느 정도 이해했다면 그와 반대의 개념인 response 객체를 공부해보자. request객체가 웹 브라우저에서 서버로 전송된 요청 정보를 가지고 있었다면, response객체는 반대로 서버에서 사용자의 웹 브라우저에 전송(응답)할 응답 정보를 가지고 있다.

 

<9개의 기본 객체>

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에서 예외가 발생할 때 사용하는 객체이다.

 

 1. response 객체

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

<형식>
response.sendRedirect("http://www.naver.com");

- response 객체가 제공하는 주요 메서드는 아래와 같다.

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

response.sendRedirect("www.naver.com") 메서드는 지정된 url로 이동하는데 이전 request의 form태그를 action으로 이동해주는 방법 이외에 response.sendRedirect() 메서드를 사용하는 방법이 더 많이 사용되기 때문에 알아두자.

 

- 아래 예시를 통해 간단하게 로그인 비슷한? 값의 요청과 응답을 확인하는 예제를 만들어 보았다.

ex) 로그인 화면

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인</title>
</head>
<body>
<form method="get" action="07_Login_do.jsp">
   <lable for="userid"> 아이디 : </lable><span style="color:blue;">*</span>
   <input type="text" id="id" name="id" value=""> <br> 
   <lable for="userpwd"> 암 &nbsp; 호 : </lable><span style="color:blue;">*</span>
   <input type="password" id="pwd" name="pwd" value=""> <br>
   <input type="submit" value="로그인">
</form>
 
</body>
</html>
cs

ex) 서블릿 역할의 do

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!--화면에 나올필요없어 계산만하니 html 없앰. jsp 코드만있음.  -->
    <!--url로 한글 보낼떄 ???로깨지는것을 막기위해 임포트 하여 다음 인코딩방식을 적용함.  -->
<%@page import="java.net.URLEncoder"%>
<%
String id = request.getParameter("id");
String name ="홍길동";
String pwd = request.getParameter("pwd");
if(id.equals("hong"&& pwd.equals("1234"))
    //jsp에서의 특정 페이지 이동 명령.
     response.sendRedirect("07_Login_ok.jsp?name="+ URLEncoder.encode(name,"utf-8")); 
 
else
    response.sendRedirect("07_Login.jsp");
%>
 
cs

ex) 로그인 알림 화면 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 ok</title>
</head>
<body>
<h2>로그인 완료</h2>
<%= request.getParameter("name"%>님 안녕하세요 !
<br>
저희 홈페이지에 방문해주셔서 감사합니다.<br>
즐거운 시간 보내세요 <br>
</body>
</html>
cs

- 1.  response.sendRedirect("07_Login_ok.jsp? name="+ URL Encoder.encode(name, "utf-8"));

URL Encoder.encode(name, "utf-8") url의 인코딩 방식 그냥 인코딩이랑 다르기 때문에 한글의 정보를 처리할 때 염두하자! 이를 사용하기 위한 임포트도 해야 한다!<%@page import="java.net.URLEncoder"import="java.net.URL Encoder"%> 

만약 인코딩 과정이 없다면 아래처럼???으로 인식된다.

-??? 인코딩 문제 확인.

- 정상 실행 화면 

- 정리: response의 sendRedirect메서드를 통해 페이지 이동을 확인해보았고 인코딩을 유념해야 함을 알았다.

 

728x90
LIST
Comments