11. jsp 3
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>
...
▷ 서버 실행