Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 如何在Tomcat中停止获取错误报告_Jsp_Tomcat - Fatal编程技术网

Jsp 如何在Tomcat中停止获取错误报告

Jsp 如何在Tomcat中停止获取错误报告,jsp,tomcat,Jsp,Tomcat,我创建了一个JSP页面来测试如何连接到Oracle,我正在使用这段代码 String CONN_STRING = "jdbc:oracle:thin:@localhost:1521:orcl"; try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } C

我创建了一个JSP页面来测试如何连接到Oracle,我正在使用这段代码

  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编写这段代码。使用Servlet来完成这项任务会更好。

JSP为您提供了一个选项,可以为每个JSP指定错误页面。每当页面抛出异常时,JSP容器都会自动调用错误页面

<%@ page language="java"  errorPage="" %>
<html>
<head>
<title>Error Handling by try catch block in JSP</title>
</head>

<body>
<%
try{
     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");
}
catch(Exception e)
{
  e.printStackTrace();
  out.print("Error caught by Catch block is : "+e.getMessage());
}
%>
</body>
</html>

JSP中try-catch块的错误处理

最好在servlet中执行业务逻辑,并使用requestDispatcher将其重定向到jsp。

我认为
页面
指令的
errorPage
。例如,将其放在.jsp页面的顶部:

<%@ page errorPage="ExceptionHandler.jsp" %>
…为了实现这一点


有关更多信息,请查看本文中的详细信息和完整示例:。

因此我需要将整个代码放在另一个try..catch块中?
<%@ 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>