2008. 11. 22. 00:08

request 의 모든 파라미터 얻어오기


 1 request파라미터 
 

클라이언트의 요청시 파라미터가 존재할 때 이를 request객체가 핸들 할 수 있다. 다음은 post방식의 요청을 해결하는 예제입니다.

 


 2 클라이언트 폼(requestParam.html) 
 

<HTML><HEAD><TITLE>REQUEST정보</TITLE></HEAD>
<BODY>
<FORM METHOD="POST" ACTION="request.jsp">    
    <H3>폼데이터 전송-REQUEST파라미터예제</H3>
    이 름 : <INPUT TYPE="TEXT" NAME="ID" ><BR>
    비밀번호: <INPUT TYPE="PASSWORD" NAME="PASSWD" ><BR>
    <INPUT TYPE="SUBMIT" VALUE="POST전송">
</FORM>
</BODY>
</HTML>

 


 3 클라이언트의 요청을 받아 파라미터를 처리하는 request.jsp 
 

<%-- request.jsp --%>
<%@page import="java.util.*" contentType="text/html;charset=euc-kr"%> 

<HTML><HEAD><TITLE>내장 객체 request </TITLE></HEAD>
<BODY>
<H2> 내장 객체 request파라미터 전송 </H2><P>

<% 

 Enumeration enum = request.getParameterNames();
 String name = ""
;
 while(enum.hasMoreElements()) {

  name = (String)enum.nextElement();
  out.print(name + ":" + request.getParameter(name) + "<br>"
);
 }

%>

3 getParameter()와 Enumeration()메서드
   그리고 getParameterNames() 메서드는 클라이언트로부터 넘어온 파라미터 변수값을 얻는 방법이다. 이때 리턴되는 값은 Enumeration값으로 Enumeration은 자체 메서드도 boolean hasMoreElements(), Object nextElement()  둘 밖에는 없는 간단한 유틸 클래스이다. Enumeration의 가장 큰장점은 바로 hasMoreElements()메서드로서 다음데이터가 있는지 없는지를 알려주는 함수를 사용할 수 있다는 것이다.

vector v가 있다면 v의 요소를 프린트하기 위해서 다음과 같은 구문을 사용한다.  

     for (Enumeration e = v.elements() ; e.hasMoreElements() ;) {
         System.out.println(e.nextElement());
     }

이 구문은 Enumeration의 가장 일반적인 구문이며 위의 구문과도 비슷하다. 일단 getParameterNames()메서들 이용하여 클라이언트로 부터 넘어온 모든 파라미터 변수값을 Enumeration으로 받고 Enumeration의 요소를 꺼집어내어 request.getParameter(파라미터변수)를 이용하여 넘어온 파라미터 변수의 값을 얻고 있다.

 

 

☞ 팁: Enumeration은 C언어의 열거자의 형태를 클래스로 표현한 것이며 자바에서 이 클래스의 사용목적은 다음에 올 데이터가 무엇인지를 모를때 아주 유용하게 사용되어진다.