@Path和@WebServlet之间的区别

And*_*Dev 3 rest servlets java-ee

在Java EE中,我注意到你可以指定一个uri的路径

@Path("/SomePath")
public class MyClass
Run Code Online (Sandbox Code Playgroud)

要么

@WebServlet("/SomePath")
public class MyClass extends HttpServlet
Run Code Online (Sandbox Code Playgroud)

我认为@Path用于非servlet,而@WebServlet用于servlet.但他们是否有效地服务于同一目的?

有关@Path的信息,请访问:http: //docs.oracle.com/cd/E19798-01/821-1841/6nmq2cp26/index.html

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

Pet*_*sik 7

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

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

  • 当然你可以这样做,但我不认为这是一个好主意,你必须自己实现很多东西(这很容易出错) - 如果我是你,我肯定会用Java REST API编写REST服务而不是通过servlet攻击它. (2认同)