/ JSP

11. jsp 3

SEOUL G-캠프

0. 목차



Chapter11. JSP 본격적으로 살펴보기-III

Ch11 - 1. request 객체의 이해

Ch11 - 2. response 객체의 이해



Ch11 - 1. request 객체의 이해


▶ request 객체란?

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


▶ Request 객체 관련 메서드

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

▶ Request 메서드 실습

▷ .jsp
// request.jsp

...
<body>

	<%
		out.println("서버 : " + request.getServerName() + "<br />");
		out.println("포트 번호 : " + request.getServerPort() + "<br />");
		out.println("요청 방식 : " + request.getMethod() + "<br />");
		out.println("프로토콜 : " + request.getProtocol() + "<br />");
		out.println("URL : " + request.getRequestURL() + "<br />");
		out.println("URI : " + request.getRequestURI() + "<br />");
	%>

</body>
...
▷ 서버 실행


▶ Parameter란?

▷ 웹 프로그램 실행 시, 서버끼리 데이터를 주고받을 때 parameter 값으로 이동 됨


▶ Parameter 관련 메서드

▷ getParameter(String name)
  • name에 해당하는 파라미터 값을 구함
▷ getParameterNames()
  • 모든 파라미터 이름을 구함
▷ getParameterValues(String name)
  • name에 해당하는 파라미터 값들을 구함
  • string 배열에 담아서 값들을 보내 줌

▶ Parameter 메서드 실습

▷ .jsp
// requestparam.jsp

<%@page import="java.util.Arrays"%> // arrays 사용하기 위해서 import 필요 → page 사용
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%!
	String name, id, pw, major, protocol;
	String[] hobbys;
%>

<%
	request.setCharacterEncoding("utf-8");
	
	name = request.getParameter("name");
	id = request.getParameter("id");
	pw = request.getParameter("pw");
	major = request.getParameter("major");
	protocol = request.getParameter("protocol");
	
	hobbys = request.getParameterValues("hobby");
%>

이름 : <%= name %><br />
아이디 : <%= id %><br />
비밀번호 : <%= pw %><br />
취미 : <%= Arrays.toString(hobbys) %><br />
전공 : <%= major %><br />
프로토콜 : <%= protocol %><br />
</body>
</html>
▷ 서버 실행




Ch11 - 2. response 객체의 이해


▶ response 객체란?

▷ 웹 브라우저의 요청에 응답하는 것 : response
▷ 이러한 응답(response)의 정보를 가지고 있는 객체 : response 객체


▶ Response 객체 관련 메소드

▷ getCharacterEncoding()
  • 응답할때 문자의 인코딩 형태를 구함
▷ addCookie(Cookie)
  • 쿠키를 지정
▷ sendRedirect(URL)
  • 지정한 URL로 이동
  • 제 3의 브라우저를 띄우면서 응답

▶ Response 메서드 실습

▷ request_ex.html » request_send.jsp » pass.jsp(20살 이상) or ng.jsp(20살 이하)






▶ 남/여 체크 시 페이지 이동

▷ request01.html » requestSend » male or female
// request01.html

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<form action="requestSend.jsp">
		<input type="radio" name="sex" size="5">male
		<input type="radio" name="sex" size="5">female
		<input type="submit" value="전송">
	</form>
	
</body>
</html>
// requestSend.jsp

...
<body>

<%!
	String sex;
%>

<%
	String str = request.getParameter("sex");
	
	if(str == sex){
		response.sendRedirect("male.jsp?sex=" + sex);
	} else {
		response.sendRedirect("female.jsp?sex=" + sex);
	}
%>

<%= sex %>

</body>
...
// male
...
<body>
	남자
</body>
...

// female
...
<body>
	여자
</body>
...
▷ 서버 실행



▶ 연습한 횟수에 따라 다른 페이지 띄우기

▷ request01.html » requestSend » bad or good
// request01.html

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<form action="requestSend.jsp">
		오늘 연습한 횟수는?
		<input type="text" name="times" size="5">
		<input type="submit" value="전송">
	</form>
	
</body>
</html>
// requestSend.jsp

...
<body>

<%!
	int TrTimes;
%>

<%
	String str = request.getParameter("times");
	TrTimes = Integer.parseInt(str);
	
	if (TrTimes <= 10 ) {
		response.sendRedirect("bad.jsp?TrTimes=" + TrTimes);
	} else {
		response.sendRedirect("good.jsp?TrTimes=" + TrTimes);
	}
%>

<%= TrTimes %>

</body>
...
// bad.jsp
...
<body>
	badbadbad 오늘 뭐했냐?
</body>
...

// good.jsp
...
<body>
	good 자기 전에 한번  해라
</body>
...
▷ 서버 실행