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

Cookie送受信のJSPプログラム

クッキー(Cookie)はサーバークライントシステムでクライアント側にアプリケーションに必要なデータを保持させる方法です。最近ではセキュリテイの観点からあまり推奨されていないそうですが…

クッキーは任意のサイトのURLとともに保存され、再びそのサイトに訪れたときクライアント側が自動的にそのサイトに対するクッキーを全てサーバー側に送信します。ちなみにCookieで扱える文字はASCII文字だけです。ですからASCII文字だけで構成されるUTF-8文字コードが使われます。
cookie.jsp

<%@ page language="java" contentType="text/html; charset=windows-31j"
    pageEncoding="windows-31j"%>
<%@ page import="java.net.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<%
	Cookie cookies[] = request.getCookies();
	String name=null;

	request.setCharacterEncoding("Windows-31J");
	name=request.getParameter("name");

	if(name==null && cookies !=null){
		for(int i=0; i<cookies.length; i++){
			if(cookies[i].getName().equals("name")){
				name=URLDecoder.decode(cookies[i].getValue(), "UTF-8");
			}
		}
	}

	//Save cookies
	if(name != null){
		Cookie newCookie = new Cookie("name", URLEncoder.encode(name,
				"UTF-8"));
		newCookie.setMaxAge(1000); //lifetime is 10000sec
		response.addCookie(newCookie);
	}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>クッキーのテスト</title>
</head>
<body>
	<H1>クッキーのテスト</H1>
<% if(name==null){ %>
	<FORM method="post">
		あなたの名前は?<INPUT type="text" name="name"></INPUT>
		<INPUT type="submit" value="送信"></INPUT>
	</FORM>
<% }else{ %>
	<%=name %>さんいらっしゃい!
<% } %>
</body>
</html>