当前位置: 首页 > 知识库问答 >
问题:

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

赏梓
2023-03-14
/xyz/{value}/test

共有1个答案

胡劲
2023-03-14

Servlet API不支持在映射中间使用URL模式通配符*。它只允许通配符*在映射的末尾像so/prefix/*或在映射的开头像so*.suffix

使用标准允许的URL模式语法,最好的方法是将其映射到/xyz/*上,并使用httpservletrequest#getpathinfo()提取路径信息。

因此,给定一个 /xyz/* ,这里有一个基本的启动示例,如何提取路径信息、空检查和数组索引越界检查被省略:

String pathInfo = request.getPathInfo(); // /{value}/test
String[] pathParts = pathInfo.split("/");
String part1 = pathParts[1]; // {value}
String part2 = pathParts[2]; // test
// ...
 类似资料:
  • 我正在尝试在web.xml中映射多个servlet。在我的index.html中,我有一个操作“desktype.do”的表单,当我运行程序时,它成功了。我是这样开始的: …效果很好。它成功地编译,并且在按下我在index.html中设置的按钮后,它就会按照需要运行。在添加了额外的servlet映射之后: 我收到错误“模块尚未部署。详细信息请参阅服务器日志。构建失败(总时间;0秒)”我不确定该怎么

  • 问题内容: xml文件位于我的项目中。我正在使用Eclipse并运行Tomcat(它不是通过Eclipse安装的。我希望它是单独的安装)。 当表单页面提交到servlet时,它不起作用。我每次都收到404错误。我已经遇到这个问题一段时间了。有人请帮助我。 问题答案: 您缺少标记,这对于映射很重要。因此,使用以下命令: 并且您应该像下面这样在表单上赋予价值: 并记下所有值在以下代码中区分大小写: 您

  • 仅供参考:我已经删除了所有apache默认的webapp文件,并启动了我自己的项目,因此可以使用访问它,这很好。 我在驱动器中的servlet位置: 我在eclipse IDE中的包:eclipse IDE映像中的包 和我的web.xml文件: 我的HTML表单: 感谢所有的回复:)

  • 问题内容: 我有一个内容为web.xml的文件: 我尝试过要求 这两个请求都由Servlet2处理。为什么? 更新 谢谢你们的帮助。我意识到行为取决于servlet映射声明的顺序。我尝试了这个web.xml 结果: 问题答案: 从Servlet 3.0 规范开始,这是Web容器在收到请求后必须定位servlet的方式(重点是我的): 用于映射到servlet的路径是来自请求对象的请求URL减去上下

  • 我试过请求 这两个请求都由Servlet2处理。为什么? 更新 结果:

  • xml文件位于我的项目的中。我正在使用Eclipse并运行Tomcat(它不是通过Eclipse安装的,我更希望它是一个单独的安装)。 当表单页面提交给servlet时,它就不起作用了。我每次都得到一个404错误。我遇到这个问题有一段时间了。谁来帮帮我。