JavascriptでF5を無効にする

動作したブラウザ

動作しなかったブラウザ

Javascriptソース

<SCRIPT language="JavaScript">
<!--
window.document.onkeydown = function (e)
{
  if (e != undefined)
  {
    if (e.keyCode == 116)
    {
      e.stopPropagation();
      e.preventDefault();
      e.keyCode = null;
      return false;
    }
  }
  else
  {
    if (event.keyCode == 116)
    {
      event.keyCode = null;
      return false;
    }
  }
}
-->
</SCRIPT>

文字コードデバッグのサンプル

即席で文字コードを確認したいときに。

public class Unicode {

  public static void main(String[] args) {

    // 文字「あ」です。
    char c = 'あ';
    
    // 文字に対応するUnicodeコードを取得します。
    int code = (int)c;
    
    // 文字コードを表示します。
    System.out.println(code);

    // 文字コードを16進数で表示します。
    System.out.println(Integer.toHexString(code));
    
  }

}

JDBC接続テストのサンプル

即席でJDBC接続テストをしたいときに。

package com.axissoft.itn.sdc.bp.dbtest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DbConnectTest {

    public static void main(String[] args) {

        try {

            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:xxxxx", "user_id", "password");

            //ステートメントを作成
            Statement stmt = conn.createStatement();

            //問合せの実行
            ResultSet rset = stmt.executeQuery("SQL文");

            //問合せ結果の表示
            while ( rset.next() ) {
                System.out.println(rset.getString("取り出すカラム名"));
            }

            //結果セットをクローズ
            rset.close();

            //ステートメントをクローズ
            stmt.close();

            //接続をクローズ
            conn.close();

        } catch (ClassNotFoundException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        }
    }
}

これを忘れてハマった

HOT deployは、各開発者が個人のPCでテストするときに使うことを想定しています。そのため、リクエストを複数同時に処理することはできません。複数の開発者で使うときは、HOT deployは使わないようにしてください。

http://s2container.seasar.org/2.4/ja/DIContainer.html#SMARTdeploy

HTTPリクエストを投げるプログラムでうっかりこれにハマってしまった。

開発時はリクエスト先の外部サーバがあったから問題なかったけど、外部サーバが死んだから自分自身にリクエストを投げるようにした。
けど、これが

リクエストを複数同時に処理することはできません。

に抵触したようだ。

とりあえずプロジェクトをコピってHTTPリクエストを受け取る用のプロジェクトを別に立ち上げて対応してみた。