pis*_*hio 1 java rest servlets servlet-3.0
假设我想接受以下网址:
http://myserver/myapplication/posts
http://myserver/myapplication/posts/<id>
http://myserver/myapplication/posts/<id>/delete
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用servlet装饰器@WebServlet呢?我正在调查value,urlPatterns但我不知道怎么做.例如,
@WebServlet(urlPatterns={"/posts", "/posts/*"})
[..]
String param = request.getPathInfo();
Run Code Online (Sandbox Code Playgroud)
给我一些结果,但如何使用它?此外,request.getPathInfo()似乎返回通配符的值,但如果我想要更多的参数,如果http://http://myserver/myapplication/posts/<id>/delete/<force>?
在servlet规范中,您没有路径变量的概念.一些MVC框架确实支持它们,例如Struts或Spring MVC.
对于servlet的观点,URL是:
scheme://host.domain/context_path/servlet_path/path_info?parameters
Run Code Online (Sandbox Code Playgroud)
任何部分(从上下文路径开始可能为null)
servlet 3.0的规范说明:
HttpServletRequest接口中存在以下方法来访问此信息:
值得注意的是,除了URL编码请求URI和路径部分之间的差异之外,以下等式始终为真:
requestURI = contextPath + servletPath + pathInfo
Run Code Online (Sandbox Code Playgroud)
这意味着你只需要使用@WebServlet(urlPatterns={"/posts"}),然后手工解码pathInfo部分来提取命令和参数
| 归档时间: |
|
| 查看次数: |
2501 次 |
| 最近记录: |