Java

HttpServletRequest#getPathTranslated() の値がnullになる

web.xmlに設定するサーブレットマッピングによっては拡張パスを含むリクエストの情報が取れないらしい strutsのように「*.do」などを設定すると軒並みnullが返ってくるのはどうにかならないのかなぁ? /servlet/sample.do へリクエスト url-pattern *.do ser…

OutputStream#write(int) が遅い

Servletのファイルダウンロード処理にOutputStream#write(int)を使っていたんですが、コレが非常に遅くて困った ServletOutputStream outputStream = response.getOutputStream(); int int outputData = 0; while ((outputData = inputStream.read()) != -1)…

Eclipse の CVSリポジトリ・エクスプローラー でブランチ・バージョンごとに比較でヒストリーが見れない

非常に便利なのであるが、ここでヒストリー表示が見れればなおよかった… コミット時のコメントだけ抜いてくるようなことできないんだろうか??? ヒストリーを表示がほしい 参照 http://www.eclipsewiki.net/eclipse/index.php?CVS%A4%CE%CD%F8%CD%D1

ファイルダウンロード処理において、レスポンスヘッダー Content-Disposition に attachment; filename= に日本語を設定すると文字化けする

いろいろと回避方法があるようだが Safariに関してはこの方法では文字化けは不可避らしい… う〜ん困った… 回避方法 ブラウザ 対応 IE6,7,8 URLエンコーディングで回避できる(java.net.URLEncoder#encode() を使用する) FireFox3.5 MIME-Bエンコーディング…

Javaの列挙型(Enum)のequalsと==とtoString

恥ずかしながらすぐに忘れる… static enum Number{ ONE, TWO, THREE } public static void main(String args[]) { System.out.println("ONE equals Number.ONE is " + "ONE".equals(Number.ONE)); System.out.println("ONE equals Number.ONE.toString() is …

ファイル名として不正な文字を任意の文字に置換

とりあえずWindowsの場合ということで… String src = "abc_ABC_あいう_亜伊卯_アイウ_123_123_\\_/_:_*_?_\"_<_>_.txt"; // [/, *, ?, ", <, >, \] にマッチ Pattern illegalFileNamePattern = Pattern.compile("[(\\|/|:|\\*|?|\"|<|>|\\\\|)]"); String fi</_>…

ASCII文字以外を任意の文字に置換

Javaの正規表現で POSIX 文字クラスってのがあるんですね便利!^^ String src = "abc_ABC_あいう_亜伊卯_アイウ_123_123" // \p{ASCII} でASCII文字とマッチ、[^]で囲んでnot Pattern pattern = Pattern.compile("[^\\p{ASCII}]"); String dst = patter…

グレゴリオ暦開始は日本時間のAM09:00から

ロケールが日本であった場合 Date changeDay = (new GregorianCalendar()).getGregorianChange(); System.out.println("Gregorian Change is " + changDay); 実行結果 Gregorian Change is Fri Oct 15 09:00:00 JST 1582 コンストラクタ GregorianCalendar(i…

文字コードに含まれない文字を String#getBytes() すると強制的に「3F(半角はてな[?])」に置き換わる

「郄(ハシゴ高)」(UTF-8に存在するが、Shift_JISに存在しない文字) byte[] utf8 = "郄".getBytes("UTF-8"); // E9AB99 byte[] shiftjis = "郄".getBytes("Shift_JIS"); // 3F -> ? System.out.println("getBytes(UTF-8):" + bytesToHexString(utf8)); Sy…

net.arnx.jsonic.JSON#convert() 内の Method#getGenericParameterTypes() メソッド

JSONIC v1.0.3 にてJSON#convert() メソッド内で Method#getGenericParameterTypes() メソッドを使用してるのはイイのだろうか?メソッドがオーバーライドされた場合、invokeで実行される順番が保証されないような気がするんですが?最新バージョンは大丈夫…

Javaでファイルコピー

FileChannel#transferTo() java.nio.channels.FileChannel#transferTo() メソッドなんてのがあるんですねこりゃラクだ〜♪ /** * コピー元のパス[srcPath]から、コピー先のパス[destPath]へ * ファイルのコピーを行います。 * コピー処理にはFileChannel#tran…

16進数表記文字列(00 ~ FF)*をbyte配列に変換

/** * 16進数表記文字列(00 ~ FF)*をbyte配列に変換する * * @param hexStr * 16進数表記文字列(00 ~ FF) * @return byte配列 */ public static byte[] hexStringToBytes(String hexStr) { if (hexStr.length() % 2 != 0) { throw new IllegalArgumentExcept…

byte(-128 ~ 127)の配列を16進数表記(00 ~ FF)に変換

/** * byte(-128 ~ 127)の配列を16進数表記(00 ~ FF)に変換する。 * * @param bytes * byte(-128 ~ 127)の配列 * @return 16進数表記(00 ~ FF) */ public static String bytesToHexString(byte[] bytes) { String[] hexChar = new String[] { "0", "1", "2",…