2012-03-12 2 views
0

私はstruts 1.2を使用しています。リクエストパラメータとデータベースに呼び出されたアクションを入力したいと思います。そのコードを通過している他のリクエストは、リクエストパラメータのようなリクエストデータを入力するのはいいですか、customRequestProcessorからログインしたユーザID?アプリケーションのパフォーマンスが低下するのはなぜですか?リクエストプロセッサインスタンスが1つしかないので、すべての要求がデータベースにデータを挿入するため、すべての要求のパフォーマンスが低下しますか?データベース内のリクエストパラメータを挿入するカスタムリクエストプロセッサ

答えて

0

ストラットの使用を選択したとき、その決定の基準には、Webフレームワークが含まれていて、フォームや検証などを簡単に作成できるはずです。 StrutsクラスActionを拡張するときは、doExecuteメソッドをオーバーライドしますが、引き続きパラメータからHttpServletRequestにアクセスできます。そのメソッド内で、これらのデータをすべてデータベースに挿入できます。私はこれを簡単に行うことができ、あなたのデザインは標準デザインに忠実であると思います。

上記の手順は、新しいcustomRequestProcessorを作成するよりはるかに簡単だと思います。あなたの状況では、新しいリクエスト・プロセッサーを作成する具体的な理由はありません。

一方、のパフォーマンスについて懸念がある場合は、要件に応じてストラットをまったく使用しないでください。私のポイントは、Tomcat(または他のサーブレットコンテナ)のみを使用し、HttpServletを拡張してdoPost()メソッド内で単純なサーブレットを作成し、HttpServletRequestにアクセスしてデータベースに書き込むことです。 customRequestProcessorとこの単純なサーブレットのパフォーマンスを測定したい場合は、単純なサーブレットの方がずっと高速です。

+0

こんにちはJasonさん、お客様のプロセッサの動作は遅くなりますが、サーブレットは速く動作するのはなぜですか?私はすでにStruts 1.2で実稼働していますので、この機能をStruts 1.2に追加したいと思います。パフォーマンスに影響を与えないような解決策を見つけようとしています。 – hirentshah

+0

のお客様ですか?サーブレット・コンテナからロードするライブラリ(jar)を増やすと、起動に時間がかかるだけでなく、より多くのメモリー(ヒープ)が必要になります。リクエストが来たらサーブレットの呼び出しはcustomRequestProcessor拡張したActionクラスに渡します。それではまた、私は時間差はおそらくms以下では重要ではないと思う。しかし、**多くのhttpリクエスト**でテストを実行して経験的に比較するのに少し時間を費やすことをお勧めします。 – Jasonw

+0

すでにstruts 1.2で実装しているので、カスタムリクエストプロセッサでRequestProcessorを拡張し、いくつかのスーパーメソッドをオーバーライドします。これは、アクションの実行方法とフォームの検証方法を変更したいからです。その実装は具体的であり、依然としてデフォルトのリクエスト・プロセッサーを使用したいと考えています。それが私たちの背後にある理由でした。 – Jasonw

関連する問題