「クッキー値を取得(Jakarta TagLibs+式言語)」では、式言語、Requestタグライブラリを利用して、クッキー値の取得を簡素化する方法について紹介しました。引き続き、本TIPSではJakarta TagLibsを利用して、クッキーの設定をスクリプトレスで実現する方法について紹介することにしましょう。
Jakarta TagLibsの中で、クッキー設定のようなクライアントへの応答部分を担うのはResponseタグライブラリの役割です。Responseタグライブラリ(jakarta-taglibs-response-current.zip)もRequestタグライブラリ同様、以下のサイトから入手することができます。
・http://jakarta.apache.org/site/binindex.cgi
解凍したフォルダに含まれるtaglibs-response.jarをアプリケーションルート配下の「/WEB-INF/lib」フォルダに、taglibs-response.tldを「/WEB-INF」フォルダに、それぞれコピーしたうえで、web.xmlを以下のように編集してください。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <taglib> <taglib-uri>http://jakarta.apache.org/taglibs/response-1.0</taglib-uri> <taglib-location>/WEB-INF/tld/taglibs-response.tld</taglib-location> </taglib> </web-app>
それでは、Responseタグライブラリを利用してクッキー(名前はauthor、値はYamada、有効期限は180日)を設定してみることにしましょう。
<%@ taglib prefix="res"
uri="http://jakarta.apache.org/taglibs/response-1.0" %>
<res:addCookie name="author">
<res:value>Yamada</res:value>
<res:maxAge>${60*60*24*180}</res:maxAge>
</res:addCookie>
クッキーの各種属性は、<res:addCookie>要素の属性、もしくは配下の子要素として指定することができます。単純な固定値を指定する場合には<res:addCookie>要素の属性を、ほかのタグライブラリによる処理結果などから値を指定したい場合には、配下の子要素を使用してください。なお、クッキー名だけは<res:addCookie>要素の属性としてしか指定することができません。
| <res:addCookie> 要素の属性 |
<res:addCookie> 要素の子要素 |
概要 | |
|---|---|---|---|
| name | なし | クッキーの名前 | |
| value | <res:value> | クッキーの値 | |
| maxAge | <res:maxAge> | 有効期限(単位は秒) | |
| domain | <res:domain> | 有効なドメイン | |
| path | <res:path> | 有効なパス | |
| secure | <res:secure> | クッキーに発行にSSLが必要か | |
| version | <res:version> | クッキーのバージョン | |
| comment | <res:comment> | コメント | |
Copyright © ITmedia, Inc. All Rights Reserved.