request 및 response 객체의 이해

조윤후·2021년 7월 27일
0

request 객체의 이해

웹브라우저를 통해 서버에 어떤 정보를 요청하는 것을 request라고 한다. 그리고 이러한 요청정보는 request객체가 관리한다.

Request객체 관련 메서드

  • getContextPath() : 웹어플리케이션의 컨텍스트 path를 얻습니다.
  • getMethod() : get방식과 post방식을 구분할 수 있습니다.
  • getSession() : 세선 객체를 얻습니다.
  • getProtocol() : 해당 프로토콜을 얻습니다.
  • getRequestURL() : 요청 URL을 얻습니다.
  • getRequestURI () : 요청 URI를 얻습니다.
  • getQueryString () : 쿼리스트링을 얻습니다.

Parameter메서드

실제 JSP에서 많이 쓰이는 메서드는 parameter 와 관련된 메서드이다.
JSP페이지를 제작하는 목적이 데이터값을 전송하기 위해서 쓰므로, parameter관련 메서드들은 중요하다.

  • getParameter(String name) : name에 해당하는 파라미터 값을 구함.
  • getParameterNames() : 모든 파라미터 이름을 구함
  • getParametervalues(String name) : name에 해당하는 파라미터 값들을 구함

예시

<!-- Form.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>

<form action="requestparam.jsp" method="post">
		이름 : <input type="text" name="name"> <br />
		아이디 : <input type="text" name="id"> <br />
		비밀번호 : <input type="password" name="pw"> <br > 
		취미 : <input type="checkbox" name="hobbys" value="read"> 독서 
		<input type="checkbox" name="hobbys" value="cook"> 요리 
		<input type="checkbox" name="hobbys" value="run"> 조깅 
		<br />
		<input type="radio" name="major" value="kor"> 국어 
		<input type="radio" name="major" value="eng"> 영어
		<input type="radio" name="major" value="math"> 수학
		<br />
		<select name="protocol">
			<option value="http">http</option>
			<option value="ftp" selected="selected">ftp</option>
			<option value="sftp">sftp</option>
		</select>
		<input type="submit" value="전송">
	</form>
</body>
</html>
<!-- requestparam.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<%!
		String name, pw, id, major, protocol;
		String[] hobbys;
	%>
	
	<%
		request.setCharacterEncoding("EUC-KR");
		name = request.getParameter("name");
		id = request.getParameter("id");
		pw = request.getParameter("pw");
		major = request.getParameter("major");
		protocol = request.getParameter("protocol");
		hobbys = request.getParameterValues("hobbys");
		
	%>
	
	이름 : <%= name %>;
	아이디 : <%= id %>;
	비밀번호 : <%= pw %>;
	전공 : <%= major %>;
	취미 : <%= Arrays.toString(hobbys) %>;
	프로토콜 : <%= protocol %>;

</body>
</html>

response 객체의 이해

웹브라우저의 요청에 응답하는것을 response라고 하며, 응답 정보를 가지고 있는 객체를 response객체라고 한다.

response 관련 메서드

  • getCharacterEncoding() : 응답할때 문자의 인코딩 형태를 구합니다.
  • addCookie(Cookie) : 쿠키를 지정합니다.
  • sendRedirect(URL) : 지정한 URL로 이동합니다.

예시

<!-- request.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<form action="request_send.jsp">
	당신의나이는 ? <input type="text" name="age">
	<input type="submit" value= "전송">
</form>
</body>
</html>
<!-- request_send.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>

<%
	String str = request.getParameter("age");
	int age = Integer.parseInt(str);
	
	if (age >= 20) {
		response.sendRedirect("pass.jsp?age=" + age);
	} else {
		response.sendRedirect("ng.jsp?age=" + age);
	}
%>
</body>
</html>

위 예제를 보면 request.html파일에서 데이터를 입력후 전송을 누르면 request_send.jsp 파일에서 검증을 한 후에 조건에 맞는 곳으로 redirect를 시켜준다. 위 예제는 이때 값을 보내는건 get방식으로 보냈다.

profile
공부하며 예제풀이 정리

0개의 댓글