Interstage Studio プログラマーズガイド |
目次 索引 |
第2部 Java編 | > 第3章 Webアプリケーションを開発する | > 3.4 留意事項 |
要求オブジェクトからパラメタの値を取得する場合には、入力フォームの文字コードを意識した処理をする必要があります。そのため、Webアプリケーションでは文字コードを統一しておくことをお勧めします。
HTML、JSPおよび、サーブレットについては、以下のように文字コードを設定します。
Webコンポーネント |
設定方法 |
記述例 |
---|---|---|
HTML |
metaタグのContent-Type(charset)の値で指定します。 |
<meta http-equiv="Content-Type" content="text/html; charset=Windows-31J" /> |
JSP |
pageディレクティブのcontentType属性でHTTPヘッダのContent-Type(charset)の値を指定します。 |
<%@ page language="java" contentType="text/html; charset=Windows-31J"%> |
サーブレット |
HttpServletResponseインタフェースのsetContentTypeメソッドでHTTPヘッダのContent-Type(charset)の値を指定します。 |
res.setContentType("text/html; charset=Windows-31J"); |
JSPでは、ファイル保存時の文字コードを別に指定できます。pageディレクティブのpageEncoding属性に記述します。
HTMLとJSPの新規ウィザードでは、ファイル生成時に文字コードを埋め込むための方法を提供しています。埋め込む文字コードについては、ワークスペース単位に指定でき、それぞれ設定ダイアログボックスの以下で指定します。HTML: [Web] > [HTML]
JSP: [Web] > [JSP]
フィルタで文字コードを考慮する場合は、たとえば、以下のクラスを作成し、Webアプリケーション環境定義ファイルでフィルタマッピングを定義する必要があります。DDエディタ(Web)では[フィルタ]タブでフィルタマッピングを定義します。
この例では、Webアプリケーション環境定義ファイルの初期パラメタに文字コードを指定し、このフィルタクラスを利用する環境によってカスタマイズできるようになっています。そのため、初期パラメタについても定義する必要があります。
package filter; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class flt_request implements Filter { private FilterConfig config=null; public void init(FilterConfig conf){ this.config=conf; } public void destroy(){} public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { request.setCharacterEncoding(config.getInitParameter("encoding")); chain.doFilter(request,response); } }
setCharacterEncodingの文字コード指定は、POSTメソッドには有効ですが、GETメソッドがパラメタを渡すURL部分には適用されないため、GETメソッドでは有効になりません。
GETメソッドの場合、Interstage管理コンソールのワークユニット > "IJServer名" > [環境設定]タブで[Servletコンテナ設定]の[リクエストボディ処理のエンコーディングをクエリパラメタに使用]を[する]に設定すると有効になります。Interstage管理コンソールの詳細については、Interstage Application Serverのマニュアルを参照してください。
Interstage Application Serverでは、入力コード自動変換機能があり、Webアプリケーションを配備後にエンコーディングを指定することでパラメタを自動的に変換することができます。詳細は、Interstage Application Serverのマニュアルを参照してください。
目次 索引 |