gpt4 book ai didi

java - protected 服务(ServletRequest,ServletResponce)与公共(public)服务(HTTPServletRequest,HTTPServletResponce)

转载 作者:行者123 更新时间:2023-12-01 11:08:18 25 4
gpt4 key购买 nike

我尝试寻找两者之间的差异。我找到了代码,其中公共(public)服务方法通过向其传递 HttpServletRequest 和 HttpServletResponse 对象来依次调用 protected 服务方法。但是为什么要在HttpServlet类中添加一个额外的 protected 服务方法呢?有什么用吗?如果它不存在会发生什么?

最佳答案

我认为JavaDoc解释了一切:

/**
* Dispatches client requests to the protected
* <code>service</code> method. There's no need to
* override this method.
* ...
*/
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException

/**
* Receives standard HTTP requests from the public
* <code>service</code> method and dispatches
* them to the <code>do</code><i>XXX</i> methods defined in
* this class. This method is an HTTP-specific version of the
* {@link javax.servlet.Servlet#service} method. There's no
* need to override this method.
*/
protected void service(HttpServletRequest req, HttpServletResponse resp)

基本上,该方法的 public 版本会检查 ServletRequestServletResponse 参数是否实际上是 HttpServletRequest 的实例code> 和 HttpServletResponse 分别转换它们并将它们传递给包含特定于处理 HTTP 请求的逻辑的 protected 方法。

因此,如果您只想重写处理 HTTP 请求处理的逻辑,则可以重写 protected 方法。尽管如 JavaDoc 中所述,这并不是真正必要的,但在某些特定场景中可能需要它。

关于java - protected 服务(ServletRequest,ServletResponce)与公共(public)服务(HTTPServletRequest,HTTPServletResponce),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32681629/

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