読者です 読者をやめる 読者になる 読者になる

liguofeng29’s blog

個人勉強用ブログだっす。

JSP - requestオブジェクト

クライアントの要求(リクエスト)をカプセルかしたオブジェクトである。

 

1. リクエストパラメータを取得する。

2. requestスコープ属性操作ができる。

3. forward, includeを実行する。

 
主なメソッド説明
getAttribute(String name) requestスコープのname属性取得
setAttribute(String name. objcet value) requestスコープにname属性設定
String getParameter(String paramName) リクエストパラメータを取得
Map getParameterMap() リクエストパラメータのmap取得
Enumeration getParameterNames() リクエスト名の列挙取得
String[] getParamertsValues(String name) 指定リクエスト名の複数値取得
String getHeader(String name) 指定ヘッダ名の値取得
java.util.Enumeration<String > getHeaderNames() すべてのヘッダ名取得
java.util.Enumeration<String > getHeade(String name) 指定ヘッダ名の複数値取得
int getIntHeader(String name) 指定ヘッダ名のINT値取得
getRequestDispatcher(String path).forward(ServletRequest request,ServletResponse response) ページ遷移を行う

遷移してもリクエストパラメータは保持する。

 

getRequestDispatcher(String path).include(ServletRequest request,ServletResponse response)ページ読み込みを行う

 
requestForm.jsp
<%@ page contentType="text/html;charset=Shift_jis" language="java" %>
<html>
<head>
<title>send a request.</title>
</head>
<body>
<form id="form1" method="post" action="request1.jsp">
name : <input type="text" name="name" /><br/>
sex : man<input type="radio" name="sex" value="man">women<input type="radio" name="sex" value="women"><br/>
country :
<select name="country">
<option value="china">china</option>
<option value="usa">usa</option>
<option value="korea">korea</option>
</select>
<br/>
<input type="submit" value="send"/>
</form>
</body>
</html>
 
 
request1.jsp
<%@ page contentType="text/html;charset=Shift_jis" language="java" %>
 
<%@page import="java.util.Enumeration"%><html>
<head>
<title>send a request.</title>
</head>
<body>
<form id="form1" method="post" action="request1.jsp">
 
<%
// ヘッダー取得
Enumeration<String> headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements()){
  String headerName = headerNames.nextElement();
 
  out.println("headerName =" + request.getHeader(headerName) + "<br/>");
}
 
// リクエストパラメータ取得
String name = request.getParameter("name");
String sex = request.getParameter("sex");
String country = request.getParameter("country");
%>
 
your name    : <%=name %><br/>
your sex     : <%=sex %><br/>
your country : <%=country %><br/>
 
</form>
</body>
</html>
 

 

ポイントまとめ:

1. form内のname属性に対してリクエストパラメータが生成される。

2. name属性に対応するvalue属性が値となる。

3. formタグに disabled="disabled"属性を設定すると、リクエストパラメータを生成しない。

4. formタグのmethod="get"の場合、リクエストパラメータはURLの後ろに追加される。

上記例の場合、「http://localhost:8080/webDemo/request1.jsp?name=MyNameIsLee&sex=man&country=usa」となる。

一般的にPOSTのほうがセキュリティに良い。

5. リクエストパラメータの文字化けには、

postの場合、setCharacterEcconding(String encode)

getの場合、java.net.URLDecoder, java.net.URLEncoderクラスを参照する。