본문 바로가기

JSP/JSP Programming

[JSP] request 객체

반응형

request 객체


클라이언트가 전송하는 모든 정보는 request 객체에 저장된다. 그러므로 request 객체를 파악하면 클라이언트에서 서버로 전송되는 데이터를 알 수 있다.

 
① 요청 관련 메소드

  -. 웹 브라우저의 요청이 있을 때 이에 관련된 정보들을 알려주는 메소드 들이다.

메 소 드

설                                             명

 getContextPath()

 JSP 페이지가 속한 웹 어플리케이션의 컨텍스트 패스를 구한다.

 getMethod()

 요청방식이 GET 방식인지 POST 방식인지를 구한다.

 getRequestURL()

 요청 URL을 구한다.

 getRequestURI()

 요청 URL에서 퀴리 문자를 제외한 부분을 구한다.

 getQueryString()

 요청 URL 다음에 오는 쿼리 스트링을 구한다.

 getSession(flag)

 요청 관련된 세션 객체를 구한다.

 getRequestDispacher(path)

 지정 로컬 URL에 대한 디스페처를 구한다.

 getRemoteHost()

 요청한 호스트의 완전한 이름을 구한다.

 getRemoteAddr()

 요청한 호스트의 네트워크 주소를 구한다.

 getRemoteUser()

 요청한 사용자의 이름이 존재시 구한다.

 getSession()

 요청 관련 세션 객체를 구한다.

 getServerName()

 서버의 이름을 구한다.

 getProtocol()

 사용중인 프로토콜을 알려준다.

 

 

# 웹 브라우저와 웹 서버의 정보 알아내기

 requestTest.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!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>
접속한 클라이언트의 ip : <%= request.getRemoteAddr() %><br/>
서버의 이름 : <%= request.getServerName() %><br/>
요청방식 : <%= request.getMethod() %><br/>    <%-- get or post --%>
프로토콜 : <%= request.getProtocol() %><br/>    <%-- http --%>
요청한URL : <%= request.getRequestURL() %><br/>
요청한URI : <%= request.getRequestURI() %>
</body>
</html>

 출력화면


 


② HTTP 헤더 관련 메소드

  -.request 객체에 헤더의 정보나 쿠키에 관련된 정보를 얻을 수 있는 메소드를 제공한다.

메 소 드

설                                             명

 getHeaderNames()

 요청 관련 모든 헤더 이름 구함

 getHeader(name)

 이름이 name인 헤더의 값을 String으로 구함

 getHeaders(name)

 이름이 name인 모든 헤어드이 값을 String[] 으로 구함

 getIntHeader(name)

 이름이 name인 헤더의 값을 int형으로 구함

 getDateHeader(name)

 이름이 name인 헤더의 값을 시간값으로 읽어온다.

 (이때 시간은 1970년 1월 1일 이후로 흘러간 시간 1 / 1000초 단위의 값을 가진다.

 getCookies()

 요청과 관련된 모든 쿠키를 구함

 

 

③ 요청 파라미터 관련 메소드

  -. request 객체에 저장되는 정보중에서 가장 중요한 것은 파라미터 정보이다.

  -. 파라미터는 클라이언트가 폼에 데이터를 입력한 후 서버를 요청할 때 전송되는 폼에 입력된 정보형태를 말한다.

  -. 원하는 값을 얻기 위해서는 입력양식의 name 속성 값을 메소드의 전달인자로 기술한다.

메 소 드

설                                             명

 getParameter(String name)

 지정한 이름의 파라미터 중 첫 번째 파라미터의 값을 구함

 getParameterNames()

 모든 파라미터의 이름을 구함

getParameterValues(String name)

 지정한 이름을 가진 파라미터의 모든 값을 String[] 로 구함


# 폼 양식에 입력한 내용을 처리하기

addForm.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>
<form method = "post" action = "viewParameter.jsp">
<table>
    <tr>
        <td align = "center">아이디</td>
        <td><input type = "text" name = "id" size = "20"></td>
    </tr>
    <tr>
        <td align = "center">비밀번호</td>
        <td><input type = "password" name = "pw" size = "20"></td>
    </tr>
    <tr>
        <td align = "center">회원이름</td>
        <td><input type = "text" name = "name" size = "20"></td>
    </tr>
    <tr>
        <td align = "center">회원구분</td>
        <td><input type = "radio" name = "mclass" value = "일반회원">일반회원
            <input type = "radio" name = "mclass" value = "교수님">교수님
        </td>
    </tr>
    <tr>
        <td align = "center">전화번호</td>
        <td>
            <select name = "phone1">
                <option value = "010">010</option>
                <option value = "011">011</option>
                <option value = "016">016</option>
                <option value = "017">017</option>
                <option value = "018">018</option>
                <option value = "019">019</option>
            </select>
            -
            <input type = "text" name = "phone2" size = "4" maxlangth ="4">
            -
            <input type = "text" name = "phone3" size = "4" maxlangth ="4">
        </td>
    </tr>
    <tr colspan = 2>
        <td align = "center">
            <input type = "submit" value = "전송">
            <input type = "reset" value = "취소">
        </td>
    </table>
</form>
</body>
</html>

 출력화면

 viewParameter.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!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>
<%!
    // 선언부 : 폼 양식에서 입력받은 값을 얻어서 지정할 변수를 선언한다.
    String s_id, s_pw, s_name, s_class, s_p1, s_p2, s_p3;
%>
<%
    // 요청 파라미터 값에 대한 한글처리
    request.setCharacterEncoding("utf-8");

    // 폼의 입력 양식에서 전달되는 파라미터 얻기
    s_id = request.getParameter("id");
    s_pw = request.getParameter("pw");
    s_name = request.getParameter("name");
    s_class = request.getParameter("mclass");
    s_p1 = request.getParameter("phone1");
    s_p2 = request.getParameter("phone2");
    s_p3 = request.getParameter("phone3");
%>
<body>
<h3><%= s_name %>님이 입력한 정보입니다.</h3>
<hr/>
아이디 : <%= s_id %><br/>
이름 : <%= s_name %><br/>
회원구분 :
<%
    if (s_class.equals("1")) {
       
        out.println("일반회원<br/>");
    }

    else {
       
        out.println("교수님<br/>");
    }
%>
전화번호 : <%= s_p1 %> - <%= s_p2 %> - <%= s_p3 %>
</body>
</html>

 출력화면

 

반응형