클라이언트 <===========> 서버
--request-->
<--response--
## 기준이 되는 서버 : http://localhost:7080/a02_jsp/a02_startJSP/a03_request.jsp
<h2>원격주소 : <%=request.getRemoteAddr() %></h2>
<h2>전송방식 : <%=request.getMethod()%></h2>
<h2>요청uri : <%=request.getRequestURI()%></h2>
<h2>기준 context : <%=request.getContextPath()%></h2>
<h2>서버명 : <%=request.getServerName()%></h2>
<h2>포트명 : <%=request.getServerPort()%></h2>
기준 요청값
?key=value
기능메서드
request.getParameter(String name)
이름이 name인 파라미터의 값을 구한다. 존재하지 않을 경우 null 리턴
주로 하나의 요청 키와 하나의 요청값을 받는 경우 사용한다.
ex) ?name=홍길동&age=25&loc=서울
request.getParameterValues(String name)
이름이 name인 모든 파라미터의 값을 배열로 구한다. 존재하지 않을 경우 null리턴
하나의 요청키에 여러개의 요청값을 받는 경우 사용한다.
ex) ?names=홍길동&names=김길동&names=박길동
request.getParameterNames()
웹 브라우저가 전송한 파라미터의 이름을 구한다.
request.getParameterMap()
웹 브라우저가 전송한 파라미터의 맵을 구한다. 맵은 파라미터 이름과 값의 쌍으로 구성된다.
cf) request.getParameterNames(), request.getParameterMap() :
요청 key를 모르거나 변동이 있는 경우, 해당 요청 key과 값을 설정하여 처리할 떄 활용
<h2>name:<%=request.getParameter("name") %></h2>
<h2>age:<%=request.getParameter("age") %></h2>
<h2>loc:<%=request.getParameter("loc") %></h2>
<%
String prices[] = request.getParameterValues("price");
if(prices!=null){
%>
<h2>price[0]:<%=prices[0] %></h2>
<h2>price[1]:<%=prices[1] %></h2>
<h2>price[2]:<%=prices[2] %></h2>
<%} %>
<%
//요청값이 가변적일 때, 처리되는 객체로 요청 키들을 가지고 온다
Enumeration e = request.getParameterNames();
while(e.hasMoreElements()){ // 요청키가 있을 때까지 처리
String key= (String)e.nextElement(); // 요청키를 가지고 온다.
//String value = request.getParameter(key); // 요청값을 가지고 온다
// 여러개가 단일 갯수가 섞여있는 경우
String req[]= request.getParameterValues(key);
for(String value:req){
out.print("<h3>"+key+":"+value+"</h3>");
// expression으로 받지 않고 out.print를 이용해서 간단하게 출력할 수 있다.
}
}
%>
<%
//숫자형 처리
Enumeration e1 = request.getParameterNames();
int tot=0;
while(e1.hasMoreElements()){ // 요청키가 있을 때까지 처리
String key= (String)e1.nextElement(); // 요청키를 가지고 온다.
String req[]= request.getParameterValues(key);
for(String value:req){
if(key.equals("price")){
int price = 0;
// null, 공백, 숫자형이 아닌 데이터를 모두 다 0으로 처리
try{
price = Integer.parseInt(value);
}catch(Exception ex){}
tot+=price;
}
out.print("<h3>"+key+":"+value+"</h3>"); // expression으로 받지 않고 out.print를 이용해서 간단하게 출력할 수 있다.
}
}
out.print("<h3>총비용 합산"+tot+"</h3>");
%>