4 servlets
由于HttpServletRequest和HttpServletResponse是接口,我们知道在Java中我们不能实例化接口.那么我们如何才能在doGet()或doPost()中拥有这两个对象?
//这里的东西....... doPost(HttpServletRequest请求,HttpServletResponse响应) {//这里的东西}
这些是由运行servlet的任何Servlet容器提供的.这是Java世界如何通过提供这些接口的具体实现来使用接口来指定其他人遵循的合同的一个很好的示例.
该Servlet规范规定了建立在其中的servlets执行的环境,即,该API servlet容器.与任何标准设置文档一样,servlet规范不提供实际的软件实现,只提供行为的定义,即实现软件必须遵循的合同.接口用于定义此行为.
这些接口在javax.servlet.*包空间中提供,这是Java EE的一部分 - 我认为.无论如何,它是Java的一部分.希望提供Servlet容器实现的人必须提供实现这些接口的类; 特定实现的内部细节 - tomcat,jetty等 - 只要符合接口合同,就会有很大差异.
许多接口都是由servlet容器本身实现的,但有些接口是由应用程序开发人员实现的.例如,如果您正在编写Web应用程序,则可能会提供自己的应用程序特定的javax.servlet.Servlet接口实现.
在运行时,当servlet容器接收映射到您的实现了Servlet接口的请求,容器会创建它自己实现的javax.servlet.http.HttpServletRequest,它代表了传入的请求,这将被传递到你的servlet,因此它可以工作的任何它想要做那个请求.通过请求对象提供的数据包括请求URI,请求参数等.