Java Servlet是与平台无关的服务器端组件,它可以运行在Servlet容器中。Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用“请求/响应”模式。
当用户开发自己的Servlet类时,Servlet类必须扩展以下两个类中的一个:
Generic Servlet类
HttpServlet类
ServletRequest接口中封装了客户请求信息,如客户请求方式、参数名和参数值、客户端正在使用的协议,以及发出客户请求的远程主机信息。
ServletResponse接口为Servlet接口提供了返回响应结果的方法。
Servlet的生命周期开始于被封装到Servlet容器中,结束于被终止或重新装入时。Servlet的生命周期分为3个阶段:初始化阶段、响应客户请求阶段和终止阶段。在java.servlet.Servlet接口中定义了3个方法init()、service()和destroy(),它们将分别在Servlet的不同阶段被调用。
在Servlet的整个生命周期中,init方法只会被调用一次。
对于到达Servlet容器的客户请求,Servlet容器将创建特定于这个请求的ServletRequest对象和ServletResponse对象,然后调用Servlet的service方法。service方法从ServletRequest对象获取客户请求信息,并处理该请求,通过ServletResponse对象向客户返回响应结果。
在destroy方法中,可以释放Servlet所占用的资源。
HTTP请求由3个部分构成,分别是:
请求方法URI协议/版本
请求头(Request Header)
请求正文
HTTP响应也由3个部分构成,分别是:
协议 状态代码 描述
响应头(Response Header)
响应正文
创建用户自己的HttpServlet类,通常涉及下列4个步骤:
1. 扩展HttpServlet抽象类;
2. 覆盖HttpServlet的部分方法,如覆盖doGet()或doPost()方法;
3. 获取HTTP请求信息,例如通过HttpServletRequest对象来检索HTML表单所提交的数据或URL上的查询字符串。无论是HTML表单数据还是URL上的查询字符串,在HttpServletRequeset对象中都以参数名/参数值的形式存放,可以通过以下方法检索参数信息:
getParameterNames():返回一个Enumeration对象,它包含了所有的参数名信息。
getparameter(String name):返回参数名name对应的参数值。
getParameterValues():返回一个Enumeration对象,它包含了所有参数值信息。
4. 生成HTTP响应结果。通过HttpServletResponse对象可以生成响应结果。
Servlet容器在启动时会加载Web应用,并为每一个Web应用创建唯一的ServletContext对象。可以把ServletContext看成是一个Web应用的服务器端组件的共享内存。
在Servlet容器中设置的属性,在Web应用运行期间一直存在。当Web应用被关闭时,Servlet容器会销毁ServletContext对象,存储在ServletContext对象中的属性自然也不复存在。不同的Web应用的ServletContext各自独立。
当用户开发自己的Servlet类时,Servlet类必须扩展以下两个类中的一个:
Generic Servlet类
HttpServlet类
ServletRequest接口中封装了客户请求信息,如客户请求方式、参数名和参数值、客户端正在使用的协议,以及发出客户请求的远程主机信息。
ServletResponse接口为Servlet接口提供了返回响应结果的方法。
Servlet的生命周期开始于被封装到Servlet容器中,结束于被终止或重新装入时。Servlet的生命周期分为3个阶段:初始化阶段、响应客户请求阶段和终止阶段。在java.servlet.Servlet接口中定义了3个方法init()、service()和destroy(),它们将分别在Servlet的不同阶段被调用。
在Servlet的整个生命周期中,init方法只会被调用一次。
对于到达Servlet容器的客户请求,Servlet容器将创建特定于这个请求的ServletRequest对象和ServletResponse对象,然后调用Servlet的service方法。service方法从ServletRequest对象获取客户请求信息,并处理该请求,通过ServletResponse对象向客户返回响应结果。
在destroy方法中,可以释放Servlet所占用的资源。
HTTP请求由3个部分构成,分别是:
请求方法URI协议/版本
请求头(Request Header)
请求正文
HTTP响应也由3个部分构成,分别是:
协议 状态代码 描述
响应头(Response Header)
响应正文
创建用户自己的HttpServlet类,通常涉及下列4个步骤:
1. 扩展HttpServlet抽象类;
2. 覆盖HttpServlet的部分方法,如覆盖doGet()或doPost()方法;
3. 获取HTTP请求信息,例如通过HttpServletRequest对象来检索HTML表单所提交的数据或URL上的查询字符串。无论是HTML表单数据还是URL上的查询字符串,在HttpServletRequeset对象中都以参数名/参数值的形式存放,可以通过以下方法检索参数信息:
getParameterNames():返回一个Enumeration对象,它包含了所有的参数名信息。
getparameter(String name):返回参数名name对应的参数值。
getParameterValues():返回一个Enumeration对象,它包含了所有参数值信息。
4. 生成HTTP响应结果。通过HttpServletResponse对象可以生成响应结果。
Servlet容器在启动时会加载Web应用,并为每一个Web应用创建唯一的ServletContext对象。可以把ServletContext看成是一个Web应用的服务器端组件的共享内存。
在Servlet容器中设置的属性,在Web应用运行期间一直存在。当Web应用被关闭时,Servlet容器会销毁ServletContext对象,存储在ServletContext对象中的属性自然也不复存在。不同的Web应用的ServletContext各自独立。