在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。
答案 0 :(得分:6)
@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还是注释配置。
答案 1 :(得分:0)
@Path注释标识资源响应的URI路径模板,并在资源的类或方法级别指定。 @Path注释的值是相对于部署资源的服务器的基本URI,应用程序的上下文根以及JAX-RS运行时响应的URL模式的部分URI路径模板。
@WebServlet注释用于声明servlet。带注释的类必须扩展javax.servlet.http.HttpServlet类。