容器生成的请求和响应对象的类型是什么?

时间:2014-07-17 14:31:16

标签: java tomcat servlets

当请求来自Servlet时,书中写了一个请求和响应对象由容器生成并作为参数放入服务方法。

HttpServletRequest
HttpServletResponse
ServletRequest
ServletResponse

Interface因此无法实例化。

所以

  1. 对象的类型是什么?
  2. 请求和响应方法包含哪些信息?
  3. 容器如何知道它是get或post请求?

3 个答案:

答案 0 :(得分:0)

  1. 容器选择实例化的任何类型,符合您列出的接口。
  2. 接口提供的任何信息,以及实现提供的任何信息。当然,要访问非接口功能,必须进行转换。
  3. ...通过查看请求。阅读HTTP规范。

答案 1 :(得分:0)

您应该查看Java EE Tutorial - Chapter 15 Java Servlet Technology并记住JSP已编译为Servlet。对于基于Web的请求,

  1. 容器的界面实现。
  2. 请参阅ServletRequestServletRepsonse Javadoc。
  3. 通过调用Servlet.service(request, response),容器具有解析请求并调用doGet()doPost()(或Servlet中的其他方法之一)的默认行为。

答案 2 :(得分:0)

  1. 您可能需要查看 javax.servlet.http 包下的ServletResponseWrapper, HttpServletResponseWrapper, ServletRequestWrapper & HttpServletRequestWrapper。此外,Web容器实现可以继承那些包装类或实现这些接口
  2. 并查看上述api doc中的ServletRequestServletResponse界面。
  3. 按照@Elliott Frisch的回答中的解释,查看service()方法。