如何在JSP错误页面中显示请求的URL? [英] How to show the requested URL in a JSP error page?
问题描述
在错误页面中,我想显示用户请求的网址。
In the error page I would like to display the URL what the user requested.
在我的 web.xml 中:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID"
version="3.0">
<display-name>MyStuff</display-name>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/error-404.jsp</location>
</error-page>
</web-app>
这将转发到 error-404.jsp ,这是该文件的内容:
This will forward to error-404.jsp, and here is the content of that file:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Page Not found</title>
</head>
<body>
<p align="center">
<%
out.println("Requested resource: " + request.getRequestURL()+ " not found");
%>
</body>
</html>
问题是 request.getRequestURL ()
需要更改,但不知道搜索内容的关键字。
The problem it is the request.getRequestURL()
need to be changed, but don't know the keyword for what to search.
当我启动浏览器<$ c时$ c> http:// localhost:8080 / MyStuff 然后我收到以下错误:
When I start the browser for http://localhost:8080/MyStuff
then I get the following error:
请求的资源:http:// localhost:8080 / MyStuff / WEB-INF / error-404.jsp not found
Requested resource: http://localhost:8080/MyStuff/WEB-INF/error-404.jsp not found
如何解决这个问题?
推荐答案
这是一个JSP错误页面的简单示例,它显示了错误代码和请求的URL页面:
Here is a simple example of JSP error page that shows the error code and the URL of the requested page:
404.jsp :
<%@ page language="java" isErrorPage="true" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Error page</title>
<meta charset="utf-8">
</head>
<body>
<button onclick="history.back()">Back to Previous Page</button>
<h1>404 Page Not Found.</h1>
<br />
<p><b>Error code:</b> ${pageContext.errorData.statusCode}</p>
<p><b>Request URI:</b> ${pageContext.request.scheme}://${header.host}${pageContext.errorData.requestURI}</p>
<br />
</body>
</html>
有用的阅读:
- JSP.1.4错误处理部分 JavaServer Pages
规范(JSR
245)。 - 处理JSP页面
错误(来自官方Java EE 5教程) - "JSP.1.4 Error Handling" section in the JavaServer Pages Specification (JSR 245).
- Handling JSP Page Errors (from the official Java EE 5 Tutorial)
Useful reading:
PS
强烈建议不要在JSP中使用scriptlet。阅读这篇文章。
这篇关于如何在JSP错误页面中显示请求的URL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!