다연이네

[days02] 요청 파라미터를 처리하는 메소드 / request 요청 헤더 정보 본문

JSP

[days02] 요청 파라미터를 처리하는 메소드 / request 요청 헤더 정보

 다연  2020. 12. 23. 20:29
반응형

요청  파라미터를 처리하는 메소드

 

1. request.getParameter() ***
2. requestgetParameterValues() ***
3. request.getParameterNames()
4. request.getParameterMap()  entry(key,value 한 쌍) 파라미터가 한 쌍으로 들어가 있는 것

 

ex04.jsp

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="">
<style>
</style>
<script>
   $(document).ready(function (){     
   });
</script>
</head>
<body>
 
 <form action="ex04_ok.jsp" method="post">
 이름: <input type="text" name="name" value="김동준"/><br>
 성별: <input type="radio" name="gender" value="m" checked> 남자 
		<input type="radio" name="gender" value="w"> 여자
 		<br>
 좋아하는 동물 : <input type="checkbox" name="pet" value="puppy"/>강아지
 					<input type="checkbox" name="pet" value="pig"/>도새기
					<input type="checkbox" name="pet" value="cat"/>고양이
 
 <input type="submit" />
 </form>
</body>
</html>

ex04_ok.jsp

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<% //post방식일때 한글 깨지지 않게 하기 위해
request.setCharacterEncoding("UTF-8");
%>

<%
	//?name=김동준 get방식으로 넘어올거다
	String name = request.getParameter("name");
	//?name=김동준&gender=m
	String gender= request.getParameter("gender").equals("m") ? "남자":"여자";
	//좋아하는 동물은 여러개일 수 있음
	//name=김동준&gender=m&pet=puppy&pet=pig
	//request.getParameterValues() 사용해라!
	String [] pets = request.getParameterValues("pet");
%>

>name : <%=name%><br>
<%-- >name : ${param.name}<br>  --%> <!-- 파라미터값 바로 읽어온다  -->

>gender: <%=gender%><br> <!-- 여자 -->
<%-- >gender: ${param.gender}<br> <!-- w --> --%>

>favorite pet : 
<%
for(int i=0; i<pets.length; i++){
	%><%=pets[i] %>, <%
}
%>

전부 value 값이 넘어온다.

 

파라미터명을 전부 출력해보자

<h3>파라미터명 전부 출력</h3>
<ul>
<%
Enumeration<String> em = request.getParameterNames();

while(em.hasMoreElements()){

	String p_name = em.nextElement();
	%> <li> <%=p_name %> </li>
<%
}
%>
</ul>

파라미터명+값 전부 출력해보자

<h3>파라미터명+값 전부 출력</h3>
<ol>
<%
Map<String, String[]> map = request.getParameterMap();
Set<Entry<String, String[]>> set = map.entrySet();
Iterator<Entry<String, String[]>> ir = set.iterator();

while(ir.hasNext()){

	Entry<String, String[]> entry = ir.next();
	String names = entry.getKey();
	String[] values = entry.getValue();%>
	<li> <%=names %>, <%=Arrays.toString(values) %> </li> 
<%
}
%>
</ol>

 

 

 


 

request 요청 헤더 정보

 

  getHeader()
  getHeaders()
  getHeaderNames()
  getIntHeader() --자주 안씀 정보를 int 형식으로 받아옴
  getDateHeader() --자주 안씀  정보를 date 형식으로 받아옴

 

<body>
<!-- 
	GET 방식을 이용해서 파라미터를 전송하는 방법
	1. <a href="ex03.jsp?name=admin&age=10"></a>
	2. form 태그의 method 속성="GET"
	3. 웹 브라우저를 열어서 직접 쿼리 스트링을 포함한 URL 요청
 -->

  
  <%
  Enumeration<String> en = request.getHeaderNames();
  while(en.hasMoreElements()){
	  String h_name = en.nextElement();
	  String h_value = request.getHeader(h_name);
	  %>
	  <li><%=h_name %>- <%=h_value %></li>
<%
  }
%>
</body>

 

 

반응형
Comments