-1

Oracle への接続方法をテストする JSP ページを作成しました。このコードを使用しています。

  String CONN_STRING = "jdbc:oracle:thin:@localhost:1521:orcl";

    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    Connection conn = DriverManager.getConnection(CONN_STRING,
            "UMS", "d0801213177");

Oracle が初期化されている、TNS がそれ以上の接続を拒否している、データベースのパスワードが変更されているなどの事態が発生すると、ページをロードするとエラー レポートが表示されます。接続文字列の合計が表示されます。ユーザーがこのページを使用しているときにこれが発生すると、セキュリティが失われます。

それで、私の質問は「Tomcat フォーム レポート エラーを停止する方法はありますか?」です。より良い方法があれば教えてください。

フォローアップ:準備済みステートメントを使用している場合、テーブル/ビューが存在しないなどのエラーが発生します。これらのタイプのエラーは一般的なものなので、各ブロックを個別の try catch ブロックに配置する必要がありますか?

編集

初心者として、接続文字列、ユーザー名、パスワードも表示されていたため、stackTrace を非表示にするのに苦労していました。

そもそも、このコードを JSP で書くべきではなかったことがわかりました。このタスクを実行するためにサーブレットを使用する方が良いでしょう

4

2 に答える 2

1

errorPagepage指令だと思います。たとえば、これを .jsp ページの上部に配置します。

<%@ page errorPage="ExceptionHandler.jsp" %>

例外が発生すると、ページによって「キャッチ」され、ExceptionHandler.jsp処理できるようになります。

そのExceptionHandler.jspページは次のようになります。

<%@ page isErrorPage="true" import="java.io.*" %>
<html>
<head>
    <title>Exceptional Even Occurred!</title>
    <style>
    body, p { font-family:Tahoma; font-size:10pt; padding-left:30; }
    pre { font-size:8pt; }
    </style>
</head>
    <body>
    <%-- Exception Handler --%>
    <font color="red">
        <%= exception.toString() %><br>
    </font>
    <%
        out.println("<!--");
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        exception.printStackTrace(pw);
        out.print(sw);
        sw.close();
        pw.close();
        out.println("-->");
    %>
    </body>
</html>

...それを可能にします。

詳細については、記事「JSP ページでの例外処理」の詳細と完全な例を確認してください。

于 2013-04-18T11:49:27.447 に答える