반응형

request객체

Parameter부분 (모두 String으로 전송) Attribute부분
<jsp:param> get방식으로 전송된 파라미터
(쿼리스트링방식 포함)
post방식으로
전송된 파라미터
Encoding( x ) 전부 필요없음.
다만, Object자료형으로 데이터가 감싸져있는 상태로 전송됨.
요청을 보내는 곳
: Encoding(ㅇ)필요
요청을 받는 곳
: Decoding(ㅇ)필요
Encoding( x ) 전부 필요없음
단, 낮은 버전의 톰캣인 경우
urlEncoding을 설정해줘야함
요청을 받는 곳에서만
Encoding(ㅇ) 설정 필요



 

< jsp:param >

jsp:param 액션태그로 전송한 데이터는
request영역을 공유하며,
데이터 전송은 눈에 보이지는 않지만 
쿼리스트링방식처럼 url뒤에 key=value형식으로 붙여보낸다.
<jsp:param name="id" value="admin"/>
<jsp:param name="name" value='<%=java.net.URLEncoder.encode("관리자") %>'/>

request객체의 Parameter를 가져오는 메서드 종류

request.getParameter()
-  한 개의 인자값만을 가져오는 경우 사용한다.
request.getParameter("name");
"홍길동"
request.getParameterValues()
-  여러 개의 인자값을 가져오는 경우 사용한다.
-  배열 객체를 이용하여 받을 수 있다.
request.getParameterValues("pet")
"dog", "cat"
request.getParameterNames()
- 인자값에 매칭되어 있는 name속성값을 가져온다.
- 동일한 속성명은 1개만 가져온다.
 

 

빈문자열은 빈문자열로

없는 값은 null값으로.

깨질데이터만 인코딩처리

jsp제공하는 내장객체들에는 null값이 없다.

request: jsp에서 제공하는 객체. java에서 접근불가

request객체 - <jsp:param>
08_03_request.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>파라미터 전송 테스트</h3>
	<p>request객체 표현</p><br>
	jsp:param 액션태그로 전송한 데이터는 request영역을 공유하며,<br>
	데이터 전송은 눈에 보이지는 않지만 쿼리스트링방식처럼 url뒤에 key=value형식으로 붙여보낸다.<br><br>
	<jsp:forward page="08_03_requestInfo.jsp">
		<jsp:param name="id" value="admin"/>
		<jsp:param name="name" value='<%=java.net.URLEncoder.encode("관리자") %>'/>
	</jsp:forward>
</body>
</html>​
08_03_requestInfo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%-- <% request.setCharacterEncoding("utf-8"); %> --%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>현재페이지 url: http://localhost:8090/jspfirst/08_03_requestInfo.jsp</h2>
	<!--경로(path): 			ㄴ웹서버			ㄴcontext(project단위) -->
	<h3>프로토콜 : http</h3>
	<h3>ip주소(=서버이름) : 127.0.0.1(localhost)</h3>	
	<h3>포트번호 : 8090</h3>
	<h3>경로(path) : /jspfirst/08_03_requestInfo.jsp</h3>
	
	<dl>
		<dt><strong style="font-weight:bolder">localhost정보</strong></dt>
		<dd>IPv4 주소 형식 값으로 표시: 127.0.0.1</dd>
	</dl>
	
	<ul>
		<li>요청정보 인코딩 = <%= request.getCharacterEncoding() %><br>
		<!--request: jsp에서 제공하는 객체. java에서 접근불가 -->
			<small style="color:red">클라이언트가 전송한 요청 정보의 문자셋을 구함. String으로 반환</small>
		</li>
		<li>
			파라미터 정보1= <%=request.getParameter("id") %><br>
			파라미터 정보2= <%=java.net.URLDecoder.decode(request.getParameter("name"))%><br>
			파라미터 정보3= <%=request.getParameter("name")%><br>
		</li>
	</ul>
</body>
</html>


<jsp:forward (페이지 이동 방식 방법)
: jsp페이지는 buffer사이즈를 설정하지 않으면 기본으로 8kb를 가진다.
출력 내용이 8kb가 넘게 되면 버퍼를 비우고(화면으로 출력)하는데,
forward는 버퍼에 쌓인 내용을 기본적으로 모두 제거하므로, 출력되는 내용이 없게 된다.
따라서 이동하는 페이지의 내용만 표시가 된다.
08_03_request.jsp  [request영역,객체]  08_03_requestInfo.jsp
<jsp:forward page="08_03_requestInfo.jsp">
<jsp:param name="id" value="admin"/>
<jsp:param name="name" value='<%=java.net.URLEncoder.encode("관리자") %>'/>
</jsp:forward>
name | value
     id  | admin
name | 관리자
요청정보 인코딩 = 
<%= request.getCharacterEncoding() %>

request.getParameter("id")

java.net.URLDecoder.decode
(request.getParameter("name"))

 

반응형

+ Recent posts