为什么在的Servlet接口service()
方法不返回的ServletResponse的一个实例,但由容器提供的的ServletResponse对象上,而工作?为什么Servlet.service()方法返回void而不是ServletResponse的实例?
在简单的话为什么是的Servlet接口等的服务方法:
public void service(ServletRequest request, ServletResponse response);
和不喜欢:
public ServletResponse service(ServletRequest request);
我非常荣幸能回答我问的问题(:D),但我不明白如何传递一定长度的参数将有助于实现,而不是在我想要缓存值时返回值。我不是这里的专家,但我确实想成为,我想,我需要一些帮助。再次感谢你。谢谢!! – 2011-05-13 18:37:24
@Satadru:如果方法必须*返回一个值,那么servlet容器不会控制它 - 而且这是servlet容器的工作来控制响应缓冲等事情。这通常不取决于单个servlet。您将servlet容器配置为以特定方式运行,并提供相应的ServletResponse来写入。 (请注意,这不是*缓存*,而是*缓存*。) – 2011-05-13 18:40:15
@Satadru:你说的“前端servlet”是什么意思?你的意思是容器?它不必知道你提供的是什么样的响应 - 它可以让你编写二进制数据或文本数据,让你设置标题等。 – 2011-05-13 18:53:30