jsp异常处理
来源:互联网 发布:马尔可夫链算法 编辑:程序博客网 时间:2024/05/24 02:02
web开发中异常信息是很重的信息,对开发人员是其相当重要的,对这些异常信息进行转换为用户能理解的信息就更重要了~
在单纯的JSP开发中,处理异常信息一般使用web.xml来定义。
01
<error-page>
02
<error-code>
400
</error-code>
03
<location>/
400
.html</location>
04
</error-page>
05
06
<error-page>
07
<error-code>
404
</error-code>
08
<location>/
404
.html</location>
09
</error-page>
10
11
<error-page>
12
<error-code>
500
</error-code>
13
<location>/error.jsp</location>
14
</error-page>
这是很简单的!
如果现在想在页面中设置一个隐藏div来供开发人员查看异常信息呢?
整理下网站说的一些方法:
最常说的:
01
<%
@page
contentType=
"text/html;charset=Big5"
isErrorPage=
"true"
%>
02
<html>
03
<head><title>出现错误</title></head>
04
<body>
05
<H1>错误:</H1><%=exception%>
06
<H2>错误内容:</H2>
07
<%
08
exception.printStackTrace(response.getWriter());
09
%>
10
</body>
11
</html>
因为这个页面调用了exception内置对象,所以isErrorPage必须为true。
这个是能打印出异常信息的,但是放入了response中,页面从头就开始打印异常信息,用户不明白异常信息~影响用户使用。
另一种常见方法:
不仅可以使用jsp内置exception对象来取得异常,也可以取得request中的attribute
1
<%
@page
contentType=
"text/html;charset=Big5"
isErrorPage=
"true"
%>
2
<html>
3
<head><title>错误信息</title></head>
4
<body>
5
错误码: <%=request.getAttribute(
"javax.servlet.error.status_code"
)%> <br>
6
信息: <%=request.getAttribute(
"javax.servlet.error.message"
)%> <br>
7
异常: <%=request.getAttribute(
"javax.servlet.error.exception_type"
)%> <br>
8
</body>
9
</html>
同理的还有
<%= exception.getMessage()%>
<%=exception%>
<c:out value="${requestScope['javax.servlet.error.message']}"/>
这个也可能打印异常信息,但有时只会打印出一个null.没有任何有价值信息。
-----------------------
还有一个特殊情况:
Error Page在IE下不能转发的问题
这是IE自身的设定导致的,经过百度,找到几个解决办法:
1, IE设定 工具-->Internet选项-->高级--->显示http友好错误信息(取消选择) , 这样就可以了
2, 设置指定错误页页状态为正常,来告诉IE这不是一个服务器错误, 从而不显示IE的自定义错误页
<%
response.setStatus(200); // 200 = HttpServletResponse.SC_OK
%>
3, 把错误页做大一点,弄个几百K 就可以显示错误页面 (加一个div块,display设为none就可以了),这个问题比较奇怪.
这个问题我还没有遇到过~先记录在这儿吧~~
现在能符合要求的处理方法是:
01
<%@ page language=
"java"
contentType=
"text/html; charset=GB18030"
02
pageEncoding=
"GB18030"
%>
03
<%@ taglib uri=
"http://java.sun.com/jsp/jstl/core"
prefix=
"c"
%>
04
<%@ page isErrorPage=
"true"
%>
//一定要写,不能显示错误
05
<%
06
response.setStatus(HttpServletResponse.SC_OK);
//这句也一定要写,不然IE不会跳转到该页面
07
String path=request.getContextPath();
08
%>
09
<!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
10
<html>
11
<head>
12
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=GB18030"
>
13
<title>Insert title here</title>
14
</head>
15
<body>
16
500
error
17
<div>系统执行发生错误,信息描述如下:</div>
18
<div>错误状态代码是:${pageContext.errorData.statusCode}</div>
19
<div>错误发生页面是:${pageContext.errorData.requestURI}</div>
20
<div>错误信息:${pageContext.exception}</div>
21
<div>
22
错误堆栈信息:<br/>
23
<c:forEach var=
"trace"
items=
"${pageContext.exception.stackTrace}"
>
24
<p>${trace}</p>
25
</c:forEach>
26
</div>
27
</body>
28
</html>
- jsp下载异常处理
- JSP--异常处理
- JSP异常处理
- JSP异常处理
- jsp异常处理
- JSP异常处理
- JSP处理乱码异常
- JSP 异常处理
- JSP 异常处理
- JSP中的异常处理
- JSP中的异常处理
- 05. JSP 异常处理
- 【JSP】页面的异常处理
- JSP页面的异常处理
- jsp开发 --异常处理页面
- JSP页面的异常处理
- JSP页面的异常处理
- JSP常见异常及处理
- 电容充放电时间计算
- VIM用户手册 For Vim version 7.3. *usr_29.txt*
- VIM用户手册 For Vim version 7.3. *usr_30.txt*
- VIM用户手册 For Vim version 7.3. *usr_31.txt*
- VIM用户手册 For Vim version 7.3. *usr_32.txt*
- jsp异常处理
- Log4J的配置文件
- VIM用户手册 For Vim version 7.3. *usr_40.txt*
- EDA——计算机软件系统
- HDOJ 2955 Robberies (01背包)
- gdb自动attach指定进程
- PHP autoload 函数
- VIM用户手册 For Vim version 7.3. *usr_41.txt*
- java正则表达式