Servlet简介
什么是Servlet
Servlet是一个符合特规范的Java程序,是一个基于java技术的Web组件。Servlet运行在服务器端,由Servlet容器所管理,用于处理客户端请求并做出响应。
Servlet主要用于生成动态的内容,它可以接受和处理请求,并动态生成HTML内容对客户端进行响应 过程如下:
Servlet API
Servlet主要包含在两个包内,javax.servlet包中的类和接口时通用的不依赖协议的Servlet API,包括Servlet,ServletRequst,ServletResponse,ServletConfig,ServletContext接口及抽象类GenericServlet。
javax.servlet.http包中的类和接口是用于支持HTTP协议的Servlet API。
Servlet接口
Servlet接口定义了所有Servlet需要实现的方法,常用方法如下所示:
GenericServlet抽象类
GenericServlet抽象类实现了Servlet接口和ServletConfig接口,给出了除service()方法外的其他方法的简单实现,定义了通用的,不依赖于协议的Servlet。常用方法如下:
经验: 通常只需要重写不带参数的init()方法,如果重写带参数的init()方法,则应包含super.init(config)代码。
如果要编写一个通用的Servlet,只需要继承自GenericServlet类,实现service()方法即可。
HttpServlet抽象类
大多数的网络应用是通过HTTP协议访问资源的,因此我们编写的Servlet大多也是应用于处理HTTP协议的请求和响应,HttpServlet类继承自GenericServlet类,具有与GenericServlet类类似的方法,并提供了HTTP相关的实现。
经验:HttpServlet的Service()发给发相当于一个分发器,可以根据请求方法的类型,调用响应的doXXX()方法。所以在编写Servlet时只需要根据应用的需要,重写doGet()或doPost()方法即可。
ServletConfig接口
Servlet容器使用ServletConfig接口的实例在Servlet初始化期间向其传递配置信息。ServletConfig接口方法如下所示:
ServletContext接口
一个ServletContext接口的实例表示一个Web应用的上下文,Servlet使用ServletContext接口定义的方法与它的Servlet进行通信。JSP内置对象application就是ServletContext的实例。
Servlet容器厂商负责提供ServletContext接口的实现,容器在应用程序加载时创建ServletContext对象,ServletContext对象被Servlet容器中的所有Servlet共享。
ServletRequest和HttpServletRequest接口
ServletRequest接口
当客户请求时,由Servlet容器创建ServletRequest对象用于封装客户的请求信息,这个对象将被容器作为service()方法的参数之一传递给Servlet,Servlet能够利用ServletRequest对象获取客户端请求数据
HttpServletRequest接口
HttpServletRequest位于javac.servlet.http包中,
ServletResponse和HttpServletResponse接口
ServletResponse接口
Servlet容器在接受客户请求时,除了创建ServletRequest对象用于封装用户的请求信息外,还创建了一个ServletResponse对象。用于封装响应的数据,并且同时将这两个对象一并作为参数传递给Servlet,Servlet利用ServletRequest对象获取客户端请求数据,经过处理后由ServletResponse对象发送响应数据。
2.HttpServleResponse接口
Servlet体系结构
Servlet系统结构
Servlet的应用
创建Servlet 示例:
package com.ch07yx.servlet;
import java.io.*;
import ja