Servlet和路径参数如/xyz/{value}/test,如何在web.xml中映射?

2024-04-24

servlet是否支持url如下:

/xyz/{value}/test

其中值可以用文本或数字替换。

如何在 web.xml 中映射它?


最好的选择是 URL 模式/xyz/*.

The 服务程序接口 https://jakarta.ee/specifications/servlet/6.0/jakarta-servlet-spec-6.0不支持 URL 模式通配符*在映射的中间,例如/xyz/*/test也不是 URI 模板。它只是allows https://jakarta.ee/specifications/servlet/6.0/jakarta-servlet-spec-6.0#specification-of-mappings通配符*在映射的最后像这样/prefix/*或者像这样在映射的开头*.suffix.

您可以使用提取路径信息HttpServletRequest#getPathInfo() https://jakarta.ee/specifications/servlet/6.0/apidocs/jakarta.servlet/jakarta/servlet/http/httpservletrequest#getPathInfo()。这是一个基本的启动示例,如何提取路径信息、空值和数组索引越界检查,为简洁起见省略了:

@WebServlet("/xyz/*")
public class XyzServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String pathInfo = request.getPathInfo(); // /{value}/test
        String[] pathParts = pathInfo.split("/");
        String value = pathParts[1]; // {value}
        String action = pathParts[2]; // test
        
        if ("test".equals(action)) {
            // ...
        }
    }
}

如果您希望能够使用URI 模板 https://en.wikipedia.org/wiki/URI_Template尽管如此,这实际上是一个 REST 端点而不是 HTML 页面,然后看一下雅加达 REST (JAX-RS) https://eclipse-ee4j.github.io/jakartaee-tutorial/#extracting-path-parameters:

@Path("/xyz/{value}/test")
public class XyzResource {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public String getTest(@PathParam("value") String value) {
        // ...
    }
}

如果您想要更细粒度的控制,例如使用 Apache HTTPDmod_rewrite,那么你可以看看Tuckey 的 URL 重写过滤器 https://tuckey.org/urlrewrite/ or 自行开发 URL 重写过滤器 https://stackoverflow.com/questions/2725102/how-to-use-a-servlet-filter-in-java-to-change-an-incoming-servlet-request-url.

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

Servlet和路径参数如/xyz/{value}/test,如何在web.xml中映射? 的相关文章

  • PrimeFaces 文件上传

    我正在一个项目中使用 jsp Servlet 并且决定使用 PrimeFaces 迁移到 JSF 我在尝试使用 PrimeFaces 文件上传控件上传文件时遇到了问题 然后当我将其配置到 web xml 中时 它运行良好 问题就来了现在所有
  • 具有大量输入数据的 REST 端点 (GET)

    我正在开发一个应用程序 我需要将对象列表传递到 REST 端点 该端点将执行一些计算并将结果返回给调用者 问题更多的是一个哲学问题 即如何处理这种情况 在 GET 请求中传递巨大的负载是一个坏主意 同时 它并不是真正的 POST PUT 请
  • 使用 Servlet 和 JSP 验证数字

    我在学习 Web 开发的同时正在开发一个小型 Servlet 和 JSP 应用程序 我有一个关于 jsp 和 servlet 之间的验证和传递值的问题 我有一个 啤酒 类 具有 评级 属性 双精度类型 加载 edit jsp 的 servl
  • jQuery 加载到变量

    我需要将 jQuery 加载结果插入到变量中 页面 ajax html 上带有 id 测试的元素的内容 result load ajax html test 尝试使用jQuery get http api jquery com jQuery
  • 我想向我的销售点的用户授予特权,但我不知道如何做,有什么建议吗?

    我有一个问题 我有一个用netBeans制作的销售点系统 2个用户可以在我的系统中注册 管理员 和 供应商 系统中有几个模块 包括 Inventario 模块允许您在数据库中输入 修改 删除和搜索文章 问题是我希望只有管理员有权限进入该模块
  • PHP 使用带有标头的 cURL 和 GET 请求

    过去有一些更棘手的问题 如下所示 如何从 PHP 发送带有标头的 GET 请求 https stackoverflow com questions 19259490 how do i send a get request with a he
  • 如何将数据从servlet传递到android应用程序

    I have a form in android upon submit im inserting it into database using servlet i have to show to user that form was in
  • 是否可以将jsp预编译到eclipse中?

    标题很简单 我想知道是否有可能直接在eclipse中看到编译好的jsp 生成的servlet 无需部署到任何服务器上 如果您使用 JSP 我建议购买我的Eclipse http www myeclipseide com 因为它可以编译 JS
  • Ruby on Rails 3:如何分别检索 POST 和 GET 参数?

    我知道你可以使用获取参数params 但问题是它合并了所有参数 无论它们是通过GET or POST 如果您通过以下方式发送请求GET 没问题 参数只能挤在URL里 但如果你发送一个POST具有类似 URL 的请求 blabla foo b
  • 组件返回故障代码:0x805e0006 错误

    下面的 JQueryget call var doc root document location hostname 8082 var fw script doc root sites MyScripts fw2 php var langp
  • java ee http-basic 身份验证错误页面

    使用 Java EE 中基于表单的身份验证来保护 Web 应用程序 我们可以指定登录和错误 html 页面 http docs oracle com javaee 5 tutorial doc bncbe html http docs or
  • 在 Servlet 2.4 容器上运行 JSF 2.0

    据我所知 JSF 2 需要 servlet 2 5 因此它不能在 JBOSS 4 05 Tomcat 5 5 上运行 不幸的是 我必须在该环境中部署一个使用 JSF 2 0 和 Primefaces 的应用程序 有什么黑客可以使用它吗 JS
  • 在嵌套有序字典 python 中查找给定键的值

    我试图从嵌套的 OrderedDict 中查找给定键的值 关键点 我不知道这个字典会嵌套多深 我正在寻找的键的名称是不变的 它将位于字典中的某个位置 我想返回本例中名为 powerpoint color 的键的值 mydict Ordere
  • 基本身份验证:是否可以像 getRemoteUser() 一样设置RemoteUser

    您好 我正在使用基本身份验证方法来保护我的 Web 应用程序中的某些页面 其中有指定的 url 模式如下
  • 在一个 Servlet 中同时处理

    我有一个 Servlet 它接收请求 必须处理 5 个任务 从外部服务器获取数据 并将所有数据发送回订购的客户端 如何同时处理5个任务并在5个任务全部完成后继续执行servlet代码 您可以使用CoundDownLatch http doc
  • REST Web 服务 - 动态查询参数

    我需要将动态查询参数发送到 REST Web 服务 GET 方法 如下所示 主机 端口 应用程序 field1 XXX value1 VVV field2 XXX value2 XXX 消费者可以发送参数最多为字段和值 每个字段都映射到值
  • 如何在android sdk中从图库中获取图像并将其显示到屏幕上

    我想知道如何从图库中获取预先保存的图像 然后将其显示到屏幕上 任何教程 有用的链接和信息将不胜感激 如果您希望我进一步解释任何内容 请询问 Intent photoPickerIntent new Intent Intent ACTION
  • 使用 application/json contentType 的 AJAX POST 调用收到“no 'Access-Control-Allow-Origin' header”错误

    我有下面的 Javascript 函数 每当我运行它 使用 WebView 从 Android 应用程序调用它 时 它都会作为application x www form urlencoded尽管有dataType json 属性 如果我添
  • 如何从JSP中获取java类的对象

    我有一个结果jsp页面 它打印java类的字符串变量 有人能给我任何想法吗 我使用简单的 httpServlet 作为操作类 Class A String name public void setName this name callMet
  • RequestDispatcher.forward 到媒体文件?

    我最近有一个需要解决的问题 https stackoverflow com questions 19385223 how to transparently stream a file to the browser并找到了一个解决方案 但如果

随机推荐

  • 为什么 Python 3 http.client 比 python-requests 快这么多?

    我今天测试了不同的 Python HTTP 库 我意识到http client https docs python org 3 library http client html库的执行速度似乎比requests http docs pyth
  • C 中指针的冒泡排序,输入末尾的预期声明或语句

    我尝试使用指针引用数组元素来实现冒泡排序 而不是使用数组索引 void bubble p long long int main long count 10 int i long data 5 2 1 7 10 6 8 4 9 0 bubbl
  • 缺少 Haskell 原语来连续将函数应用于列表的每个元素?

    在 Haskell 中 众所周知map原语可用于将给定函数应用于all列表的元素 gt map toUpper abcd ABCD gt 在尝试生成有限集 列表 的所有分区时 以下类似的原语会很方便 gt sap toUpper abcd
  • MySQL 中的一对多查询

    在 MySQL 中查询一对多的最佳方式是什么 这是我正在开发的数据库的简化版本 如果有什么看起来不对劲告诉我 CREATE TABLE Tenant tenant id int NOT NULL first name varchar 20
  • JAVA 中的四舍五入

    我想四舍五入 ex 的值 12 166666 gt 12 00 12 49999 gt 12 00 12 5111 gt 13 00 12 9999 gt 13 00 我想将 50 派塞四舍五入 你可以看看Math round double
  • 在cocos2D游戏环境中应用缩放效果?

    我正在开发一款游戏cocos2D游戏引擎并加载所有sprites当它加载关卡时 现在因为一些sprites 障碍物 高于 320 像素 因此看起来很难检查出来 所以为了方便起见我想申请ZOOM IN and ZOOM out效果 一次最小化
  • C# 动态创建 LinkBut​​ton 命令事件处理程序

    所以我这里有一个奇怪的情况 我有一个 System Web UI WebControls WebParts EditorPart 类 它呈现一个 搜索 按钮 当您单击此按钮时 它的 clickHandler 方法会执行数据库搜索 并为其返回
  • ND 输入的 im2col 算法

    我正在尝试为输入维度 gt 2D 编写自己的 im2col 算法 目前我正在研究 Matlab im2col 的实现 但是 我找不到任何有关二维以上输入的情况的文档 如果我将 3D 张量输入到函数中 我确实会得到输出 不过我不太明白你是如何
  • 使用 javascript 下载时 PDF 为空

    我有一个 Web 服务 可以在其响应中返回 PDF 文件内容 当用户单击链接时 我想将其下载为 pdf 文件 我在UI中编写的javascript代码如下 http get http MyPdfFileAPIstreamURl then f
  • 播放声音 Javascript/Jquery

    我正在构建一个基于 Ajax 的应用程序 它将在我们的本地 Intranet 网络上运行 现在 每次 Ajax 返回请求时 我都需要在客户端浏览器中播放声音 我想将声音文件 mp3 wav 放入我的 Web 服务器 Tomcat 目录中 应
  • React:获取 contentEditable div 内文本的值

    我正在使用一个contentEditablediv 并希望在调用提交时获取其中的文本 我试过this refs textarea value trim 但这似乎不起作用 我的代码在渲染返回中如下 div div
  • 在Python和XML中递归搜索父子组合并构建树

    我正在尝试遍历这个充满父子关系的 XML 数据 并且需要一种方法来构建树 任何帮助将不胜感激 另外 在这种情况下 父 gt 子关系有属性还是节点更好
  • 将原始 Scapy 数据解码为人类可读的数据

    我正在尝试改用 Scapy 而不是 Wireshark 但在解码我收到的数据时遇到问题 在 Wireshark 中 我可以轻松看到过滤数据包的最后一层 标记为 分布式交互式模拟 但在 Scapy 中 最后一层是 原始 我试图以相同的人类可读
  • 使用 jQuery 选择

    1天前我在这里问了一个大问题 但没有得到足够好的答案 所以我把问题分成几个部分 这是其中一部分 看看这段代码 div div div div
  • 如何在现有 UIKit 类(例如 UIColor)的扩展中添加初始值设定项?

    Swift 文档说 在扩展中添加初始值设定项是可能的 文档中的示例是关于将初始值设定项添加到struct Xcode 无法识别UIColor在我的便利初始化程序中指定的初始化程序 extension UIColor convenience
  • document.body.style.marginTop 在 JS 中返回空白字符串

    据我了解 some elem style maginTop 将返回带有元素上边距的字符串 相反 我总是得到一个空字符串 我想在 body 上使用它 但我也尝试在 div 上使用 但这也不起作用 console log document bo
  • 交错顶点提交如何提高性能?

    我已经阅读并看到了其他问题 这些问题通常都指向将顶点位置和颜色等交错到一个数组中的建议 因为这可以最大限度地减少从 cpu 发送到 gpu 的数据 我不清楚的是 即使使用交错数组 您仍然必须对位置和颜色指针进行单独的 GL 调用 OpenG
  • create-react-app/express 代理错误:无法代理请求(ECONNRESET)

    我使用 create react app 创建了一个 React 应用程序 并使用express generator 创建了一个 Express 服务器 我的反应应用程序正在运行http 本地主机 3000 http localhost 3
  • iText 设置加密错误

    我最近不得不升级到 iText 但在让 setEncryption 工作时遇到问题 我正在使用 iText 5 5 6 document new Document PageSize LETTER 36 36 72 72 writer Pdf
  • Servlet和路径参数如/xyz/{value}/test,如何在web.xml中映射?

    servlet是否支持url如下 xyz value test 其中值可以用文本或数字替换 如何在 web xml 中映射它 最好的选择是 URL 模式 xyz The 服务程序接口 https jakarta ee specificati