728x90
반응형
#request(기본객체)
#request 기본 객체
: 사용자의 요청정보를 담고 있는 객체
#request 기본 객체가 제공하는 기능
-클라이언트(웹 브라우저)와 관련된 정보 읽기 기능
-서버와 관련된 정보 읽기 기능
-클라이언트가 전송한 요청 파라미터 읽기 기능
-클라이언트가 전송한 요청 헤더 읽기 기능
-클라이언트가 전송한 쿠키 읽기 기능
-속성 처리 기능
#request 기본 객체의 클라이언트 및 서버 정보 관련 메서드
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>클라이언트 및 서버 정보</title>
</head>
<body>
클라이언트IP = <%= request.getRemoteAddr() %><br/>
요청정보길이 = <%= request.getContentLength() %><br/>
요청정보 인코딩 = <%= request.getCharacterEncoding() %><br/>
요청정보 컨텐츠타입 = <%= request.getContentType() %><br/>
요청정보 프로토콜 = <%= request.getProtocol() %><br/>
요청정보 전송방식 = <%= request.getMethod() %><br/>
요청 URI = <%= request.getRequestURI() %><br/>
컨텍스트 경로 = <%= request.getContextPath() %><br/>
서버이름 = <%= request.getServerName() %><br/>
서버포트 = <%= request.getServerPort() %><br/>
</body>
</html>
-결과 화면
#request객체는 스트립트릿이나 표현식에서만 쓸 수 있고 선언부에서는 쓸 수 없다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>request객체의 사용범위</title>
</head>
<body>
<%
request.getContextPath();
%>
<%= request.getContextPath() %>
<%!
request.getContextPath(); // 에러
%>
</body>
</html>
#request 기본 객체의 요청 파라미터 관련 메서드
메서드 | 리턴타입 | 설명 |
getParameter(String name) | String | 이름이 name인 파라미터의 값을 구한다. 존재하지 않을 경우 null을 리턴한다. |
getParameterValues(String name) | String[] | 이름이 name인 모든 파라미터의 값을 배열로 구한다. 존재하지 않을 경우 null을 리턴한다. |
getParameterNames() | java.util.Enumeration | 웹 브라우저가 전송한 파라미터의 이름 목록을 구한다. |
getParameterMap() | java.util.Map | 웹 브라우저가 전송한 파라미터의 맵을 구한다. 맵은 <파라미터 이름, 값> 쌍으로 구성된다. |
#request객체
getParameter() = 하나의 파라미터 값을 가져오는 메서드, key와 value 모두 1:1 리턴 타입은 String
getParameterValues() = 같은 이름의 복수의 값(체크박스와 리스트 같이 다중 선택 타입의 값을 가져온다.)
getParameterNames() = form에 포함된 name값(keyset() key값)을 다 가져온다.
getParameterMap() = map형태로 바꾸어 준다. Key는 String, Values는 String[]이다.
예제)1
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<title>폼 생성</title>
</head>
<body>
<form action="viewParameter.jsp" method="post">
이름 : <input type="text" name="name" size="10"><br/>
주소 : <input type="text" name="address" size="30"><br/>
좋아하는 음식 :
<input type="checkbox" name="food" value="pizza">피자
<input type="checkbox" name="food" value="hamburger">햄버거
<input type="checkbox" name="food" value="chicken">치킨
<br/>
<input type="submit" value="전송">
</form>
</body>
</html>
-데이터 입력 후 전송
-결과 화면
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<%@ page import="java.util.Enumeration" %>
<%@ page import="java.util.Map" %>
<%
request.setCharacterEncoding("utf-8");
%>
<html>
<head>
<title>요청 파라미터 출력</title>
</head>
<body>
<b>request.getParameter() 메서드 사용</b><br>
name 파라미터 = <%=request.getParameter("name") %>
address 파라미터 = <%=request.getParameter("address") %>
<p>
<b>request.getParameterValues() 메서드 사용</b><br/>
<%
String[] values = request.getParameterValues("food");
if(values != null){
for(int i = 0; i < values.length; i++){
%>
<%= values[i] %>
<%
}
}
%>
</p>
<p>
<b>request.getParameterNames() 메서드 사용</b><br/>
<%
Enumeration paramEnum = request.getParameterNames();
while(paramEnum.hasMoreElements()){
String name = (String)paramEnum.nextElement();
%>
<%=name %>
<%
}
%>
</p>
<p>
<b>request.getParameterMap() 메서드 사용</b><br/>
<%
Map parameterMap = request.getParameterMap();
String[] nameParam = (String[])parameterMap.get("name");
if(nameParam != null){
%>
name = <%= nameParam[0] %>
<%
}
%>
</body>
</html>
728x90
반응형
'IT > JSP' 카테고리의 다른 글
[JSP] - 7. tomcat 버전별 인코딩 하는 방법 (0) | 2020.07.21 |
---|---|
[JSP] - 6. GET방식/POST방식 차이 (0) | 2020.07.20 |
[JSP] - 4. 스크립스(Script) 요소 (0) | 2020.07.20 |
[JSP] - 3. 디렉티브(Directive) 요소 (0) | 2020.07.20 |
[JSP] - 2. tomcat서버 설치 및 이클립스에서 실행하는 방법 (0) | 2020.07.20 |
댓글