我对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());
}
}
谢谢!
答案 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,在你真正使用这些框架之前,你不会使用它们。
"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>