본문 바로가기

JSP(Java Server Page)

request 객체

 ο  request 객체

     1) 개요

         웹 브라우저에서 JSP 페이지로 전달되는 정보의 모임으로 HTTP 헤더와 HTTP 바디로 구성 되며 웹 컨테이너는 요청된 HTTP 메시지를 통해 HttpServletRequest 객체 타입인 request 객체로 사용 한다.


     2) 주요 메소드

       - String getParameter(name)

         이름이 name인 파라미터에 할당된 값을 리턴 하며 지정된 파라미터이름이 없으면 null 값을 리턴 한다. 웹브라우저에서 GET / POST 방식으로 파라미터 값을 넘기고 서버에서 그 값을 이용하고자 할 때 사용.

       - String[] getParameterValues(name)

         이름이 name인 파라미터의 모든 값을 String 배열로 리턴 한다. 주로 checkbox 등 동일한 이름을 사용하는 Form 태그의 값을 리턴 받기 위해 사용된다.

      - void setAttribute(java.lang.String key, java.lang.Object o)

         주어진 이름의 속성을 설정(자바 파일에서 만들어진 데이터를 넘기기 위한 메소드)

      - java.lang.Object getAttribute(java.lang.String key)

         주어진 이름의 속성을 리턴(자바 파일에서 만들어진 데이터를 받기 위한 메소드)


         setAttribute(), getAttribute() 메소드는 page, request, session, application과 같은 영역에 임의의 속성값(Attribute)을 저장하고 가져올 때 사용



       - String getMethod()

         요청에 사용된 요청 방식(GET, POST, PUT)을 리턴 한다.

       - String getRequestURI()

         요청에 사용된 URL로부터 URI을 리턴 한다.

         요청 주소가 http://localhost:8080/test/path.htm 인 경우 /test/path.htm을 리턴 한다.

       - StringBuffer getRequestURL()

         요청 URL을 반환 한다.

       - HttpSession getSession()

         HttpSession getSession(boolean create)

         현재 세션 객체를 리턴 한다.

       - String getServerName()

         서버의 도메인 이름을 리턴 한다.

       - String getRemoteAddr()

         클라이언트의 주소를 리턴 한다.

       - String getProtocol()

         사용 중인 프로토콜을 리턴 한다.

       - int getServerPort()

         서버의 port 번호를 리턴 한다.

       - RequestDispatcher getRequestDispatcher(String path)

         해당 요청을 처리하기 위한 처리기를 생성 한다.(포워딩)

       - String getContextPath()

         해당 JSP 페이지가 속한 웹 어플리케이션의 컨텍스트 경로를 리턴 한다.

       - Cookie[] getCookies()

         클라이언트부터 전송된 쿠키에 대한 정보를 반환

       - void setCharacterEncoding(String env)

         전송된 자료의 문자 인코딩 방식을 지정 한다.

       - String getCharacterEncoding()

          전송된 자료의 문자 인코딩 방식을 반환

       - Enumeration getHeaderNames()

         헤더 이름을 리턴 한다.

       - String getHeader(name)

         HTTP 요청 헤더에 지정된 name의 값을 리턴 한다.


     3) 사용 예

        (1) 클라이언트에서 넘어온 정보 전달 받기

         -- test.jsp

           <form method='post' action='test_ok.jsp'>

               아이디 : <input type='text' name='memId' size='20' maxlength='10'/><br/>

               패스워드 : <input type='password' name='memPwd' size='20' maxlength='10'/><br/>

               이 름 : <input type='text' name='memName' size='20' maxlength='10'/><br/>

               <input type='submit' value='  등록하기 '/>&nbsp;

          </form>

         

         -- test_ok.jsp

         <%

              request.setCharacterEncoding("utf-8");


String memId = request.getParameter("memId");

String memPwd = request.getParameter("memPwd");

String memName = request.getParameter("memName");

       %>

                        :



        (2) 클라이언트에서 넘어온 정보 전달 받기(동일한 이름)

         -- ex.jsp

            <form method='post' action='ex_ok.jsp'>

               이 름 : <input type='text' name='userName'/><br/>

               취 미 :

                <input type='checkbox' name='ch' value='운동'/>운동<br/>

                <input type='checkbox' name='ch' value='영화'/>영화감상<br/>

                <input type='checkbox' name='ch' value='등산'/>등산<br/>

                <input type='checkbox' name='ch' value='낮잠'/>낮잠<br/>

               <input type='submit' value='  전송 하기'/>&nbsp;

           </form>


         -- ex_ok.jsp

         <%

              request.setCharacterEncoding("utf-8");


              String userName = request.getParameter("userName");

              String ch[] = request.getParameterValues("ch");

              String str="";

              if(ch != null) {

                  for(String s : ch)

                      str+=s+"<br/>";

                  }

              }

       %>