今回はCookieについて
いつもの参考サイトURLhttp://libro.tuyano.com/index3?id=877002&page=2
HTML5の登場前はブラウザに保存できるデータといえばCookieだけだったらしい。
ブラウザとサーバ間でデータのやりとりができる。
・Cookieの作成
Cookie 変数 = new Cookie( 名前 , 値 );
・クッキーの保存
response.addCookie( 《Cookie》 );
・クッキーの取得
Cookie[] 変数 = request.getCookies();
※responseは暗黙オブジェクト
・クッキーの名前を得る
・クッキーの値を得る
String 変数 = 《Cookie》.getName();
・クッキーの値を得る
String 変数 = 《Cookie》.getValue();
・有効期限を設定する
《Cookie》.setMaxAge( 秒数 );
サンプル
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="java.net.*" %>
<%
// エンコードを設定しておく
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
req = request;
// 入力フィールドの値を得る
String input = request.getParameter("input");
if (input == null) input = "";
// messageとcountのクッキーを得る
Cookie msg = getCookie("message");
Cookie count = getCookie("count");
// msgが空なら新たにクッキーを作る
if (msg == null){
input = URLEncoder.encode(input,"utf-8");
msg = new Cookie("message",input);
response.addCookie(msg);
}
// countが空なら新たにクッキーを作る
if (count == null){
count = new Cookie("count", "0");
response.addCookie(count);
} else { // 空でないなら、countの数字を1増やして設定する
String num = count.getValue();
int n = Integer.parseInt(num);
n++;
count = new Cookie("count",String.valueOf(n));
response.addCookie(count);
}
// 入力フィールドに何か書かれていたらクッキーを新たに設定し直す
if (!input.equals("")) {
input = URLEncoder.encode(input,"utf-8");
msg = new Cookie("message",input);
response.addCookie(msg);
count = new Cookie("count","1");
response.addCookie(count);
}
%>
<%!
HttpServletRequest req;
// 指定の名前のクッキーを取り出すメソッドの定義
Cookie getCookie(String s){
Cookie[] cookies = req.getCookies();
Cookie res = null;
if (cookies != null){
for(Cookie c : cookies){
if (s.equals(c.getName())){
res = c;
break;
}
}
}
return res;
}
%>
<!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>Sample jsp</title>
<style>
h1{
font-size: 16pt;
background: #AAFFAA;
padding: 5px;
}
</style>
</head>
<body>
<h1>Sample jsp page</h1>
<p>これはサンプルで用意したページです。</p>
<p><%=count.getValue() + ": " + URLDecoder.decode(msg.getValue(),"utf-8") %></p>
<table>
<form method="post" action="hello.jsp">
<tr>
<td>入力</td>
<td>
<input type="text" id="input" name="input">
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="送信">
</td>
</tr>
</form>
</table>
</body>
</html>
↓実行結果
0 件のコメント:
コメントを投稿