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

Jetty“{servlet}/{parameter}”url路由

韩单弓
2023-03-14

例如,URL'/client/12312'将路由到clientServlet,其doget方法将接收12312作为参数。

共有1个答案

姜明贤
2023-03-14

你将有两个部分需要担心。

  1. 您的web-inf/web.xml
  2. 中的路径规范
  3. servlet中的HttpServletRequest.getPathInfo()。

web-inf/web.xml中,必须声明Servlet和URL模式(也称为pathSpec)。

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 
   xmlns="http://java.sun.com/xml/ns/javaee" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   metadata-complete="false"
   version="3.0"> 

  <display-name>Example WebApp</display-name>

  <servlet>
    <servlet-name>clientServlet</servlet-name>
    <servlet-class>com.mycompany.ClientServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>clientServlet</servlet-name>
    <url-pattern>/client/*</url-pattern>
  </servlet-mapping>
</web-app>

接下来我们进入Servlet实现。

在ClientServlet上的doGet(HttpServletRequest req,HttpServletResponse resp)实现中,应该访问req.getPathInfo()值,该值将接收请求URL中位于URL模式上/client之后的部分。

示例:

Request URL        Path Info
----------------   ------------
/client/           /
/client/hi         /hi
/client/world/     /world/
/client/a/b/c      /a/b/c
 类似资料:
  • 问题内容: 我正在使用码头9.0.3。 如何将URL(例如www.myweb.com/{servlet}/{parameter})映射到给定的servlet和参数? 例如,URL’/ client / 12312’将路由到clientServlet,其方法将接收12312作为参数。 问题答案: 您将有两个部分需要担心。 您的pathSpec Servlet中的HttpServletRequest.

  • 我将Spring Boot与Jetty一起使用,当我从servletContext获取路径时。getRealPath(“/”)结果如下: 但应该像那样或至少类似于: 还有一个有趣的事实是,如果我有webapp文件夹,jetty会在其中使用这个文件夹,比如servlet context和servlet context。getRealPath(“/”)将返回正常路径。 为什么Jetty对servlet

  • 我需要设置Servlet(由于某些原因,只有Servlet而不是handler)来处理WAR以外的文件。在这里https://stackoverflow.com/a/28735121/5057736我找到了以下解决方案: 这个解决方案的工作,这是我需要的。但是,当我将第N行更改为时,它就停止工作。我尝试了“/foo/”和“/foo”,但是结果是一样的--我得到了。为什么?我怎样才能使它在这种特定的

  • 我正在使用Jetty的Spring靴。我配置上下文路径: 访问时http://localhost:8080/test,它不起作用。但是去http://localhost:8080/test/作品 是/测试和/测试/不同吗?我如何访问http://localhost:8080/test

  • 我需要将 jetty servlet 添加到我现有的服务器中,这些服务器是使用 dropwizard 框架实现的。 更具体地说: < li >我使用CRUD操作将restful资源Foo映射到URL“localhost:8080/Foo”。 < li >现在我需要一个映射到url“localhost:8080/bar”的jetty servlet,并处理对该URL的所有请求(主要是GET和POST

  • 问题内容: 我想从其中一个servlet获取我的Web应用程序的根URL。 如果我将应用程序部署在“ www.mydomain.com”中,则要获取根网址,例如“ http://www.mydomain.com ”。 同样的事情,如果我将其部署在具有8080端口的本地tomcat服务器中 谁能告诉我如何从servlet获取Web应用程序的根URL? 问题答案: 您确实意识到URL客户端可以看到(和