使用@Path(“/ path”)和@POST与doPost的HttpServlet

时间:2012-07-03 15:37:18

标签: java servlets

我对HttpServlet使用@Path(“/ path”)和@POST方法与doPost(HttpServletRequest请求,HttpServletResponse响应)方法有点混淆。我已经看到了很多关于@Path用法的好工作示例,但从来没有一个doPost的工作示例。当我尝试使用doPost时,它永远不会被调用。

首先,有什么区别,哪种方式更好?另外,我对doPost的错误是什么

public class PostExample extends HttpServlet{


@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

    // HttpServlet doPost never gets called
    System.out.println("hit test doPost "+request.getRequestURI());


}
 }

谢谢!

1 个答案:

答案 0 :(得分:1)

"what's the difference, and which is a better way to go"

注释@ GET,@ PUT,@ POST,@ DELETE和@HEAD是JAX-RS的一部分:用于RESTful Web服务的Java API规范,用于指定资源的HTTP请求类型,并在Web服务框架中实现泽西和Apache CXF,在你真正使用这些框架之前,你不会使用它们。

Wiki JAX-RS

"what am I doing wrong with the doPost"    

您需要在web.xml中指定servlet

<servlet>
  <servlet-name>PostExample</servlet-name>
  <servlet-class>com.examples.PostExample</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>PostExample</servlet-name>
   <url-pattern>/myservlet/*</url-pattern>
</servlet-mapping>