gpt4 book ai didi

servlets - doGet()/doPost() 和 processRequest() 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 19:31:56 25 4
gpt4 key购买 nike

使用 doGet()/doPost() 与 processRequest() 有什么区别?

有人应该使用 doGet() 和 doPost() 对来处理他/她的请求还是使用一个方法 processRequest() ?

最佳答案

What's the difference?

这只是将通用代码移动到一个地方的问题,例如:

public class TestServlet extends HttpServlet 
{

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().println("Welcome to TestSevlet");
}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}

*注意:doPost() 和 doGet() 是 Servlet 接口(interface)的一部分,processRequest() 只是辅助方法的常用名称,不属于任何接口(interface)

Should you use processRequest()?

这取决于您的 Servlet 的行为方式以及您的 Servlet 的调用方式,如果您希望 POST 请求与 GET 请求有不同的行为,请分别实现它们。如果您的 servlet 应该具有相同的行为,无论是在其上调用 GET 还是 POST,那么请将它们路由到相同的 processRequest() 方法。

在大多数情况下(可能是 90% 的时间)是的,您可以将 doGet() 和 doPost() 路由到单个 processRequest() 方法。

希望将两者路由到 processRequest() 方法的一个示例是,如果您想为 POST 请求上传文件并为 GET 请求查看一些数据。

Is processRequest() considered good practice?

如果 GET 和 POST 正在做同样的事情,那么绝对是的。事实上,Arun Gupta(Java EE 的主要规范负责人之一)使用了这种模式 in his samples .

关于servlets - doGet()/doPost() 和 processRequest() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34887382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com