説明

Webアプリケーションの文字コードチェック方法とシステムおよびプログラム

【課題】Webアプリケーションにおける、不正な文字コードの入力チェック処理を高効率化する。
【解決手段】既存のWebアプリケーションにおける入力チェック処理機能に、文字コードチェックの機能を追加し、従来のWebアプリケーションフレームワークの入力検証機能による定義を使って文字コードチェック処理を行なう。特に、文字コードチェック処理を、コントローラ(ActionServlet)内で行う事により、複数の項目の文字コードチェックを一度に行なうことが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバサイドjava(登録商標)技術を利用し、WebアプリケーションフレームワークにStrutsを使用したWebアプリケーションにおける入力チェック処理技術に係り、特に、不正な文字コードの入力チェック処理を効率的に行うのに好適な技術に関するものである。
【背景技術】
【0002】
近年、クライアントOSのバージョンアップに伴い、使用する文字コードセットが変更されるケースが発生し、従来のクライアントでは入力不可能であった文字が、入力可能になっている。
【0003】
一方、Webアプリケーションで使用する文字コードは、システム構築時に確定した条件であり、システム構築後に文字コードセットを変更することは困難である。そのため、クライアントから送信されるデータの文字コードが妥当であるか否かをチェックし、Webアプリケーションで許可されていない文字は登録できない仕組みが必要である。
【0004】
例えば、Windows XP(登録商標)の後に提供されたWindows Vista(登録商標)では「JIS X 0213:2004」の文字コードセットが使用されているのに対し、既存の(Windows XP(登録商標)のWebアプリケーションはshift-jisで構築されており、Windows Vista(登録商標)のPC(パーソナルコンピュータ)から送信されたデータに不正な文字コードが存在する場合には、既存のWebアプリケーションが正常に動作しなくなる場合があるので、文字コードをチェックする機能を追加して、不正な文字コードを防止する必要が生じる。
【0005】
Webアプリケーションに関しては、サーバサイドjava(登録商標)技術を利用したWebアプリケーションの開発を効率的に行なう為、例えば、非特許文献1,2,3に記載のように、MVC(Model、View、Control)モデルに適したフレームワークである「Struts」が多く利用されている。
【0006】
Strutsは、「Jakarta Project」によって開発されている、Java(登録商標) Servlet/JSP(Java(登録商標)Server Pages)技術を用いたWebアプリケーション開発を行う上で有用な、オープンソースフレームワークであり、100%Pure Java(登録商標)で記述されており、このStrutsを使用した環境では、入力データチェックの仕組みがコンポーネントの部品として実装されており、入力データチェック機能に関しても、フレームワークの部品が提供する機能を利用して行なうのが、一般的である。
【0007】
このWebアプリケーションフレームワーク(Struts)の入力検証機能は、例えば、図1に示すアプリケーションサーバ102においては、Action108の開始時に処理しており、この時点では、クライアント端末100のWebブラウズ101から送信されたデータは全て、アプリケーションサーバ102におけるActionForm107に格納されている。
【0008】
しかし、このようなフレームワークの入力検証機能では、1項目単位のエラー検知処理を行っている。そのため、ある項目でエラーが検知されたら、それ以降の項目に関しては、処理せず、コントローラ、すなわち、図1のActionServlet112に制御を戻し、このActionServlet112(コントローラ)から画面表示クラス113を介し、ActionForm107に格納されたデータを基に、クライアント端末100へ送信する。
【0009】
従って、複数の項目で同時に文字コードエラーが発生するようなケースでは、先頭1件目の文字コードエラーは正しく処理できるが、2件目以降の文字コードエラーは検知できず、クライアント端末100のWebブラウザ101から受け取ったデータをそのまま返却するので、エラーデータ2件目以降に、アプリケーションサーバ102で設定されている範囲外の文字コードが送信された場合には、文字化けが発生してしまうという問題がある。
【0010】
尚、例えば、特許文献1においては、Webアプリケーションサーバとは別に設けたコンピュータ装置において、Webアプリケーションサーバから送信されてくる検査情報付きレスポンスやメタ情報付きレスポンスを受信し、そのメタ情報を手がかりとして、仕様書DBの中から検査情報(期待値、検査条件)を取得し、取得した検査情報に基づいて出力項目の検査を実行し、検査情報が、Webアプリケーションの仕様書に記述された期待値である場合、出力項目と期待値が一致するか否かを判断し、合格もしくは不合格を示すメッセージを検査結果として出力する技術が記載されているが、この技術は、サーバサイドjava(登録商標)技術を活用してWebアプリケーションフレームワークにStrutsを使用した環境でコンポーネントの部品として実装されている入力データチェックの仕組みを利用するものではない。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2008−112300号公報
【非特許文献】
【0012】
【非特許文献1】「IT:連載 Strutsを使うWebアプリケーション構築術(1)」、[平成21年11月10日検索]、インターネット<URL:http://www.atmarkit.co.jp/fjava/rensai3/struts01/struts01_1.html>.
【非特許文献2】「Java(登録商標)の道:Struts(17.Validator)」、[平成21年11月10日検索]、インターネット<URL:http://www.javaroad.jp/opensource/js_struts19.htm>.
【非特許文献3】「StrutsによるWebアプリケーション開発」、[平成21年11月10日検索]、インターネット<URL:http://www.infoscience.co.jp/technical/struts/index.html>.
【発明の概要】
【発明が解決しようとする課題】
【0013】
解決しようとする問題点は、従来の技術では、サーバサイドjava(登録商標)技術を活用してWebアプリケーションフレームワークにStrutsが使用された環境においてコンポーネント部品として実装されている入力データチェックの仕組みを、文字コードチェック処理に有効に利用することができない点である。
【0014】
本発明の目的は、これら従来技術の課題を解決し、サーバサイドjava(登録商標)技術を利用し、WebアプリケーションフレームワークにStrutsを使用したWebアプリケーションにおける、不正な文字コードの入力チェック処理を高効率化することである。
【課題を解決するための手段】
【0015】
上記目的を達成するため、本発明では、サーバサイドjava(登録商標)技術を利用したWebアプリケーションフレームワークにStrutsを使用した既存のWebアプリケーションにおける入力チェック処理機能に、文字コードチェックの機能を追加し、従来のWebアプリケーションフレームワークの入力検証機能による定義を使って文字コードチェック処理を行なうことを特徴とする。特に、文字コードチェック処理を、コントローラ(ActionServlet)内で行う事により、複数の項目の文字コードチェックを一度に行なうことが可能となる。また、Webアプリケーションフレームワーク(Strust)が使用する各種定義ファイル(validation.xml、Struts-config.xml)の定義情報を活用することにより、フレームワークの入力検証機能の設定手順と同様な設定で、文字コードチェックを適用する項目を画面のフィールド単位に任意に指定できるようになる。
【発明の効果】
【0016】
本発明によれば、Webアプリケーションフレームワークの入力検証機能の定義をそのまま文字コードチェックの定義に使用できる為、汎用性が高い。また、文字コードチェックプログラムは、Webアプリケーションのコントローラ(ActionServlet)で共通的に処理し、画面個別処理には依存しない為、既存のWebアプリケーションに文字コードチェックプログラムを後から追加する場合には、少ない変更で簡単に追加することができる。
【図面の簡単な説明】
【0017】
【図1】本発明に係るWebアプリケーションの文字コードチェックシステムの構成例を示すブロック図である。
【図2】図1におけるWebアプリケーションの文字コードチェックシステムの本発明に係るWebアプリケーションの文字コードチェック方法の第1の手順例を示すフローチャートである。
【図3】図1におけるWebアプリケーションの文字コードチェックシステムの本発明に係るWebアプリケーションの文字コードチェック方法の第2の手順例を示すフローチャートである。
【図4】図1における文字コードチェック定義ファイルの構成例を示す説明図である。
【図5】図1におけるStruts-config.xmlファイルの構成例を示す説明図である。
【図6】図1におけるvalidation.xmlファイルの構成例を示す説明図である。
【発明を実施するための形態】
【0018】
以下、図を用いて本発明を実施するための形態例を説明する。図1において、100はクライアント端末(図中「端末」と記載)、101はクライアント端末100で稼働するWebブラウザ、102はアプリケーションサーバ、110はデータベースであり、クライアント端末100とアプリケーションサーバ102は図示していないインターネット等のネットワークで接続されている。
【0019】
クライアント端末100およびアプリケーションサーバ102は、CPU(Central Processing Unit)や主メモリ、表示装置、入力装置、外部記憶装置等を具備したコンピュータ構成からなり、光ディスク駆動装置等を介してCD−ROM等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みCPUで処理することにより、各処理部の機能を実行する。
【0020】
特に、本例のアプリケーションサーバ102は、サーバサイドjava(登録商標)技術を利用したWebアプリケーションフレームワークにStrutsを使用しており、プログラムされたコンピュータ処理を実行する機能として、Action108、業務ロジッククラス109、画面表示クラス111、ActionServlet(コントローラ)112を具備している。
【0021】
ActionServlet(コントローラ)112は、クライアント端末100のWebブラウザからの要求を受け取ると、リクエストデータをActionForm107に格納し、Action108を呼び出す。
【0022】
Action108は、ActionForm107に格納されたデータを基に業務ロジッククラス109を実行し、JSP(Java(登録商標)Server Pages)を呼び出し、データベース110に対するアクセス制御を行う。
【0023】
尚、JSPとは、Java(登録商標)言語を利用してWebサーバで動的にWebページを生成し、クライアントに送信する技術であり、HTMLファイルの中にJava(登録商標)プログラムを埋め込んでおき、クライアントの要求に応じてプログラムを実行し、処理結果のみをクライアントに送信する。送信する処理結果は通常のHTML形式になるため、Webブラウザに特殊な機能を組みこむことなくWebアプリケーションを構築できる。
【0024】
このような動作を行う本例のアプリケーションサーバ102では、サーバサイドjava(登録商標)技術を利用したWebアプリケーションフレームワークにStrutsを使用した既存のWebアプリケーションにおける入力チェック処理機能に、文字コードチェックの機能を追加し、従来のWebアプリケーションフレームワークの入力検証機能による定義を使って文字コードチェック処理を行なう。
【0025】
特に、本例のアプリケーションサーバ102では、文字コードチェック処理を、ActionServlet112内で行う事により、複数の項目の文字コードチェックを一度に行なうことが可能となる。
【0026】
すなわち、ActionServlet112は、文字コードチェックプログラム103を実行して、文字コードチェック定義ファイル104、validation.xml105、Struts-config.xml106を用いて、本発明に係る文字コードチェック処理を行う。
【0027】
この際、アプリケーションサーバ102では、Webアプリケーションフレームワーク(Strust)が使用する各種定義ファイルであるvalidation.xml105、Struts-config.xml106における定義情報を活用することにより、フレームワークの入力検証機能の設定と同様な設定で、文字コードチェックを適用する項目を画面のフィールド単位に任意に指定できるようになる。
【0028】
尚、Struts-config.xml106においては、どのActionForm(107)にリクエストデータを格納するのか、どのAction(108)を呼び出すのか、Actionの実行後、どのJSPを呼び出すのか等が定義されており、validation.xml105は、Validatorにおいて、ActionForm(108)に格納された値が指定した条件に合致しているか否かを調べ、合致していない場合はエラーを表示する際に用いるルールが定義されている。
【0029】
このように、本例のアプリケーションサービス102においては、WebアプリケーションフレームワークにStrutsを使用したWebアプリケーションに入力される文字コードのチェックを、struts-config.xmlファイルとvalidation.xmlファイルを用いて行うために、コンピュータ装置に、プログラムされたコンピュータ処理を実行する機能として、ActionServlet(112)を継承する文字コードチェック処理機能(文字コードチェックプログラム103)を設けている。
【0030】
そして、この文字コードチェックプログラム103は、予め文字コードチェック定義ファイル104に定義された、文字コードチェックを行う文字コードセットの名称(文字エンコーディング名)と文字コードチェックのルール名を読み出して記憶装置に記憶し、クライアント端末100からWebブラウザ101を介して入力されたリクエスト要求pathを基にstruts-config.xmlファイル106を検索して、当該リクエスト要求pathに対応して予め定義されたform name、validate属性、input pathのそれぞれの値を取得して記憶装置に記憶し、取得したvalidate属性の値がtrueであるか否かを判別して、validate属性値がtrueでなければ、当該リクエスト要求pathのままActionServlet112に制御を戻し、validate属性値がtrueであれば、下記の手順を実行して、全てのリクエストデータに対する文字コードチェック処理を行う。
【0031】
すなわち、文字コードチェックプログラム103は、取得したform nameを基にvalidation.xmlファイル105を検索して、form nameの値が一致し、かつ、field propertyの値がリクエスト要求の項目名称と一致する予め定義されたフィールドを特定し、特定したフィールドにおけるdepend属性に、取得した文字コードチェックのルール名が予め定義されているか否かを判別し、予め定義されていれば、特定したフィールドに入力される文字が、取得した文字エンコーディング名の文字コードセットに含まれるか否かを判定し、含まれない場合にエラー発生を検出し、エラーメッセージを生成して出力する。
【0032】
また、文字コードチェックプログラム103は、エラー発生を検出した文字を全て、予め文字コードチェック定義ファイル104に定義された、読み出した文字エンコーディング名の文字コードセットの範囲に存在する文字に置き換え、validation.xmlファイル105において予めarg0 keyで定義されている項目名を用いて、エラーメッセージを生成し、入力されたリクエスト要求pathを、struts-config.xmlファイル106に予め定義されたinput pathに変更して、ActionServlet112に制御を戻す。
【0033】
以下、このような、アプリケーションサーバ102による、本発明に係る文字コードチェック処理に係る処理動作について具体的に説明する。
【0034】
アプリケーションサーバ102には、サーブレット、JSPなど、サーバサイドJava(登録商標)技術のコンポーネント実行環境と、WebアプリケーションフレームワークのStruts実行環境が含まれている。
【0035】
図1において、クライアント端末100がWebブラウザ101を使用してデータを送信すると、アプリケーションサーバ102のActionServlet112を継承する文字コードチェックプログラム103に処理が遷移する。
【0036】
文字コードチェックプログラム103では、文字コードチェック定義ファイル104、Struts-config.xml106、validation.xml105を使用して、送信されたデータの文字コードチェックを行ない、ActionForm107に格納する。
【0037】
文字コードチェックの結果が正常でエラーが発生しない場合には、要求されたパスへ制御を渡し、Struts-config.xml106において指定されている画面表示クラス111によって、ActionFrom107の内容を出力し、出力結果をクライアント端末100のWebブラウザ101に表示する。
【0038】
文字コードチェックエラーが発生した場合には、Struts-config.xml106において定義されているINPUTパスへ制御を渡し、Struts-config.xml106において指定されている画面表示クラス111によって、エラーメッセージを出力し、出力結果をクライアント端末100のWebブラウザ101に表示する。
【0039】
以下、図2および図3を用いて、このような、Webアプリケーションサーバ102の、文字コードチェックプログラム103による処理動作を説明する。
【0040】
図2のステップS201の処理において、文字コードチェックプログラム103により、文字コードチェック定義ファイル104より、文字コードチェックを行なう文字コードセットの名称(文字エンコーデイング名)を取得する。
【0041】
ステップS202の処理では、文字コードチェック定義ファイル104より、validation.xml105参照時に使用する、文字コードチェックのルール名を取得する。
【0042】
ステップS203の処理では、文字コードチェック定義ファイル104より、文字コードエラーが発生した場合に文字化けしないで表示させる為に、文字コードエラー発生時に置換する文字を取得する。尚、この置換文字は、文字化けしない文字である必要がある為、ステップS201の処理で取得した文字コードセットの範囲に存在する文字である必要がある。
【0043】
ステップS204の処理では、クライアント端末100から送信されたリクエスト要求のURLのパス情報を取得し、ステップS205の処理では、取得したパス情報を基にStruts-config.xml106ファイルを検索し、URLパス情報に対応するform name、validate 属性、input 属性、各々の値を取得する。
【0044】
ステップS206の処理では、Validate属性がtrueであるか否かを判別し、Validate属性がtrueの場合は、validation.xml105の定義による入力検証処理が実装されており、この入力検証の定義を活用して文字コードチェックを行なう為に、図3のステップS301に分岐し、validate属性がtrue以外の場合には、文字コードチェックは行なわない為、ステップS207の処理を行い、リクエスト要求pathのままActionServlet112に制御を戻す。
【0045】
図3のステップS301では、クライアントから送信される項目全ての文字コードチェックを行なう必要がある為、送信データ項目分の繰り返し処理の中で、文字コードチェックを行なう。
【0046】
ステップS302では、図2のステップS205で取得したform nameより、validation.xml105に定義されているform nameと一致し、かつ、リクエスト要求の項目名称と一致するfield propertyの値と一致するノードを検索する。
【0047】
ステップS303では、validation.xml105の該当field のdepends属性より、ステップS202で取得した文字コードチェックルールが存在するかを判定する。存在しない場合には、文字コードチェックをしないフィールドである為、何も処理しない。存在する場合には、文字コードチェックを行なう必要のあるフィールドである為、ステップS304の処理を行なう。
【0048】
このステップS304では、文字コードチェックを行なってエラーが発生した場合に、エラーメッセージの一部に項目名称を置換して編集する為、validation.xml105の該当fieldに対応する項目名称(arg0 key 属性)を取得する。
【0049】
そして、ステップS305では、特定したfieldに入力された文字の1桁目〜n桁目迄の繰り返し処理(ステップS306〜S307)を行なう。
【0050】
ステップS306では、特定したfieldに入力されたデータの1文字分が、図2のステップS201で取得した文字エンコーディング名の文字セットに含まれるかを判定し、含まれる場合は、次の文字の判定処理を行ない、含まれない場合には、ステップS307において、図2のステップS203で取得したエラー発生時の置換文字で置き換える。
【0051】
特定したfieldに入力された文字の最後まで、文字コードチェックが終了したら、ステップS308において、置換文字の置き換えが発生したかを判定し、置き換えが発生していた場合は、ステップS309において、ActionFormに置換された項目を設定する。
【0052】
また、ステップS310において、ステップS304で取得した項目名称を使用して、エラーメッセージの編集を行ない、エラーメッセージをセットする。
【0053】
そして、文字コードチェック対象field全てをチェックした後、ステップS311において、文字コードエラーが発生したかどうかを判定する。
【0054】
文字コードエラーが発生しなかった場合には、図2のステップS207の処理に分岐し、リクエスト要求pathのまま、ActionServletへ制御を戻す。文字コードエラーが発生した場合には、図2のステップS208に分岐し、リクエスト要求pathをステップS205で取得したinput pathに変更し、ActionServletへ制御を戻す。
【0055】
図4においては、図1における文字コードチェック定義ファイル104での定義例の詳細(文字コードチェック定義ファイル400)を示しており、定義401では、図2のステップS201で取得する文字エンコーディング名を定義する。図4の例では、文字エンコーディング名は、「MS932」であり、文字コードチェック処理の文字コードセットとして使用される。
【0056】
定義402では、図2のステップS202で取得する文字コードチェックルール名を定義する。図4の例では、文字コードチェックルールは、「charcode」と定義されており、図6においてvalidation.xml600として詳細を示す図1のvalidation.xml105のdepends属性で指定するチェックルールと対応している。
【0057】
定義403では、図2のステップS203で取得するエラー発生時の置換文字を定義する。図4の例では、置換文字は、「?」と設定されており、図3のステップS307において、文字コードエラー発生時に、エラー対象の文字は、定義403の置換文字(「?」)で置き換えられる。
【0058】
定義404では、図3のステップS310でエラーメッセージ編集の基となるメッセージを定義する。定義404における{0}は、図3のステップS304の処理で、図6のvalidation.xml600における定義602でのarg0 key で取得した項目名称(「案件名称」)で置き換え、定義404における{1}は、図2のステップS203の処理で、図4の定義403から取得した置換文字(「?」)で置き換えて、エラーメッセージを編集する。
【0059】
図5においては、図1におけるStruts-config.xml106での定義例の詳細(Struts-config.xml500)を示しており、定義501では、図2のステップS204で取得したリクエスト要求のpathと一致するpathが定義されている。リクエスト要求のpathと一致したpathが、当該リクエスト処理に関する情報である。
【0060】
定義502では、図2のステップS205で取得されるform nameの値が、定義503では、図2のステップS205で取得されるvalidate属性の値が、定義504では、図2のステップS205で取得されるinput pathの値が設定される。
【0061】
図6においては、図1におけるvalidation.xml105での定義例の詳細(validation.xml600)を示しており、定義601では、フィールド名が「ankennm」のdepends属性に、入力チェックを行なうルールが定義されており、最後に文字コードチェック用のルール「charcode」が設定されている為、当該フィールドは、文字コードチェック対象のフィールドという事になる。
【0062】
定義602では、フィールド名に対応する項目名が定義されており(arg0 key)、エラーメッセージの編集に使用される。
【0063】
この図6におけるvalidation.xml600の定義は、既存技術のStrutsWebアプリケーションフレームワークの入力検証機能で使用するものと同じものを使用し、文字コードチェック処理だけでなく、他の入力検証の定義と一緒に定義する。
【0064】
以上、図1〜図6を用いて説明したように、本例では、サーバサイドjava技術を利用したWebアプリケーションフレームワークにStrutsを使用した既存のWebアプリケーションにおける入力チェック処理機能に、文字コードチェックの機能を追加し、従来のWebアプリケーションフレームワークの入力検証機能による定義を使って文字コードチェック処理を行なうことを特徴とする。特に、文字コードチェック処理を、コントローラ(ActionServlet)内で行う事により、複数の項目の文字コードチェックを一度に行なうことが可能となる。また、Webアプリケーションフレームワーク(Struts)が使用する各種定義ファイル(validation.xml、Struts-config.xml)の定義情報を活用することにより、フレームワークの入力検証機能の設定手順と同様な設定で、文字コードチェックを適用する項目を画面のフィールド単位に任意に指定できるようになる。
【0065】
具体的には図1に示すように、WebアプリケーションフレームワークにStrutsを使用したWebアプリケーションに入力される文字コードのチェックを、struts-config.xmlファイルとvalidation.xmlファイルを用いて行うために、コンピュータ装置に、プログラムされたコンピュータ処理を実行する機能として、ActionServlet(112)を継承する文字コードチェック処理機能(文字コードチェックプログラム103)を設ける。
【0066】
そして、この文字コードチェックプログラム103において、予め文字コードチェック定義ファイル104に定義された、文字コードチェックを行う文字コードセットの名称(文字エンコーディング名)と文字コードチェックのルール名を読み出して記憶装置に記憶し、クライアント端末100からWebブラウザ101を介して入力されたリクエスト要求pathを基にstruts-config.xmlファイル106を検索して、当該リクエスト要求pathに対応して予め定義されたform name、validate属性、input pathのそれぞれの値を取得して記憶装置に記憶し、取得したvalidate属性の値がtrueであるか否かを判別して、validate属性値がtrueでなければ、当該リクエスト要求pathのままActionServlet112に制御を戻し、validate属性値がtrueであれば、下記の手順を実行して、全てのリクエストデータに対する文字コードチェック処理を行う。
【0067】
すなわち、文字コードチェックプログラム103は、取得したform nameを基にvalidation.xmlファイル105を検索して、form nameの値が一致し、かつ、field propertyの値がリクエスト要求の項目名称と一致する予め定義されたフィールドを特定し、特定したフィールドにおけるdepend属性に、取得した文字コードチェックのルール名が予め定義されているか否かを判別し、予め定義されていれば、特定したフィールドに入力される文字が、取得した文字エンコーディング名の文字コードセットに含まれるか否かを判定し、含まれない場合にエラー発生を検出し、エラーメッセージを生成して出力する。
【0068】
また、文字コードチェックプログラム103は、エラー発生を検出した文字を全て、予め文字コードチェック定義ファイル104に定義された、読み出した文字エンコーディング名の文字コードセットの範囲に存在する文字に置き換え、validation.xmlファイル105において予めarg0 keyで定義されている項目名を用いて、エラーメッセージを生成し、入力されたリクエスト要求pathを、struts-config.xmlファイル106に予め定義されたinput pathに変更して、ActionServlet112に制御を戻す。
【0069】
このようにして、Webアプリケーションフレームワークの入力検証機能の定義をそのまま文字コードチェックの定義に使用できる為、汎用性が高くなる。また、文字コードチェックプログラム103は、Webアプリケーションのコントローラ(ActionServlet112)で共通的に処理し、画面個別処理には依存しない為、既存のWebアプリケーションに文字コードチェックプログラムを後から追加する場合には、少ない変更で簡単に追加することができる。
【0070】
これにより、本例によれば、サーバサイドjava(登録商標)技術を利用し、WebアプリケーションフレームワークにStrutsを使用したWebアプリケーションにおける入力チェック処理を効率的に行うことができる。
【0071】
尚、本発明は、図1〜図6を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、図1に示す構成では、データベース110をアプリケーションサーバ102とは別のコンピュータシステムとし構成となっているが、アプリケーションサーバ102内にデータベース110を設けた構成としても良い。
【0072】
また、クライアント端末100とアプリケーションサーバ102を接続するネットワークとしてインターネットを例示したが、イントラネットであっても良い。
【0073】
また、本例のコンピュータ構成例に関しても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、FD(Flexible Disk)等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【符号の説明】
【0074】
100:クライアント端末、101:Webブラウザ、102:アプリケーションサーバ、103:文字コードチェックプログラム、104:文字コードチェック定義ファイル、105:validation.xmlファイル(Strutsフレームワークの定義ファイル)、106:Struts-config.xmlファイル(Strutsフレームワークの定義ファイル)、107:ActionForm、108:Action、109:業務ロジッククラス、110:データベース、111:画面表示クラス、112:ActionServlet(コントローラ)、400:文字コードチェック定義ファイル、401:定義(文字エンコーデイング名の定義例)、402:定義(文字コードチェックルールの定義例)、403:定義(エラー発生時の置換文字の定義例)、404:定義(エラーメッセージの定義例)、500:Struts-config.xmlファイル、501:定義(pathの定義例)、502:定義(form nameの定義例)、503:定義(validation 属性の定義例)、504:定義(input pathの定義例)、600:validation.xmlフィル、601:定義(field名称およびdepends属性の定義例)、602:定義(のarg0 key属性の定義例)。

【特許請求の範囲】
【請求項1】
WebアプリケーションフレームワークにStrutsを使用したWebアプリケーションに入力される文字コードのチェックを、struts-config.xmlファイルとvalidation.xmlファイルを用いて行うWebアプリケーションの文字コードチェック方法であって、
上記コンピュータ装置は、プログラムされたコンピュータ処理を実行する手段として、
ActionServletを継承する文字コードチェック処理手段を具備し、
該文字コードチェック処理手段は、
予め文字コードチェック定義ファイルに定義された、文字コードチェックを行う文字コードセットの名称(文字エンコーディング名)と文字コードチェックのルール名を読み出して記憶装置に記憶し、
入力されたリクエスト要求pathを基に上記struts-config.xmlファイルを検索して、当該リクエスト要求pathに対応して予め定義されたform name、validate属性、input pathのそれぞれの値を取得して記憶装置に記憶し、
上記取得したvalidate属性の値がtrueであるか否かを判別して、validate属性値がtrueでなければ、当該リクエスト要求pathのまま上記ActionServletに制御を戻し、validate属性値がtrueであれば、下記の手順を実行して、全てのリクエストデータに対する文字コードチェック処理を行う
ことを特徴とするWebアプリケーションの文字コードチェック方法。
<手順>
上記取得したform nameを基に上記validation.xmlファイルを検索して、form nameの値が一致し、かつ、field propertyの値がリクエスト要求の項目名称と一致する予め定義されたフィールドを特定し、
特定したフィールドにおけるdepend属性に、上記取得した文字コードチェックのルール名が予め定義されているか否かを判別し、
予め定義されていれば、特定したフィールドに入力される文字が、上記取得した文字エンコーディング名の文字コードセットに含まれるか否かを判定し、
含まれない場合にエラー発生を検出し、エラーメッセージを生成して出力する
【請求項2】
請求項1に記載のWebアプリケーションの文字コードチェック方法であって、
上記文字コードチェック処理手段は、
上記エラー発生を検出した文字を全て、予め上記文字コードチェック定義ファイルに定義された、上記読み出した文字エンコーディング名の文字コードセットの範囲に存在する文字に置き換え、
上記validation.xmlファイルにおいて予めarg0 keyで定義されている項目名を用いて、上記エラーメッセージを生成し、
上記入力されたリクエスト要求pathを、上記struts-config.xmlファイルに予め定義されたinput pathに変更して、上記ActionServletに制御を戻す
ことを特徴とするWebアプリケーションの文字コードチェック方法。
【請求項3】
WebアプリケーションフレームワークにStrutsを使用したWebアプリケーションに入力される文字コードのチェックを、struts-config.xmlファイルとvalidation.xmlファイルを用いて、プログラムされたコンピュータ処理により行うWebアプリケーションの文字コードチェックシステムであって、
該Webアプリケーションの文字コードチェックシステムは、プログラムされたコンピュータ処理を実行する手段として、ActionServletを継承する文字コードチェック処理手段を具備し、
該文字コードチェック処理手段は、
予め文字コードチェック定義ファイルに定義された、文字コードチェックを行う文字コードセットの名称(文字エンコーディング名)と文字コードチェックのルール名を読み出して記憶装置に記憶する機能と、
入力されたリクエスト要求pathを基に上記struts-config.xmlファイルを検索して、当該リクエスト要求pathに対応して予め定義されたform name、validate属性、input pathのそれぞれの値を取得して記憶装置に記憶する機能、および、
上記取得したvalidate属性の値がtrueであるか否かを判別して、validate属性値がtrueでなければ、当該リクエスト要求pathのまま上記ActionServletに制御を戻し、validate属性値がtrueであれば、下記の手順を実行して、全てのリクエストデータに対する文字コードチェック処理を行う機能を有する
ことを特徴とするWebアプリケーションの文字コードチェックシステム。
<手順>
上記取得したform nameを基に上記validation.xmlファイルを検索して、form nameの値が一致し、かつ、field propertyの値がリクエスト要求の項目名称と一致する予め定義されたフィールドを特定し、
特定したフィールドにおけるdepend属性に、上記取得した文字コードチェックのルール名が予め定義されているか否かを判別し、
予め定義されていれば、特定したフィールドに入力される文字が、上記取得した文字エンコーディング名の文字コードセットに含まれるか否かを判定し、
含まれない場合にエラー発生を検出し、エラーメッセージを生成して出力する
【請求項4】
請求項3に記載のWebアプリケーションの文字コードチェックシステムであって、
上記文字コードチェック処理手段は、
上記エラー発生を検出した文字を全て、予め上記文字コードチェック定義ファイルに定義された、上記読み出した文字エンコーディング名の文字コードセットの範囲に存在する文字に置き換え、
上記validation.xmlファイルにおいて予めarg0 keyで定義されている項目名を用いて、上記エラーメッセージを生成し、
上記入力されたリクエスト要求pathを、上記struts-config.xmlファイルに予め定義されたinput pathに変更して、上記ActionServletに制御を戻す機能を有する
ことを特徴とするWebアプリケーションの文字コードチェックシステム。
【請求項5】
コンピュータに、請求項1もしくは請求項2のいずれかに記載のWebアプリケーションの文字コードチェック方法における文字コードチェック処理手段による各処理を実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate