投稿

ラベル(JAVA)が付いた投稿を表示しています

Eclipseで『Java heap space』と出て処理が止まるときの対処法

Eclipseで『Java heap space』と出て、SVN(Subversion)などの処理が止まるときにはEclipseのJavaVMに割り当てられているヒープメモリが不足しています。 この場合はJavaVMのヒープメモリの最大値を変更する必要があります。 起動コマンドで指定する方法 起動コマンドにJavaVMへの引数オプションを追加します。 -vmargs -Xmx1024M ショートカットなどだと C:\eclipse.exe -vmargs -Xmx1024M eclipse.iniに記述する方法 eclipse.iniに次のものを追記します。 -vmargs -Xmx1024M 引数の説明 -vmargs これ以降に書かれるものはJavaVMへの引数として渡されます。 このため最大値の指定などは、この指定以降に書きます。 -Xmx1024M ヒープメモリ領域の最大値 この場合、1024MB = 1GB 最大値なので、この値全てが常に確保されるわけではありません。 ヒープメモリ領域の最小値は -Xms40M のようにして渡します。

ActionFormのresetメソッド

ActionFormはstruts設定ファイルの中で設定したスコープに登録されます。したがって session に登録された場合には、同一セッション中の同じHTMLフォームにおいては同じActionFormインスタンスが使用される事になります。またHTMLフォームの内、チェックボックスは選択されていない状態でパラメータが送信されません。したがって以下のような不具合が発生してしまいます。 (※ scope=request であれば問題ない) あるHTMLフォームのチェックボックスを選択し、HTTPリクエストをサーバへ送る。 チェックボックスに該当するActionFormのプロパティ(boolean型)にtrueが設定される。 再び1と同じHTMLフォームにおいて、今度はチェックボックスの選択を外して、HTTPリクエストをサーバへ送る。 ActionFormはセッションに登録されているため、2と同じインスタンスが使用される。またチェックボックスに該当するパラメータは送信されないため、該当するプロパティのsetterメソッドは呼ばれず、2で設定した値(true)がそのまま残る。 チェックボックスを使用する場合には上記のような不具合が生じるため、ActionFormにはプロパティを初期化するためのメソッド「reset」が用意されています。resetメソッドはHTTPリクエストからパラメータ値を読み取って設定する前に必ず呼ばれるものです。ActionFormで何らかの初期化をそのタイミングで行いたい場合には、resetメソッドをオーバーライドします。以下はその例です。メソッドの引数ActionMappingとHttpServletRequestは、Actionクラスのexecuteメソッドの引数と同じものです。 public class ProductForm extends ActionForm{   private boolean discount;   ...   public void reset(ActionMapping mapping, HttpServletRequest request){     discount=false;  ...

タグ のfileterについて

<bean:write>タグは、プロパティの出力時にHTMLエンコード処理を実行して、HTML特殊文字をエスケープさせます。 filter=trueの場合は、エスケープされた状態で出力されます。省略時はtrueです。 Strutsを使ってサニタイジングをした文字列を画面に表示したい場合、 bean:writeタグのfilter属性をfalseにする。 エスケープ文字一覧 HTML 特殊文字 エスケープ後 < &lt; > &gt; " &amp; & &quot; \ &#39;

SJC-WC 

5章 ≪web.xmlのセキュリティ設定≫ <web-app>  ├<security-role>  ││ web.xmlで使用するロールを定義。コンテナ固有の設定によって予め定義されてる  ││ 必要がある。Tomcatの場合「conf/tomcat-users.xml」でロール名を定義しておく。  │└<role-name>  └<security-constraint>   ├<display-name>   │ ツールなどで表示する際の名前   ├<web-resource-collection>   │ セキュリティ対象となるリソースの集合を定義   │ ├<web-resource-name>リソース範囲の名前   │ ├<description>説明   │ ├<url-pattern>リソース範囲を表すURLパターン   │ └<http-method>GETやPOSTなどのリクエストメソッド   ├<auth-constraint>   │ セキュリティ制約の対象となるロールを指定   │ ├<description>説明   │ └<role-name>対象となるロール   └<user-data-constraint>     クライアントとコンテナ間のデータ通信の保護法方     ├<description>説明     └<transport-guarantee>       クライアントとコンテナ間のデータ通信がどのように保護されるかを指定        NONE:なし        INTEGRAL:データの完全性   <login-config><auth-method>CLIENT-CERT の時に指定        CONFIDENTIAL:データの機密性 <login-config><auth-method>CLIENT-CERT の時に指定      ≪認証タイプの設定≫ <login-config>   ...

SJC-WC 『1章HTTPとサーブレット』

≪HTTP≫ HTTPリクエスト:クライアント⇒サーバ HTTPレスポンス:サーバ⇒クライアント HTTPリクエストの構造 [リクエストライン]サーバに要求する処理の種類 [リクエストヘッダー]クライントに関する情報 [メッセージボディ]POSTメソッドの場合に送信される。HTMLのformとか HTTPレスポンスの構造 [ステータスライン]リクエストの結果 [レスポンスヘッダー]サーバに関する情報 [メッセージボディ]クライアントに返送するデータ WEBアプリケーションの誕生と変遷 初期:HTTPによる静的なコンテンツの配信 1次:CGIによる動的コンテンツが可能に(Perl)(マルチプロセス=処理が遅くなる) 2次:webアプリ専用の言語の誕生(Javaサーブレット、ASP、PHP) 3次:さらなる発展(J2EE、ASP.NET) ≪サーブレット≫ サーブレットコンテナ = サーブレットの実行環境 = RI (RI:JAVAの仕様規約であるJSR-154の具体的な実装。Tomcatとか) javax.servlet    <interface>           <interface>   ServletRequest      ServletResponse △           △ |           | javax.servlet   <interface>            <interface> HttpServletRequest    HttpServletResponse     △           △ |           |   [実装クラス]      [実装クラス] ServletRequest String getContentType():コンテントタイプを取得する Locale getLocale() :Accept-Languageヘッダーに記述されたロケール情報を取得する Enumeration getL...