在 Java EE 中,我注意到您可以将 uri 的路径指定为

@Path("/SomePath")
public class MyClass

或者
@WebServlet("/SomePath")
public class MyClass extends HttpServlet

我认为@Path 用于非servlet 的东西,而@WebServlet 用于servlet。但它们是否有效地达到了相同的目的?

关于@Path 的信息可以在这里找到:
http://docs.oracle.com/cd/E19798-01/821-1841/6nmq2cp26/index.html

但乍一看,它似乎提供了一些基本功能,如@WebServlet。

最佳答案

@Path 注释定义了 RESTful Web 服务的路径,因此当您拥有 @Path("/SomeService") 时,它​​将转换为 www.yourapp.com/baseRestUrl/SomeService 。您还可以在提供 REST 服务的方法上定义它。请注意,baseRestUrl 是在 web.xml 或扩展 Application 类的类中定义的。

另一方面 @WebServlet("/SomePath") 声明 Servlet 将监听 www.yourapp.com/SomePath 上的请求,它基本上是替换 servlet-mapping 中的 web.xml 元素。您仍然可以像这样配置 servlet,这取决于您是喜欢 XML 还是注释配置。

10-06 10:06