(57)【要約】      （修正有）【課題】Ｗｅｂアプリケーションにおける、不正な文字コードの入力チェック処理を高効率化する。【解決手段】既存のＷｅｂアプリケーションにおける入力チェック処理機能に、文字コードチェックの機能を追加し、従来のＷｅｂアプリケーションフレームワークの入力検証機能による定義を使って文字コードチェック処理を行なう。特に、文字コードチェック処理を、コントローラ（ActionServlet）内で行う事により、複数の項目の文字コードチェックを一度に行なうことが可能となる。【選択図】図１
2011118524.tif 000002
【特許請求の範囲】
【請求項１】
ＷｅｂアプリケーションフレームワークにStrutsを使用したＷｅｂアプリケーションに入力される文字コードのチェックを、struts-config.xmlファイルとvalidation.xmlファイルを用いて行うＷｅｂアプリケーションの文字コードチェック方法であって、
上記コンピュータ装置は、プログラムされたコンピュータ処理を実行する手段として、
ActionServletを継承する文字コードチェック処理手段を具備し、
該文字コードチェック処理手段は、
予め文字コードチェック定義ファイルに定義された、文字コードチェックを行う文字コードセットの名称（文字エンコーディング名）と文字コードチェックのルール名を読み出して記憶装置に記憶し、
入力されたリクエスト要求pathを基に上記struts-config.xmlファイルを検索して、当該リクエスト要求pathに対応して予め定義されたform name、validate属性、input pathのそれぞれの値を取得して記憶装置に記憶し、
上記取得したvalidate属性の値がtrueであるか否かを判別して、validate属性値がtrueでなければ、当該リクエスト要求pathのまま上記ActionServletに制御を戻し、validate属性値がtrueであれば、下記の手順を実行して、全てのリクエストデータに対する文字コードチェック処理を行う
ことを特徴とするＷｅｂアプリケーションの文字コードチェック方法。
＜手順＞
上記取得したform nameを基に上記validation.xmlファイルを検索して、form nameの値が一致し、かつ、field propertyの値がリクエスト要求の項目名称と一致する予め定義されたフィールドを特定し、
特定したフィールドにおけるdepend属性に、上記取得した文字コードチェックのルール名が予め定義されているか否かを判別し、
予め定義されていれば、特定したフィールドに入力される文字が、上記取得した文字エンコーディング名の文字コードセットに含まれるか否かを判定し、
含まれない場合にエラー発生を検出し、エラーメッセージを生成して出力する
【請求項２】
請求項１に記載のＷｅｂアプリケーションの文字コードチェック方法であって、
上記文字コードチェック処理手段は、
上記エラー発生を検出した文字を全て、予め上記文字コードチェック定義ファイルに定義された、上記読み出した文字エンコーディング名の文字コードセットの範囲に存在する文字に置き換え、
上記validation.xmlファイルにおいて予めarg0 keyで定義されている項目名を用いて、上記エラーメッセージを生成し、
上記入力されたリクエスト要求pathを、上記struts-config.xmlファイルに予め定義されたinput pathに変更して、上記ActionServletに制御を戻す
ことを特徴とするＷｅｂアプリケーションの文字コードチェック方法。
【請求項３】
ＷｅｂアプリケーションフレームワークにStrutsを使用したＷｅｂアプリケーションに入力される文字コードのチェックを、struts-config.xmlファイルとvalidation.xmlファイルを用いて、プログラムされたコンピュータ処理により行うＷｅｂアプリケーションの文字コードチェックシステムであって、
該Ｗｅｂアプリケーションの文字コードチェックシステムは、プログラムされたコンピュータ処理を実行する手段として、ActionServletを継承する文字コードチェック処理手段を具備し、
該文字コードチェック処理手段は、
予め文字コードチェック定義ファイルに定義された、文字コードチェックを行う文字コードセットの名称（文字エンコーディング名）と文字コードチェックのルール名を読み出して記憶装置に記憶する機能と、
入力されたリクエスト要求pathを基に上記struts-config.xmlファイルを検索して、当該リクエスト要求pathに対応して予め定義されたform name、validate属性、input pathのそれぞれの値を取得して記憶装置に記憶する機能、および、
上記取得したvalidate属性の値がtrueであるか否かを判別して、validate属性値がtrueでなければ、当該リクエスト要求pathのまま上記ActionServletに制御を戻し、validate属性値がtrueであれば、下記の手順を実行して、全てのリクエストデータに対する文字コードチェック処理を行う機能を有する
ことを特徴とするＷｅｂアプリケーションの文字コードチェックシステム。
＜手順＞
上記取得したform nameを基に上記validation.xmlファイルを検索して、form nameの値が一致し、かつ、field propertyの値がリクエスト要求の項目名称と一致する予め定義されたフィールドを特定し、
特定したフィールドにおけるdepend属性に、上記取得した文字コードチェックのルール名が予め定義されているか否かを判別し、
予め定義されていれば、特定したフィールドに入力される文字が、上記取得した文字エンコーディング名の文字コードセットに含まれるか否かを判定し、
含まれない場合にエラー発生を検出し、エラーメッセージを生成して出力する
【請求項４】
請求項３に記載のＷｅｂアプリケーションの文字コードチェックシステムであって、
上記文字コードチェック処理手段は、
上記エラー発生を検出した文字を全て、予め上記文字コードチェック定義ファイルに定義された、上記読み出した文字エンコーディング名の文字コードセットの範囲に存在する文字に置き換え、
上記validation.xmlファイルにおいて予めarg0 keyで定義されている項目名を用いて、上記エラーメッセージを生成し、
上記入力されたリクエスト要求pathを、上記struts-config.xmlファイルに予め定義されたinput pathに変更して、上記ActionServletに制御を戻す機能を有する
ことを特徴とするＷｅｂアプリケーションの文字コードチェックシステム。
【請求項５】
コンピュータに、請求項１もしくは請求項２のいずれかに記載のＷｅｂアプリケーションの文字コードチェック方法における文字コードチェック処理手段による各処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバサイドjava（登録商標）技術を利用し、ＷｅｂアプリケーションフレームワークにStrutsを使用したＷｅｂアプリケーションにおける入力チェック処理技術に係り、特に、不正な文字コードの入力チェック処理を効率的に行うのに好適な技術に関するものである。
【背景技術】
【０００２】
近年、クライアントＯＳのバージョンアップに伴い、使用する文字コードセットが変更されるケースが発生し、従来のクライアントでは入力不可能であった文字が、入力可能になっている。
【０００３】
一方、Ｗｅｂアプリケーションで使用する文字コードは、システム構築時に確定した条件であり、システム構築後に文字コードセットを変更することは困難である。そのため、クライアントから送信されるデータの文字コードが妥当であるか否かをチェックし、Ｗｅｂアプリケーションで許可されていない文字は登録できない仕組みが必要である。
【０００４】
例えば、Windows XP（登録商標）の後に提供されたWindows Vista（登録商標）では「JIS X 0213:2004」の文字コードセットが使用されているのに対し、既存の（Windows XP（登録商標）のＷｅｂアプリケーションはshift-jisで構築されており、Windows Vista（登録商標）のＰＣ（パーソナルコンピュータ）から送信されたデータに不正な文字コードが存在する場合には、既存のＷｅｂアプリケーションが正常に動作しなくなる場合があるので、文字コードをチェックする機能を追加して、不正な文字コードを防止する必要が生じる。
【０００５】
Ｗｅｂアプリケーションに関しては、サーバサイドjava（登録商標）技術を利用したＷｅｂアプリケーションの開発を効率的に行なう為、例えば、非特許文献１，２，３に記載のように、ＭＶＣ（Model、View、Control）モデルに適したフレームワークである「Ｓｔｒｕｔｓ」が多く利用されている。
【０００６】
Ｓｔｒｕｔｓは、「Jakarta Project」によって開発されている、Java（登録商標） Servlet/JSP（Java（登録商標）Server Pages）技術を用いたWebアプリケーション開発を行う上で有用な、オープンソースフレームワークであり、１００％Pure Java（登録商標）で記述されており、このStrutsを使用した環境では、入力データチェックの仕組みがコンポーネントの部品として実装されており、入力データチェック機能に関しても、フレームワークの部品が提供する機能を利用して行なうのが、一般的である。
【０００７】
このＷｅｂアプリケーションフレームワーク（Ｓｔｒｕｔｓ）の入力検証機能は、例えば、図１に示すアプリケーションサーバ１０２においては、Action１０８の開始時に処理しており、この時点では、クライアント端末１００のＷｅｂブラウズ１０１から送信されたデータは全て、アプリケーションサーバ１０２におけるActionForm１０７に格納されている。
【０００８】
しかし、このようなフレームワークの入力検証機能では、１項目単位のエラー検知処理を行っている。そのため、ある項目でエラーが検知されたら、それ以降の項目に関しては、処理せず、コントローラ、すなわち、図１のActionServlet１１２に制御を戻し、このActionServlet１１２（コントローラ）から画面表示クラス１１３を介し、ActionForm１０７に格納されたデータを基に、クライアント端末１００へ送信する。
【０００９】
従って、複数の項目で同時に文字コードエラーが発生するようなケースでは、先頭１件目の文字コードエラーは正しく処理できるが、２件目以降の文字コードエラーは検知できず、クライアント端末１００のＷｅｂブラウザ１０１から受け取ったデータをそのまま返却するので、エラーデータ２件目以降に、アプリケーションサーバ１０２で設定されている範囲外の文字コードが送信された場合には、文字化けが発生してしまうという問題がある。
【００１０】
尚、例えば、特許文献１においては、Ｗｅｂアプリケーションサーバとは別に設けたコンピュータ装置において、Ｗｅｂアプリケーションサーバから送信されてくる検査情報付きレスポンスやメタ情報付きレスポンスを受信し、そのメタ情報を手がかりとして、仕様書ＤＢの中から検査情報（期待値、検査条件）を取得し、取得した検査情報に基づいて出力項目の検査を実行し、検査情報が、Ｗｅｂアプリケーションの仕様書に記述された期待値である場合、出力項目と期待値が一致するか否かを判断し、合格もしくは不合格を示すメッセージを検査結果として出力する技術が記載されているが、この技術は、サーバサイドjava（登録商標）技術を活用してＷｅｂアプリケーションフレームワークにStrutsを使用した環境でコンポーネントの部品として実装されている入力データチェックの仕組みを利用するものではない。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００８−１１２３００号公報
【非特許文献】
【００１２】
【非特許文献１】「ＩＴ：連載  Strutsを使うＷｅｂアプリケーション構築術（１）」、［平成２１年１１月１０日検索］、インターネット＜ＵＲＬ：http://www.atmarkit.co.jp/fjava/rensai3/struts01/struts01_1.html＞．
【非特許文献２】「Java（登録商標）の道：Struts（１７．Validator）」、［平成２１年１１月１０日検索］、インターネット＜ＵＲＬ：http://www.javaroad.jp/opensource/js_struts19.htm＞．
【非特許文献３】「StrutsによるWebアプリケーション開発」、［平成２１年１１月１０日検索］、インターネット＜ＵＲＬ：http://www.infoscience.co.jp/technical/struts/index.html＞．
【発明の概要】
【発明が解決しようとする課題】
【００１３】
解決しようとする問題点は、従来の技術では、サーバサイドjava（登録商標）技術を活用してＷｅｂアプリケーションフレームワークにStrutsが使用された環境においてコンポーネント部品として実装されている入力データチェックの仕組みを、文字コードチェック処理に有効に利用することができない点である。
【００１４】
本発明の目的は、これら従来技術の課題を解決し、サーバサイドjava（登録商標）技術を利用し、ＷｅｂアプリケーションフレームワークにStrutsを使用したＷｅｂアプリケーションにおける、不正な文字コードの入力チェック処理を高効率化することである。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明では、サーバサイドjava（登録商標）技術を利用したＷｅｂアプリケーションフレームワークにStrutsを使用した既存のＷｅｂアプリケーションにおける入力チェック処理機能に、文字コードチェックの機能を追加し、従来のＷｅｂアプリケーションフレームワークの入力検証機能による定義を使って文字コードチェック処理を行なうことを特徴とする。特に、文字コードチェック処理を、コントローラ（ActionServlet）内で行う事により、複数の項目の文字コードチェックを一度に行なうことが可能となる。また、Ｗｅｂアプリケーションフレームワーク（Strust）が使用する各種定義ファイル（validation.xml、Struts-config.xml）の定義情報を活用することにより、フレームワークの入力検証機能の設定手順と同様な設定で、文字コードチェックを適用する項目を画面のフィールド単位に任意に指定できるようになる。
【発明の効果】
【００１６】
本発明によれば、Ｗｅｂアプリケーションフレームワークの入力検証機能の定義をそのまま文字コードチェックの定義に使用できる為、汎用性が高い。また、文字コードチェックプログラムは、Ｗｅｂアプリケーションのコントローラ（ActionServlet）で共通的に処理し、画面個別処理には依存しない為、既存のＷｅｂアプリケーションに文字コードチェックプログラムを後から追加する場合には、少ない変更で簡単に追加することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明に係るＷｅｂアプリケーションの文字コードチェックシステムの構成例を示すブロック図である。
【図２】図１におけるＷｅｂアプリケーションの文字コードチェックシステムの本発明に係るＷｅｂアプリケーションの文字コードチェック方法の第１の手順例を示すフローチャートである。
【図３】図１におけるＷｅｂアプリケーションの文字コードチェックシステムの本発明に係るＷｅｂアプリケーションの文字コードチェック方法の第２の手順例を示すフローチャートである。
【図４】図１における文字コードチェック定義ファイルの構成例を示す説明図である。
【図５】図１におけるStruts-config.xmlファイルの構成例を示す説明図である。
【図６】図１におけるvalidation.xmlファイルの構成例を示す説明図である。
【発明を実施するための形態】
【００１８】
以下、図を用いて本発明を実施するための形態例を説明する。図１において、１００はクライアント端末（図中「端末」と記載）、１０１はクライアント端末１００で稼働するＷｅｂブラウザ、１０２はアプリケーションサーバ、１１０はデータベースであり、クライアント端末１００とアプリケーションサーバ１０２は図示していないインターネット等のネットワークで接続されている。
【００１９】
クライアント端末１００およびアプリケーションサーバ１０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や主メモリ、表示装置、入力装置、外部記憶装置等を具備したコンピュータ構成からなり、光ディスク駆動装置等を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、各処理部の機能を実行する。
【００２０】
特に、本例のアプリケーションサーバ１０２は、サーバサイドjava（登録商標）技術を利用したＷｅｂアプリケーションフレームワークにStrutsを使用しており、プログラムされたコンピュータ処理を実行する機能として、Action１０８、業務ロジッククラス１０９、画面表示クラス１１１、ActionServlet（コントローラ）１１２を具備している。
【００２１】
ActionServlet（コントローラ）１１２は、クライアント端末１００のWebブラウザからの要求を受け取ると、リクエストデータをActionForm１０７に格納し、Action１０８を呼び出す。
【００２２】
Action１０８は、ActionForm１０７に格納されたデータを基に業務ロジッククラス１０９を実行し、JSP（Java（登録商標）Server Pages）を呼び出し、データベース１１０に対するアクセス制御を行う。
【００２３】
尚、JSPとは、Java（登録商標）言語を利用してWebサーバで動的にWebページを生成し、クライアントに送信する技術であり、HTMLファイルの中にJava（登録商標）プログラムを埋め込んでおき、クライアントの要求に応じてプログラムを実行し、処理結果のみをクライアントに送信する。送信する処理結果は通常のHTML形式になるため、Webブラウザに特殊な機能を組みこむことなくWebアプリケーションを構築できる。
【００２４】
このような動作を行う本例のアプリケーションサーバ１０２では、サーバサイドjava（登録商標）技術を利用したＷｅｂアプリケーションフレームワークにStrutsを使用した既存のＷｅｂアプリケーションにおける入力チェック処理機能に、文字コードチェックの機能を追加し、従来のＷｅｂアプリケーションフレームワークの入力検証機能による定義を使って文字コードチェック処理を行なう。
【００２５】
特に、本例のアプリケーションサーバ１０２では、文字コードチェック処理を、ActionServlet１１２内で行う事により、複数の項目の文字コードチェックを一度に行なうことが可能となる。
【００２６】
すなわち、ActionServlet１１２は、文字コードチェックプログラム１０３を実行して、文字コードチェック定義ファイル１０４、validation.xml１０５、Struts-config.xml１０６を用いて、本発明に係る文字コードチェック処理を行う。
【００２７】
この際、アプリケーションサーバ１０２では、Ｗｅｂアプリケーションフレームワーク（Strust）が使用する各種定義ファイルであるvalidation.xml１０５、Struts-config.xml１０６における定義情報を活用することにより、フレームワークの入力検証機能の設定と同様な設定で、文字コードチェックを適用する項目を画面のフィールド単位に任意に指定できるようになる。
【００２８】
尚、Struts-config.xml１０６においては、どのActionForm（１０７）にリクエストデータを格納するのか、どのAction（１０８）を呼び出すのか、Actionの実行後、どのJSPを呼び出すのか等が定義されており、validation.xml１０５は、Validatorにおいて、ActionForm（１０８）に格納された値が指定した条件に合致しているか否かを調べ、合致していない場合はエラーを表示する際に用いるルールが定義されている。
【００２９】
このように、本例のアプリケーションサービス１０２においては、ＷｅｂアプリケーションフレームワークにStrutsを使用したＷｅｂアプリケーションに入力される文字コードのチェックを、struts-config.xmlファイルとvalidation.xmlファイルを用いて行うために、コンピュータ装置に、プログラムされたコンピュータ処理を実行する機能として、ActionServlet（１１２）を継承する文字コードチェック処理機能（文字コードチェックプログラム１０３）を設けている。
【００３０】
そして、この文字コードチェックプログラム１０３は、予め文字コードチェック定義ファイル１０４に定義された、文字コードチェックを行う文字コードセットの名称（文字エンコーディング名）と文字コードチェックのルール名を読み出して記憶装置に記憶し、クライアント端末１００からＷｅｂブラウザ１０１を介して入力されたリクエスト要求pathを基にstruts-config.xmlファイル１０６を検索して、当該リクエスト要求pathに対応して予め定義されたform name、validate属性、input pathのそれぞれの値を取得して記憶装置に記憶し、取得したvalidate属性の値がtrueであるか否かを判別して、validate属性値がtrueでなければ、当該リクエスト要求pathのままActionServlet１１２に制御を戻し、validate属性値がtrueであれば、下記の手順を実行して、全てのリクエストデータに対する文字コードチェック処理を行う。
【００３１】
すなわち、文字コードチェックプログラム１０３は、取得したform nameを基にvalidation.xmlファイル１０５を検索して、form nameの値が一致し、かつ、field propertyの値がリクエスト要求の項目名称と一致する予め定義されたフィールドを特定し、特定したフィールドにおけるdepend属性に、取得した文字コードチェックのルール名が予め定義されているか否かを判別し、予め定義されていれば、特定したフィールドに入力される文字が、取得した文字エンコーディング名の文字コードセットに含まれるか否かを判定し、含まれない場合にエラー発生を検出し、エラーメッセージを生成して出力する。
【００３２】
また、文字コードチェックプログラム１０３は、エラー発生を検出した文字を全て、予め文字コードチェック定義ファイル１０４に定義された、読み出した文字エンコーディング名の文字コードセットの範囲に存在する文字に置き換え、validation.xmlファイル１０５において予めarg0 keyで定義されている項目名を用いて、エラーメッセージを生成し、入力されたリクエスト要求pathを、struts-config.xmlファイル１０６に予め定義されたinput pathに変更して、ActionServlet１１２に制御を戻す。
【００３３】
以下、このような、アプリケーションサーバ１０２による、本発明に係る文字コードチェック処理に係る処理動作について具体的に説明する。
【００３４】
アプリケーションサーバ１０２には、サーブレット、JSPなど、サーバサイドJava（登録商標）技術のコンポーネント実行環境と、ＷｅｂアプリケーションフレームワークのStruts実行環境が含まれている。
【００３５】
図１において、クライアント端末１００がＷｅｂブラウザ１０１を使用してデータを送信すると、アプリケーションサーバ１０２のActionServlet１１２を継承する文字コードチェックプログラム１０３に処理が遷移する。
【００３６】
文字コードチェックプログラム１０３では、文字コードチェック定義ファイル１０４、Struts-config.xml１０６、validation.xml１０５を使用して、送信されたデータの文字コードチェックを行ない、ActionForm１０７に格納する。
【００３７】
文字コードチェックの結果が正常でエラーが発生しない場合には、要求されたパスへ制御を渡し、Struts-config.xml１０６において指定されている画面表示クラス１１１によって、ActionFrom１０７の内容を出力し、出力結果をクライアント端末１００のＷｅｂブラウザ１０１に表示する。
【００３８】
文字コードチェックエラーが発生した場合には、Struts-config.xml１０６において定義されているINPUTパスへ制御を渡し、Struts-config.xml１０６において指定されている画面表示クラス１１１によって、エラーメッセージを出力し、出力結果をクライアント端末１００のＷｅｂブラウザ１０１に表示する。
【００３９】
以下、図２および図３を用いて、このような、Ｗｅｂアプリケーションサーバ１０２の、文字コードチェックプログラム１０３による処理動作を説明する。
【００４０】
図２のステップＳ２０１の処理において、文字コードチェックプログラム１０３により、文字コードチェック定義ファイル１０４より、文字コードチェックを行なう文字コードセットの名称（文字エンコーデイング名）を取得する。
【００４１】
ステップＳ２０２の処理では、文字コードチェック定義ファイル１０４より、validation.xml１０５参照時に使用する、文字コードチェックのルール名を取得する。
【００４２】
ステップＳ２０３の処理では、文字コードチェック定義ファイル１０４より、文字コードエラーが発生した場合に文字化けしないで表示させる為に、文字コードエラー発生時に置換する文字を取得する。尚、この置換文字は、文字化けしない文字である必要がある為、ステップＳ２０１の処理で取得した文字コードセットの範囲に存在する文字である必要がある。
【００４３】
ステップＳ２０４の処理では、クライアント端末１００から送信されたリクエスト要求のURLのパス情報を取得し、ステップＳ２０５の処理では、取得したパス情報を基にStruts-config.xml１０６ファイルを検索し、URLパス情報に対応するform name、validate 属性、input 属性、各々の値を取得する。
【００４４】
ステップＳ２０６の処理では、Validate属性がtrueであるか否かを判別し、Validate属性がtrueの場合は、validation.xml１０５の定義による入力検証処理が実装されており、この入力検証の定義を活用して文字コードチェックを行なう為に、図３のステップＳ３０１に分岐し、validate属性がtrue以外の場合には、文字コードチェックは行なわない為、ステップＳ２０７の処理を行い、リクエスト要求pathのままActionServlet１１２に制御を戻す。
【００４５】
図３のステップＳ３０１では、クライアントから送信される項目全ての文字コードチェックを行なう必要がある為、送信データ項目分の繰り返し処理の中で、文字コードチェックを行なう。
【００４６】
ステップＳ３０２では、図２のステップＳ２０５で取得したform nameより、validation.xml１０５に定義されているform nameと一致し、かつ、リクエスト要求の項目名称と一致するfield propertyの値と一致するノードを検索する。
【００４７】
ステップＳ３０３では、validation.xml１０５の該当field  のdepends属性より、ステップＳ２０２で取得した文字コードチェックルールが存在するかを判定する。存在しない場合には、文字コードチェックをしないフィールドである為、何も処理しない。存在する場合には、文字コードチェックを行なう必要のあるフィールドである為、ステップＳ３０４の処理を行なう。
【００４８】
このステップＳ３０４では、文字コードチェックを行なってエラーが発生した場合に、エラーメッセージの一部に項目名称を置換して編集する為、validation.xml１０５の該当fieldに対応する項目名称（arg0 key 属性）を取得する。
【００４９】
そして、ステップＳ３０５では、特定したfieldに入力された文字の１桁目〜n桁目迄の繰り返し処理（ステップＳ３０６〜Ｓ３０７）を行なう。
【００５０】
ステップＳ３０６では、特定したfieldに入力されたデータの１文字分が、図２のステップＳ２０１で取得した文字エンコーディング名の文字セットに含まれるかを判定し、含まれる場合は、次の文字の判定処理を行ない、含まれない場合には、ステップＳ３０７において、図２のステップＳ２０３で取得したエラー発生時の置換文字で置き換える。
【００５１】
特定したfieldに入力された文字の最後まで、文字コードチェックが終了したら、ステップＳ３０８において、置換文字の置き換えが発生したかを判定し、置き換えが発生していた場合は、ステップＳ３０９において、ActionFormに置換された項目を設定する。
【００５２】
また、ステップＳ３１０において、ステップＳ３０４で取得した項目名称を使用して、エラーメッセージの編集を行ない、エラーメッセージをセットする。
【００５３】
そして、文字コードチェック対象field全てをチェックした後、ステップＳ３１１において、文字コードエラーが発生したかどうかを判定する。
【００５４】
文字コードエラーが発生しなかった場合には、図２のステップＳ２０７の処理に分岐し、リクエスト要求pathのまま、ActionServletへ制御を戻す。文字コードエラーが発生した場合には、図２のステップＳ２０８に分岐し、リクエスト要求pathをステップＳ２０５で取得したinput pathに変更し、ActionServletへ制御を戻す。
【００５５】
図４においては、図１における文字コードチェック定義ファイル１０４での定義例の詳細（文字コードチェック定義ファイル４００）を示しており、定義４０１では、図２のステップＳ２０１で取得する文字エンコーディング名を定義する。図４の例では、文字エンコーディング名は、「MS932」であり、文字コードチェック処理の文字コードセットとして使用される。
【００５６】
定義４０２では、図２のステップＳ２０２で取得する文字コードチェックルール名を定義する。図４の例では、文字コードチェックルールは、「charcode」と定義されており、図６においてvalidation.xml６００として詳細を示す図１のvalidation.xml１０５のdepends属性で指定するチェックルールと対応している。
【００５７】
定義４０３では、図２のステップＳ２０３で取得するエラー発生時の置換文字を定義する。図４の例では、置換文字は、「？」と設定されており、図３のステップＳ３０７において、文字コードエラー発生時に、エラー対象の文字は、定義４０３の置換文字（「？」）で置き換えられる。
【００５８】
定義４０４では、図３のステップＳ３１０でエラーメッセージ編集の基となるメッセージを定義する。定義４０４における{0}は、図３のステップＳ３０４の処理で、図６のvalidation.xml６００における定義６０２でのarg0 key で取得した項目名称（「案件名称」）で置き換え、定義４０４における{1}は、図２のステップＳ２０３の処理で、図４の定義４０３から取得した置換文字（「？」）で置き換えて、エラーメッセージを編集する。
【００５９】
図５においては、図１におけるStruts-config.xml１０６での定義例の詳細（Struts-config.xml５００）を示しており、定義５０１では、図２のステップＳ２０４で取得したリクエスト要求のpathと一致するpathが定義されている。リクエスト要求のpathと一致したpathが、当該リクエスト処理に関する情報である。
【００６０】
定義５０２では、図２のステップＳ２０５で取得されるform nameの値が、定義５０３では、図２のステップＳ２０５で取得されるvalidate属性の値が、定義５０４では、図２のステップＳ２０５で取得されるinput pathの値が設定される。
【００６１】
図６においては、図１におけるvalidation.xml１０５での定義例の詳細（validation.xml６００）を示しており、定義６０１では、フィールド名が「ankennm」のdepends属性に、入力チェックを行なうルールが定義されており、最後に文字コードチェック用のルール「charcode」が設定されている為、当該フィールドは、文字コードチェック対象のフィールドという事になる。
【００６２】
定義６０２では、フィールド名に対応する項目名が定義されており（arg0 key）、エラーメッセージの編集に使用される。
【００６３】
この図６におけるvalidation.xml６００の定義は、既存技術のＳｔｒｕｔｓＷｅｂアプリケーションフレームワークの入力検証機能で使用するものと同じものを使用し、文字コードチェック処理だけでなく、他の入力検証の定義と一緒に定義する。
【００６４】
以上、図１〜図６を用いて説明したように、本例では、サーバサイドjava技術を利用したＷｅｂアプリケーションフレームワークにStrutsを使用した既存のＷｅｂアプリケーションにおける入力チェック処理機能に、文字コードチェックの機能を追加し、従来のＷｅｂアプリケーションフレームワークの入力検証機能による定義を使って文字コードチェック処理を行なうことを特徴とする。特に、文字コードチェック処理を、コントローラ（ActionServlet）内で行う事により、複数の項目の文字コードチェックを一度に行なうことが可能となる。また、Ｗｅｂアプリケーションフレームワーク（Struts）が使用する各種定義ファイル（validation.xml、Struts-config.xml）の定義情報を活用することにより、フレームワークの入力検証機能の設定手順と同様な設定で、文字コードチェックを適用する項目を画面のフィールド単位に任意に指定できるようになる。
【００６５】
具体的には図１に示すように、ＷｅｂアプリケーションフレームワークにStrutsを使用したＷｅｂアプリケーションに入力される文字コードのチェックを、struts-config.xmlファイルとvalidation.xmlファイルを用いて行うために、コンピュータ装置に、プログラムされたコンピュータ処理を実行する機能として、ActionServlet（１１２）を継承する文字コードチェック処理機能（文字コードチェックプログラム１０３）を設ける。
【００６６】
そして、この文字コードチェックプログラム１０３において、予め文字コードチェック定義ファイル１０４に定義された、文字コードチェックを行う文字コードセットの名称（文字エンコーディング名）と文字コードチェックのルール名を読み出して記憶装置に記憶し、クライアント端末１００からＷｅｂブラウザ１０１を介して入力されたリクエスト要求pathを基にstruts-config.xmlファイル１０６を検索して、当該リクエスト要求pathに対応して予め定義されたform name、validate属性、input pathのそれぞれの値を取得して記憶装置に記憶し、取得したvalidate属性の値がtrueであるか否かを判別して、validate属性値がtrueでなければ、当該リクエスト要求pathのままActionServlet１１２に制御を戻し、validate属性値がtrueであれば、下記の手順を実行して、全てのリクエストデータに対する文字コードチェック処理を行う。
【００６７】
すなわち、文字コードチェックプログラム１０３は、取得したform nameを基にvalidation.xmlファイル１０５を検索して、form nameの値が一致し、かつ、field propertyの値がリクエスト要求の項目名称と一致する予め定義されたフィールドを特定し、特定したフィールドにおけるdepend属性に、取得した文字コードチェックのルール名が予め定義されているか否かを判別し、予め定義されていれば、特定したフィールドに入力される文字が、取得した文字エンコーディング名の文字コードセットに含まれるか否かを判定し、含まれない場合にエラー発生を検出し、エラーメッセージを生成して出力する。
【００６８】
また、文字コードチェックプログラム１０３は、エラー発生を検出した文字を全て、予め文字コードチェック定義ファイル１０４に定義された、読み出した文字エンコーディング名の文字コードセットの範囲に存在する文字に置き換え、validation.xmlファイル１０５において予めarg0 keyで定義されている項目名を用いて、エラーメッセージを生成し、入力されたリクエスト要求pathを、struts-config.xmlファイル１０６に予め定義されたinput pathに変更して、ActionServlet１１２に制御を戻す。
【００６９】
このようにして、Ｗｅｂアプリケーションフレームワークの入力検証機能の定義をそのまま文字コードチェックの定義に使用できる為、汎用性が高くなる。また、文字コードチェックプログラム１０３は、Ｗｅｂアプリケーションのコントローラ（ActionServlet１１２）で共通的に処理し、画面個別処理には依存しない為、既存のＷｅｂアプリケーションに文字コードチェックプログラムを後から追加する場合には、少ない変更で簡単に追加することができる。
【００７０】
これにより、本例によれば、サーバサイドjava（登録商標）技術を利用し、ＷｅｂアプリケーションフレームワークにStrutsを使用したＷｅｂアプリケーションにおける入力チェック処理を効率的に行うことができる。
【００７１】
尚、本発明は、図１〜図６を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、図１に示す構成では、データベース１１０をアプリケーションサーバ１０２とは別のコンピュータシステムとし構成となっているが、アプリケーションサーバ１０２内にデータベース１１０を設けた構成としても良い。
【００７２】
また、クライアント端末１００とアプリケーションサーバ１０２を接続するネットワークとしてインターネットを例示したが、イントラネットであっても良い。
【００７３】
また、本例のコンピュータ構成例に関しても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【符号の説明】
【００７４】
１００：クライアント端末、１０１：Ｗｅｂブラウザ、１０２：アプリケーションサーバ、１０３：文字コードチェックプログラム、１０４：文字コードチェック定義ファイル、１０５：validation.xmlファイル（Strutsフレームワークの定義ファイル）、１０６：Struts-config.xmlファイル（Strutsフレームワークの定義ファイル）、１０７：ActionForm、１０８：Action、１０９：業務ロジッククラス、１１０：データベース、１１１：画面表示クラス、１１２：ActionServlet（コントローラ）、４００：文字コードチェック定義ファイル、４０１：定義（文字エンコーデイング名の定義例）、４０２：定義（文字コードチェックルールの定義例）、４０３：定義（エラー発生時の置換文字の定義例）、４０４：定義（エラーメッセージの定義例）、５００：Struts-config.xmlファイル、５０１：定義（pathの定義例）、５０２：定義（form nameの定義例）、５０３：定義（validation 属性の定義例）、５０４：定義（input pathの定義例）、６００：validation.xmlフィル、６０１：定義（field名称およびdepends属性の定義例）、６０２：定義（のarg0 key属性の定義例）。
【図１】
2011118524.tif 000003
【図２】
2011118524.tif 000004
【図３】
2011118524.tif 000005
【図４】
2011118524.tif 000006
【図５】
2011118524.tif 000007
【図６】
2011118524.tif 000008