Jetty'{servlet} / {parameter}’url路由
我正在使用jetty 9.0.3。
如何将URL(如www.myweb.com/{servlet}/{parameter})映射到给定的servlet和参数?
例如,URL’/ client / 12312’将路由到clientServlet,其doGet
方法将接收12312作为参数。
你需要担心两个部分。
-
WEB-INF/web.xml
的pathSpec - servlet中的HttpServletRequest.getPathInfo() 。
pathSpec
在WEB-INF/web.xml
您必须声明Servlet和url-patterns(也称为pathSpec)。
例:
Example WebApp clientServlet com.mycompany.ClientServlet clientServlet /client/*
这将在名称clientServlet
上设置为com.mycompany.ClientServlet
类的servlet,然后为传入的请求URL指定/client/*
的url-pattern。
url-pattern末尾的extra /*
允许接受以/client/
开头的任何传入模式,这对于pathInfo部分很重要。
pathInfo
接下来我们进入Servlet实现。
在ClientServlet上的doGet(HttpServletRequest req,HttpServletResponse resp)实现中,您应该访问req.getPathInfo()值,该值将接收url-pattern上/client
之后的请求URL部分。
例:
Request URL Path Info ---------------- ------------ /client/ / /client/hi /hi /client/world/ /world/ /client/a/b/c /a/b/c
此时,您可以对路径信息中的信息执行任何逻辑操作
您可以使用Jersey
并在ResourceConfig
包中注册以下类,该类正在处理../worker/1234
url模式。
阅读更多: 何时使用@QueryParam vs @PathParam
@Path("v1/services/{entity}") @GET public class RequestHandler(@PathParam("entity")String entity, @PathParam("id")String id){ @path({id}) public Entity handle(){ } }
- 无法从另一个maven子项目调用Hibernate / QueryDSL
- java.io.IOException:管道损坏
- 是否有任何方法可以在servlet中获取jetty上的所有有效会话密钥值?
- 使用jackson将json反序列化为java – 特殊字符问题
- 启动Jetty服务器时扫描条目“module-info.class”时出错
- 找不到Eclipse部署描述符
- GAE项目类路径上的Xerces JAR导致“找不到SAXParserFactoryImpl”
- 将Spring Cloud与Orchestration工具一起使用,如Docker Swarm和Kubernetes
- 将jetty服务器嵌入到Android应用程序中