본문 바로가기

JSP/JSP Programming

[JSP] response 객체

반응형

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>

 출력화면


반응형

'JSP > JSP Programming' 카테고리의 다른 글

[JSP] 액션태그(Action Tag)  (1) 2012.06.02
[JSP] JSP에서 한글 처리  (0) 2012.06.02
[JSP] request 객체  (2) 2012.06.02
[JSP] request와 response 객체의 개념 이해  (0) 2012.06.01
[JSP] HTML 주석문과 JSP 주석문의 차이  (0) 2012.06.01