JSP (9) - JSP 3


requsetオブジェクト


Webブラウザを介してサーバに何らかの情報を要求することを要求と呼ぶ.また、これらの要求情報は、要求オブジェクトによって管理される.

request(リクエスト)、response(レスポンス)の構造は、上記の画像と同じです.これは簡単な構造です.Webブラウザが要求を発行すると、要求がサーバに送信され、Webブラウザに戻って応答します.
リクエスト・オブジェクトに関連するメソッド
requestオブジェクトに関連する方法は次のとおりです.
getContextPath():Webアプリケーションのコンテキストパスを取得します.
getMethod():get方式とpost方式を区別できます.
getSession():セッションオブジェクトを取得します.
getProtocol():対応するプロトコルを取得します.
getRequestURL():要求URLを取得します.
getRequestURI():要求URIを取得します.
getQuery String():クエリーを取得!
パラメータを処理する方法もいくつかあります.前述したリクエスト関連メソッドと比較して,実際に多く用いられるメソッドはparameter関連メソッドである.Jspページ作成の目的はデータ値の転送であるため,パラメータ関連手法が重要である.
getParameter(String name):nameに対応するパラメータ値を取得します.
getParameterName():すべてのパラメータ名を取得します.
getParameterValue(String name):nameに対応するパラメータ値を取得します.
例を見てみましょう.
form.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	
	<form action="requestparam.jsp" method="post">
		이름 : <input type="text" name="name" size="10"><br/>
		아이디 : <input type="text" name="id" size="10"><br/>
		비밀번호 : <input type="password" name="pw" size="10"><br/>
		취미 : <input type="checkbox" name="hobby" value="read">독서
		<input type="checkbox" name="hobby" value="cook">요리
		<input type="checkbox" name="hobby" value="run">조깅
		<input type="checkbox" name="hobby" value="swim">수영
		<input type="checkbox" name="hobby" value="sleep">취침<br/>
		전공 : <input type="radio" name="major" value="kor">국어
		<input type="radio" name="major" value="eng" checked="checked">영어
		<input type="radio" name="major" value="mat" >수학
		<input type="radio" name="major" value="des" >디자인<br/>
		<select name="protocol">
			<option value="http">http</option>
			<option value="ftp" selected="selected">ftp</option>
			<option value="smtp">smtp</option>
			<option value="pop">pop</option>
		</select><br/>
		<input type="submit" value="전송">
		<input type="reset" value="초기화">
	</form>
	
</body>
</html>
requestobj.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!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=EUC-KR">
<title>Insert title here</title>
</head>
<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>
</html>
getを利用して欲しい情報を取得することです.
requestparam.jsp
<%@page import="java.util.Arrays"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!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=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%!
	String name, id, pw, 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("hobby");
%>

이름 : <%= name %><br />
아이디 : <%= id %><br />
비밀번호 : <%= pw %><br />
취미 : <%= Arrays.toString(hobbys) %><br />
전공 : <%= major %><br />
프로토콜 : <%= protocol %><br />
</body>
</html>
getParameterメソッドを使用して、対応する値を取得します.
しゅつりょく

応答オブジェクト


Webブラウザに応答する要求を応答と呼び、これらの応答(応答)情報を持つオブジェクトを応答オブジェクトと呼ぶ.
レスポンスメソッド
応答に関する方法は次のとおりです.
getCharacterEncoding():レスポンスを取得するときの文字の符号化形式.
addCookie(Cookie):Cookieを指定します.
sendRedirect(URL):指定したURLに移動します.
上以外にもいろいろな方法があります.よく使うものです.
例を見てください.
requestex.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<form action="request_send.jsp">
		당신의 나이는 : <input type="text" name="age" size="5">
		<input type="submit" value="전송">
	</form>

</body>
</html>
request_send.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!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=EUC-KR">
<title>Insert title here</title>
</head>
<body>

<%!
	int age;
%>

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

<%= age %>

</body>
</html>
年齢によっては20歳以上で通過しますjspまたはngでjspに移動します.
pass.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!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=EUC-KR">
<title>Insert title here</title>
</head>
<body>

<%!
	int age;
%>

<%
	String str = request.getParameter("age");
	age = Integer.parseInt(str);
%>

성인 입니다. 주류구매가 가능 합니다.

<a href="requestex.html">처음으로 이동</a>
</body>
</html>
20歳以上なので大人ですお酒類を購入できます.で行ないます.
ng.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!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=EUC-KR">
<title>Insert title here</title>
</head>
<body>

<%!
	int age;
%>

<%
	String str = request.getParameter("age");
	age = Integer.parseInt(str);
%>

미성년자 입니다. 주류구매가 불가능 합니다.

<a href="requestex.html">처음으로 이동</a>
</body>
</html>
20歳未満、未成年、酒類の購入はできません.で行ないます.

今日はここまでです。


JSPのrequest,responseオブジェクトとメソッドを簡単にまとめた.大切な、よく使うものです.書くと自然に暗記します.