如何在JSP错误页面中显示请求的URL?

2023-12-13

在错误页面中,我想显示用户请求的 URL。

In my 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>

这将转发至错误404.jsp,这是该文件的内容:

<%@ 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()需要更改,但不知道要搜索的关键字。

当我启动浏览器时http://localhost:8080/MyStuff然后我收到以下错误:

Requested resource: http://localhost:8080/MyStuff/WEB-INF/error-404.jsp not found

怎么解决这个问题呢?


下面是一个简单的 JSP 错误页面示例,显示错误代码和请求页面的 URL:

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 错误处理” 部分中Java服务器页面 规格(JSR 245).
  • 处理 JSP 页面 错误(来自官方 Java EE 5 教程)

P.S.
强烈建议不要在 JSP 中使用 scriptlet。读这个帖子.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在JSP错误页面中显示请求的URL? 的相关文章

随机推荐

  • 如何引用javadoc中的方法?

    我怎样才能使用 link标签链接到方法 我想改变 Returns the Baz object owned by the Bar object owned by Foo owned by this A convenience method
  • 为什么 dotnet test project.csproj --filter Category=unit 在 Azure DevOps 中失败?

    我的解决方案是在 Azure DevOps 中构建的 由于该解决方案具有单元和集成测试 我需要进行过滤以避免总是编辑构建定义 在我的笔记本电脑上 以下命令运行良好并且仅执行我需要的测试 dotnet test project csproj
  • mysql PDO和存储过程动态SQL注入

    正如我在许多帖子中所看到的 存储过程中的动态 SQL 很容易受到 SQL 注入的攻击 但是如果我们使用之前的 PDO 和准备好的语句 这仍然不安全吗 Example CREATE PROCEDURE my sp IN in var VARC
  • 如何在 Google 电子表格中搜索并查找行的坐标

    我已经搜索了很长一段时间 希望没有其他人问过这个问题 我有一个包含两张表的 Google 电子表格 一张是包含表单提交的数据库 另一张是用户一次与提交交互的方式 基本上 我希望用户能够对提交进行更改并将其保存回原始工作表中的同一行 我有发送
  • Scala:将映射转换为案例类

    假设我有这个示例案例类 case class Test key1 Int key2 String key3 String 我有一张地图 myMap Map k1 gt 1 k2 gt val2 k3 gt val3 我需要在代码的几个地方将
  • 固定标题 Flex Table - 标题垂直对齐

    jsFiddle https jsfiddle net 24by5tmv 1 我有一个简单的弹性表格 可以修复标题并滚动表格主体 但我想垂直对齐每个单元格内的内容 标题和主体 的中心 中间 将单元格设置为vertical align mid
  • 使用 PDO::FETCH_CLASSTYPE 传递构造函数参数

    我正在用基于 PDO 的新版本替换旧数据库层 但是我遇到了一个问题 当使用获取对象时fetchObject我可以传递对象构造函数的参数 但是我现在正在移植一个具有多个子类的类 所有子类都存储在同一个表中 并且我想使用FETCH CLASST
  • jQuery 按 div 高度分页(不是项目)

    我有兴趣使用 jQuery 根据内容和 div 的高度 而不是根据项目数量 创建自动分页 我能找到的大多数分页示例都是基于要分页的项目数量 而不是包含的 div 的高度和内容的高度 该解决方案不适用于不同长度的内容 有谁知道现有的解决方案可
  • 从 Android 终端禁用设备所有者应用程序

    好吧 我的问题是 我有一个应用程序被设置为设备 在本例中是我的平板电脑 的设备所有者 我从 Ubuntu 的终端执行此操作 将平板电脑连接到我的 PC 并在 adb shell 中执行此行 dpm set device owner my a
  • 将 spring-boot 应用程序部署为专用 tomcat 上的 war 文件不起作用

    我有一个 spring boot 应用程序 现在我想将该应用程序部署在专用 tomcat 服务器上 而不是使用嵌入式 tomcat 两种部署方式我都没有收到任何错误 我已经给出了范围 提供为了spring boot 启动器 tomcat依赖
  • jQuery .height() 在 Safari 中错误

    我在读出 a 的正确高度时遇到问题DIV在 Safari 中使用 jQuery 我在用jQuery x height 读出元素的高度 在实际情况中 我稍后在页面中使用结果 它在 Chrome Firefox 和 IE 中运行良好 但在 Sa
  • SVG 元素在 Safari 中不显示

    我在 html5 文档中有一些内联 svg 如下所示 div div
  • x86 汇编添加不同大小的操作数

    我喜欢将一个字节从内存位置添加到 32 位寄存器 这在 x86 汇编中可能吗 add edx byte ebx causes error mismatch in operand sizes 您需要确保操作数的大小相同 但这涉及到标志的问题
  • 如何使用 Aurelia/Typescript 导入 Moment-Timezone

    我已经正确导入了 momentjs 它工作正常 但是当我尝试导入时刻时区时 我无法让它工作 我无权访问任何功能 这是我的 aurelia json 文件 我从 npm 加载它们 name moment path node modules m
  • 带有右箭头的 github 存储库文件夹是什么意思?

    我有一个带有蓝色图标的 github 存储库文件夹 其中有一个向右箭头 我一直无法找到任何对 github 图标图例 键的引用 知道这个图标是什么吗 该图标表示git 子模块 它有另一个 git 版本控制项目 存储库的提交的链接 您可以阅读
  • CakePHP 单元测试中电子邮件中的完整 URL

    我想获得由我在 CakePHP 3 2 中的测试触发的电子邮件中的完整 URL 我尝试了完整的选项 this gt Html gt image image jpg fullBase gt true and this gt Url gt bu
  • 无法使用 java API (oAuth2) 将视频上传到 youtube。收到 403 访问禁止。该请求可能未得到正确授权

    我有一个将视频上传到 YouTube 的应用程序 自 2 月 24 日以来 我的应用程序在上传功能方面出现了严重问题 我正在使用 YouTube 的官方 google java 客户端 以及 oauth 我收到的问题403 Forbidde
  • Angular - 为什么我的弹珠测试不适用于包含用户权限的BehaviorSubject?

    我正在使用 Angular 8 编写一个应用程序 我决定使用带有BehaviorSubject 的 rxjs 存储来进行简单的状态管理 基本上 我的代码是一个存储 加载和更新用户权限的服务 有时 此信息将在 HTTP 调用后来自服务器 有时
  • 如何定义ArrayList中容量的概念?

    据我所知 容量是 ArrayList 中可能包含也可能不包含引用对象的值的元素或可用空间的数量 我正在尝试更多地了解容量的概念 所以我有三个问题 1 从内存的角度来看 有哪些好的方法可以定义容量所代表的含义 分配给 ArrayList 的
  • 如何在JSP错误页面中显示请求的URL?

    在错误页面中 我想显示用户请求的 URL In my web xml