Strutsで注意したいシリアライズについて。 Sessionに入れたオブジェクトはメモリからディスクに書き出される可能性がある。StrutsならばActionFormを継承して作ったクラスが該当する。よって、Serializableをimplementsしたほうがよい。 参考:ユーファームさんのコーディングの落とし穴 ActionFormのシリアライズ ActionFormはJavaBeanですので、 サブクラスもJavaBean仕様を満たすようにSerializableを実装すべきです。 (Struts1.2 ActionFormより) JavaのAPIではこんな感じ。 しかし、デフォルトの serialVersionUID の計算は、 クラスの詳細情報に大きく左右され、このクラスの詳細情報はさらに、 コンパイラの実装状況に依存しているので、 直列化復元時に予期しない InvalidC
情報が少ないStruts2.1 現在、当たり前のようにシステム開発で利用されているSpringFrameworkやHibernateなどのオープンソース・フレームワーク。それらオープンソース・フレームワークの先駆けとなったStrutsは、クレイグ・マクナラハンがビーチサイドで原案を書き上げ、バージョン1.0として公開されてから、今年で早くも10年が経とうとしています。そして約10年を経てもなお、Strutsは開発者からの衰えない人気を保っています。 しかし、国内でのStruts人気は、最初に発表されたStrutsの系譜を引き継ぐバージョン番号に1を冠するStruts1系に対するものであり、WebWork2と合体したバージョン番号に2を冠するStruts2系の人気は今ひとつないように思えます。最近では、Struts2系の最新バージョン2.1.6も発表され、Struts1系よりも随分と簡単に便
エラーメッセージにヘッダーやフッターを使用するには、メッセージリソースに設定します。 メッセージリソース抜粋 #####入力チェックエラーメッセージ##### errors.required = {0}は必須入力です。 errors.invalid = {0}を正しく入力してください。 #####入力チェックエラーメッセージ共通##### errors.header = <B>***入力エラーメッセージ***</B><br> errors.footer = <B>****************</B><br> errors.prefix = ● errors.suffix = <br> ヘッダーやフッターをエラーメッセージに付けたい場合は、以下のメッセージkeyに固定で指定します。 <html:errors>タグで、エラーメッセージが出力されるタイミングで設定されたメッセージが出力されま
2003/6/19 作成 2003/8/8 更新 Action、validateのスイッチ 最近、ちょっと悩んだことで。同じHTMLフォームに対して、複数のActionがあるとき、Actionによって、入力チェックも異なる場合があります。例えば、管理系の画面で、同じFormでも登録と更新によって、Actionが違うし、入力チェックも違います。思いつくもの、人に聞いた方法として、以下の方法があります。 (A) JavaScriptでActionを書き換える (B) スイッチ用のActionを読んでActionの中で処理を分ける (C) ActionForm#validate内で、状況に応じた入力チェックを書く (A)JavaScriptでActionを書き換える Submit用のボタンを押したときに、Formのactionパスを書き換える方法です。 <html:form action="/a
JavaでWebアプリケーションを開発するのに便利なフレームワーク「Struts」を利用した Webアプリケーション開発手順をここに記します。 ※開発環境などはあらかじめインストールされていることを前提としています。 また、Strutsのバージョンは1.1を想定しています。 今回作ってみるWEBアプリの概要 ログイン画面(login.jsp)でIDとPasswordを入力し、 認証失敗ならエラーページ(loginError.jsp)へ飛び、 認証がOKならログイン成功画面(loginSuccess.jsp)へ進む。 次のページ(nextPage.jsp)には次のページ(nextPage.jsp)へ再度アクセスするボタンがついており、 そのボタンを押すと セッションが切れない限り 次のページ(nextPage.jsp)を読み込む。 セッションが切れている場合はエラーページ(loginErro
HTTPを使用したWebアプリケーションにおいて、安全なセッション管理を行うことは難しい問題である。タブブラウザによる画面の複数起動や、Webブラウザの戻るボタン/更新ボタンの押下といった、予期しない画面遷移に起因するバグの発生に頭を悩ませることは多いだろう。 大きな問題が発生しないならば、画面遷移の仕様上の制限をクライアントに許容してもらう選択肢もあるだろうが、不正な画面遷移を利用したセキュリティホールが存在するならば、放置しておいてよい問題ではなくなる。今回はセッション管理を安全に行うための基本的な注意点について解説していこう。 セッション固定攻撃とは何か セッション固定攻撃(Session Fixation)という脆弱性を耳にしたことはあるだろうか。脆弱性そのものの詳しい解説は本稿の趣旨ではないため割愛するが、簡潔に説明すると、以下のような手順を踏むことによりセッション情報がハイジャ
はじめに Struts Webアプリケーションフレームワークが最初にリリースされてから10年近くが経ち、Strutsを利用して開発されたアプリケーションの数は数千に達します。Strutsは、当時から現在に至るまで、JavaベースのWebアプリケーションを作成するうえで最も人気の高いフレームワークです。Strutsにも欠点がないわけではありませんが、信頼性に優れ保守しやすいWebベースソフトウェアの構築を簡単に行うことができます。現在、Strutsを使用するアプリケーションの数は、競合する他のすべてのWebフレームワークを使用するアプリケーションを合わせた数の2倍はあるでしょう。JSF(JavaServer Faces)など、Strutsの後に登場した多くのフレームワークがStrutsの概念の多くをそのまま利用していることは、Strutsに対する賛辞に他なりません。 とはいえ、Strutsは
明細行のチェックボックスで、選択した状態で画面再表示時にチェックを外した場合、再度画面を表示すると外したはずのチェックが戻ってしまいます。 現象 1.下記「作成したJSP」のチェックボックスを選択し、サーバへ送る。 2.「ViewList」内のチェックボックス「testCheckBox」(boolean型)にtrueが設定される。 ※ViewListはtestActionFormのList型で、javaでもIteratorで1件づつtestActionFormを取得し、「testCheckBox」を確認している 3.上記1と同じHTMLフォームにおいて、今度はチェックボックスの選択を外して、サーバへ送る。 4.チェックを外したにも関わらず、trueの状態になってしまう。 良い対処方法があれば、ご教授をお願いします ※他のホームページで、ActionFormに下記メソッドを記述すると、チェッ
はじめに JSF(Java Server Faces)、Flex、Curlなど昨今のWebアプリケーションはリッチで、生産性の高いUIに注目が集まっています。本稿では、実績のあるStrutsのtaglibを拡張したStruts-Layoutで簡単にリッチなUIを作成する方法をご紹介します。 必要な環境 このサンプルはJ2SE Development Kit 5.0 Update 4、Tomcat5.5.9、Struts-Layout1.1にて動作確認をしています。また、WebフレームワークのStruts1.2.7を使用していますが、サンプルソースに内包しているためJ2SDKとサーブレットコンテナ以外の環境は必要ありません。 環境についての詳細や設定方法については、「サーバサイド技術の学び舎 - WINGS」にある「サーバサイド環境構築設定」を参照してください。Struts-Layoutの概
Program Island へようこそ! このサイトでは、プログラムに関する様々な情報を載せています。 Android (2010/12/25) Limy Eclipse Plugin (2012/02/25) Check! Ruby on Rails (2009/04/01) Limyweb (2010/01/27) Limy Articles (2009/02/14) Eclipse簡易マニュアル (2008/12/23) / Eclipseプラグイン開発 (2008/12/23) Java (2012/03/10) New! Tomcat (2007/06/29) Linux (2010/04/14) Git (2012/02/26) New! / Subversion (2007/01/11) J2EE , JBoss (2007/01/13) / JBoss + EJB3 (2
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く