'2008/11/22'에 해당되는 글 2건
- 2008.11.22 request 의 모든 파라미터 얻어오기
- 2008.11.22 request 객체 속성
request 의 모든 파라미터 얻어오기
1 | request파라미터 |
클라이언트의 요청시 파라미터가 존재할 때 이를 request객체가 핸들 할 수 있다. 다음은 post방식의 요청을 해결하는 예제입니다. |
2 | 클라이언트 폼(requestParam.html) |
<HTML><HEAD><TITLE>REQUEST정보</TITLE></HEAD> |
3 | 클라이언트의 요청을 받아 파라미터를 처리하는 request.jsp |
<%-- request.jsp --%> <HTML><HEAD><TITLE>내장 객체 request </TITLE></HEAD> <% Enumeration enum = request.getParameterNames(); name = (String)enum.nextElement(); %>
[출처] JSP : request 파라미터 |작성자 선정 |
3 | getParameter()와 Enumeration()메서드 |
그리고 getParameterNames() 메서드는 클라이언트로부터 넘어온 파라미터 변수값을 얻는 방법이다. 이때 리턴되는 값은 Enumeration값으로 Enumeration은 자체 메서드도 boolean hasMoreElements(), Object nextElement() 둘 밖에는 없는 간단한 유틸 클래스이다. Enumeration의 가장 큰장점은 바로 hasMoreElements()메서드로서 다음데이터가 있는지 없는지를 알려주는 함수를 사용할 수 있다는 것이다.
vector v가 있다면 v의 요소를 프린트하기 위해서 다음과 같은 구문을 사용한다. for (Enumeration e = v.elements() ; e.hasMoreElements() ;) { 이 구문은 Enumeration의 가장 일반적인 구문이며 위의 구문과도 비슷하다. 일단 getParameterNames()메서들 이용하여 클라이언트로 부터 넘어온 모든 파라미터 변수값을 Enumeration으로 받고 Enumeration의 요소를 꺼집어내어 request.getParameter(파라미터변수)를 이용하여 넘어온 파라미터 변수의 값을 얻고 있다. |
☞ 팁: Enumeration은 C언어의 열거자의 형태를 클래스로 표현한 것이며 자바에서 이 클래스의 사용목적은 다음에 올 데이터가 무엇인지를 모를때 아주 유용하게 사용되어진다.
[출처] JSP : request 파라미터 |작성자 선정
request 객체 속성
HTTP 요청이 있을 때 발생하는 모든 정보와 이 정보를 얻어 낼 수 있는 여러가지 기능을 하는 객체가 바로 request 객체입니다.
이 객체는 response와 더불어 _jspService의 매개변수역할을 하며, Server Page 프로그램에서 가장 기본이 되는 객체입니다.
HTTP 프로토콜로 사용자 요청이 있을 때 요청된 메세지는 HTTP 헤더 부분과 HTTP 몸체 부분으로 나뉘어 집니다.
HTTP 메시지 자체의 목적지가 Java Server Page라면 JSP는 HTTP 메세지 전부를 이용하여 HttpServletRequest 객체를 생성하게 되며, 이것을 _jspServer 메서드내에서 매개변수로 넘겨받게 되는 것입니다.
코딩을 할때, 가장 많이 사용하게 될 request.getParameter()라는 메소드가 여기에 해당됩니다.
Request 객체에는 request.getParameter() 말고도 많은 메소드가 있으며, 메소드의 종류는 아래 표와 같습니다.
⊙ 클라이언트가 넘겨주는 파라미터에 관련된 정보를 얻는 메서드
메소드 |
설명 |
public Enumeration getParameterNames() |
모든 요청 매개변수의 이름을 Enumeration으로 반환한다. |
public String getParameter( String name ) |
해당 이름값에 해당하는 매개변수의 값을 반환한다. 지정된 이름의 파라미터가 존재하지 않을 경우 null을 반환한다. |
public String[] getParameterValues( String name ) |
해당 이름값에 해당되는 매개변수의 모든 값을 String 배열로 반환한다. |
⊙ HTTP 헤더와 관련된 메소드
메소드 |
설명 |
public String getHeader( String headerName ) |
HTTP요청 헤더에 지정된 headerName의 값을 문자열로 반환한다. HTTP요청헤더에 headerName헤더가 존재하지 않는 경우 null을 반환한다. |
public Enumeration getHeaderNames() |
HTTP요청 헤더에 포함된 모든 헤더의 이름을 Enumeration으로 반환한다. |
public Enumeration getHeaders( String headerName) |
HTTP요청 헤더에 포함된 headerName헤더의 모든값을 Enumeration으로 반환한다. |
public int getIntHeader( String headerName ) |
HTTP요청헤더에 포함된 headerName헤더의 값을 int로 반환한다. 지정된 headerName헤더의 값을 int로 변환할 수 없는 경우 NumberFormatException이 발생하고, headerName헤더가 HTTP요청헤더에 존재하지 않는 경우에는 -1 값을 반환한다. |
public long getDateHeader( String headerName ) |
HTTP요청헤더에 포함된 headerName헤더 값을 1970년 1월 1일 00시 00분 기준으로 현재까지의 밀리초를 long형으로 반환한다. HTTP요청 헤더에 headerName헤더가 존재하지 않은 경우 -1을 반환한다. headerName헤더를 long형 숫자로 변환자지 못할 경우 IllegalArgumentException을 발생시킨다. |
getCookies() |
요청에 대한모든 쿠키를 반환한다. |
⊙ 세션데이터에 관련된 메서드
메소드 |
설명 |
public HttpSession getSession() |
요청을 시도한 클라이언트에 지정된 HttpSession객체를 얻어낸다. 이전에 생성된 HttpSession객체가 없었다면 새로운 세션 객체를 생성하게 된다. |
public HttpSession getSession( boolean create ) |
요청을 시도한 클라이언트에 지정된 HttpSession 객체를 얻어낸다. create가 false로 지정된 경우 해댱 클라이언트에 대해 생성 된 HttpSession객체가 없는 경우 null을 반환한다. create가 true로 지정된 경우 이미 존재하는 경우 생성된 HttpSession객체를 리턴하고 해당 클라이언트에 생성된 HttpSession객체를 리턴하고 해당 클라이언트에 생성된 HttpSession객체가 없으면 새로운 HttpSession객체를 생성하여 반환한다. |
public String getRequestedSeeionId() |
요청을 시도한 클라이언트이 세션 id를 문자열로 반환한다. |
public String isRequestedSessionIdValid() |
요청에 포함된 클라이언트이 세션id가 유효하면 true아니면 false를 반환한다. |
isRequestedSessionIdFromCookie() |
요청에 포함된 클라이언트이 세션 id가 쿠키로부터 전달된 경우 true 아니면 false를 반환한다. |
⊙ 기타 메소드
메소드 |
설명 |
getRequestURI() |
요청에 사용된 URL로부터 URI부분을 문자열로 반환한다. |
getMethod() |
요청에 사용된 요청방식 GET, POST 등을 문자열로 반환한다. |
getRequestURL() |
요청 URL을 반환 한다.(질의 문자열은 안 한다.) |
getQueryString() |
요청 URL을 반환 한다.( 질의 문자열 포함) |
getRequestDispatcher(path) |
Path에 지정된로컬URL에 대한 요청 전달자를 반환한다. |
getRemoteHost() |
요청을 보낸 호스트의 이름을 반환한다. |
getRemoteAddr() |
요청을 보낸 호스트의 IP를 반환한다. |
getRemoteUser() |
요청을 보낸 사용자의 이름을 반환한다. |
사용 예) String name = request.getParameter(“name”);