サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
hyperash.hatenablog.com
1. 問題の概要Tomcatの4.1.29以降の4.1.*系バージョン、ならびに5.0.16以降の5.0.*系バージョンでは、ServletRequestクラスのsetCharacterEncoding()メソッドの挙動が変更されています。POSTリクエストのbodyで渡されるパラメータのコード変換は(これまで通り)行われますが、GETリクエストのクエリーストリングで渡されるパラメータのコード変換は行われないようになりました。以前はメソッドによらず、パラメータのコード変換はsetCharacterEncoding()メソッドで行うことができたので、Tomcat 4.1.29/5.0.16以前のバージョンに慣れていると、思わぬ落とし穴にはまります。 2. 経緯SunのServlet仕様のAPIドキュメントで、ServletRequest#setCharacterEncoding()メソッドの
via オレンジニュース StringBuilder と += による文字列連結の速度比較 @ Landscape - エンジニアのメモ 同じ事をJavaで試してみました。 環境は、 CPU : Pentium 4 1.70GHz RAM : 1024MB JVM : J2RE 1.5.0(ヒープサイズはデフォルト) +=演算子による連結、String#concat()メソッドによる連結(あまり一般的ではないと思いますが・・・)、定石のStringBufferクラス、さらにJ2SE 5.0で加わったStringBuilderクラスも試してみました。 ソースはこれ。J2SE 5.0以降対応です。5.0の新しいSystem.nanoTime()はこういうベンチマークで便利なんですが、DateFormat等で整形できないのがなんとも・・・。 public class StringConcaten
いやあ、びっくりしました。JavaMailを使ってSMTPやPOP3のサーバーとやりとりする時、通信タイムアウトのデフォルト値って''無限大''なんですね。サーバーがこけていたりすると、JavaMailの通信処理の中でブロックされてしまって、帰ってこなくなります。 各Providerに以下のようなプロパティがありますので、適切に設定しておいた方が良いです。 mail.smtp.conectiontimeout mail.smtp.timeout mail.imap.conectiontimeout mail.imap.timeout mail.pop.connectiontimeout mail.pop.timeout このあたりの情報が参考になりました。 connectiontimeout はシンプルなケースでは new Socket() が復帰するまでの時間の指定です。 mail.sm
初回アクセス時になどで生成されるURLに"jsessionid="が付加されてしまう問題ですが、一応解決しました。Strutsのタグのクラスを継承して独自タグを作りました。URL文字列をコンテキストに出力する部分をオーバーライドし、String#replaceAll(";jsessionid=.*(\\?|$)", "")しています。うーん、ad-hocだ。 色々調べた結果、javax.servlet.HttpServletResponse#encodeURL()が諸悪の根元のようです。このメソッドの中でCookieの有無を調べ、存在しない場合はURLにセッションIDを付加するという処理が行われています。 結局、「Cookieが送られてこなかったら、そのリクエストに対するレスポンスコンテンツに含まれるリンクにはセッションIDを付加することでセッションを維持しよう」というJava Servl
このページを最初にブックマークしてみませんか?
『H.L.B. /* hyper@shのLog Book */』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く