在{resource} / <id> </id>这样的简单servlet中创建REST类型的URL

时间:2012-04-16 10:04:24

标签: java rest servlets

我正在制作基于REST的网络服务。

首先,我想看到如下的网址

 /{resource}
 /{resource}/<id>
 /{resource1}/<id>/{resource2}
 /{resource1}/<id>/{resource2}/<id>

如何制作如上所述的servlet网址..? 我不想使用任何框架。

1 个答案:

答案 0 :(得分:1)

Servlet API没有为这种映射提供任何特殊支持。

如果您想在没有第三方库的情况下执行此操作,则需要将servlet映射到/{resource},将其余路径作为request.getPathInfo()并根据该值实现进一步路由:

<servlet-mapping>
    ...
    <url-pattern>/resource</url-pattern>
</servlet-mapping>

public class ResourceServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) {
        String path = request.getPathInfo();
        if (path == null) { // It's /resource
            ...
        } else if (path.matches("/\\d+")) { // It's /resources/<id> with integer id
            ...
        }
    }
}

但是,最好不要重新发明轮子并使用JAX-RS实现之一。