■ response 객체
response 객체는 JSP 페이지의 실행결과를 웹 브라우저로 되돌력 줄 때 사용되는 객체이다. 서버에서 클라이언트에 대한 응답을 response 객체를 통하여 처리한다.
① response 기본 객체의 응답 형식 지정 메소드
-. 컨텐츠 타입이나 문자셋에 대한 정보를 지정할 때 사용하는 메소드 이다.
메 소 드
|
설 명
|
setContentType(String)
|
MIME 타입을 지정, 부가적으로 글자의 인코딩 지정
|
getCharacterEncoding()
|
응답하는 내용의 글자 인코딩 형태를 구함
|
② 응답 헤더 관련 response 객체 메소드
-. 헤더정보나 쿠키등에 대한 정보를 지정하는 메소드이다.
메 소 드
|
설 명
|
addCookie(Cookie)
|
응답에 지정한 쿠키를 저장
|
containsHeader(header)
|
이름이 header인 헤더를 포함 여부 검사
|
setHeader(name, value)
|
이름이 name인 헤더의 값을 value로 지정
|
setDateHeader(name, date)
|
이름이 name인 헤더의 값을 long형 값 date로 지정
|
ddHeader(name, value)
|
이름이 name 값이 String형 value인 헤더 추가
|
addIntHeader(name, value)
|
이름이 name 값이 int형 value인 헤더 추가
|
addDateHeader(name, date) | 이름이 name 값이 long형 date인 헤더 추가
|
③ URL 재작성 관련 response 객체 메소드
-. 다음 메소드를 사용하면 지정한 페이지로 이동할 수 있다.
메 소 드
|
설 명
|
encodeRedirectURL(url)
|
세션정보를 포함하기 위해 sendRedirect() 메소드에서 사용할 URL을 인코딩
|
encodeURL(name)
|
세션정보를 포함하고 있는 링크에서 사용할 URL을 인코딩 |
sendRedirect(url) | 웹 서버가 웹 브라우저에게 지정한 URL로 자동 이동되도록 한다.
|
④ response 객체의 리다이렉트 기능
-. response 객체에서 많이 사용되는 기능중의 하나가 리다이렉트 기능이다.
-. 웹 서버가 웹 브라우저에게 지정한 페이지로 이동하도록 지시한다.
-. 리다이렉트 기능은 주로 로그인 과정에서 사용된다.
login.html
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>로그인에서 회원인증 검사하기</title> </head> <body> <center> <!-- 로그인 버튼을 누르면 아이디와 패스워드로 testLogin.jsp로 이동하여 회원 인증 처리를 한다. --> <form method = "post" action = "testLogin.jsp"> <table> <tr> <td align = "center"> 아 이 디 </td> <td align = "left"><input type = "text" name = id size = "20" maxlength = "20"></td> </tr> <tr> <td align = "center"> 패스워드 </td> <td align = "left"><input type = "password" name = pw size = "20" maxlength = "20"></td> </tr> <tr> <td align = "center"><input type = "submit" value = "로그인"></td> <td align = "center"><input type = "reset" value = "취 소"></td> </tr> </table> </form> </center> </body> </html>
|
출력화면 |
|
HanConv.java |
package myUtil;
import java.io.UnsupportedEncodingException;
public class HanConv {
// 8859_1 방식을 UTF-8 방식으로 변환하는 메소드 정의 public static String toKor(String str) { if (str == null || str.equals("") || str.equals("null")) { return str; } try { return new String(str.getBytes("8859_1"), "utf-8"); } catch (UnsupportedEncodingException uee) { uee.printStackTrace(); return str; } } // UTF-8방식을 8859_1 방식으로 변환하는 메소드 정의 public static String toEng(String str) { if (str == null || str.equals("") || str.equals("null")) { return str; } try { return new String(str.getBytes("utf-8"), "8859_1"); } catch (UnsupportedEncodingException uee) { uee.printStackTrace(); return str; } } }
|
testLogin.jsp |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import = "myUtil.HanConv" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>로그인에서 회원인증 검사하기</title> </head> <body> <% // 데이터베이스와 접목하면 여러명의 회원 정보를 저장할 수 있으므로 다양한 String s_id = "yinglong200"; // 사용자에 대해서 회원 인증 서비스를 해 줄 수 있지만, String s_pw = "q1w2e3r4"; // 아직 데이터베이스와 연동하는 방법을 학습하지 않았으므로 String s_name = "흔들바람"; // 이번 예제는 오로지 한명의 회원만이 존재한다. // ID와 PW가 모두 일치해야 로그인 성공 if (s_id.equals(request.getParameter("id")) && s_pw.equals(request.getParameter("pw"))) { // 메인페이지로 이동시 // 회원 이름을 영문으로 디코딩한 후 퀴리 스트링으로 넘겨줌 response.sendRedirect("main.jsp?name=" + HanConv.toEng(s_name)); } else { // 아이디나 비밀번호 중 어느 하나라도 불일치 하면 response.sendRedirect("login.html"); } %> </body> </html>
|
main.jsp |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import = "myUtil.HanConv" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>로그인 페이지</title> </head> <body> <% String s_name = request.getParameter("name"); %> <h3><%= HanConv.toKor(s_name) %>님 안녕하세요</h3> <hr/> 저희 홈페이지에 방문해 주셔서 감사합니다.<br/> 즐거운 시간 되세요... </body> </html>
|
출력화면 |
|