我应该覆盖 service() 还是 doPost()?

2022-09-04 19:40:45

我正在读一本关于 servlet 的书,在那本书中,对 servlet 类以及类进行了简要的解释。HttpServlet

有一个填写表单的例子 - 对于该表单,servlet的方法被类覆盖。但对于登录表单的另一个示例,该方法将被重写。doPost()service()

我想知道为什么有2种不同的方法 - 我认为通常我们将自定义代码放入(或)中并保持原样。使用这两种方法中的任何一种有什么原因,或者我可以在任何情况下同时使用这两种方法吗?doPost()doGet()service()


答案 1

不要重写方法。首选方法是用于 post 和 for get。这是一篇关于每个人做什么的精彩帖子。http://www.jguru.com/faq/view.jsp?EID=47730service()doPost()doGet()

如果必须响应未使用 HTTP 协议的客户端发出的请求,则必须使用 service()。


答案 2

我认为你需要了解流程才能自己决定。的默认实现只是调用请求方法的相应处理程序(GET,POST等)。service()HttpServlet

当您希望使用相同的方法来处理所有传入方法时,您需要重写(无论是GET,PUT还是POST请求,您都会对所有方法回答相同的请求)。如果您喜欢单独处理每个方法,请使用默认 service() 实现并重写特定的处理程序。service()


推荐