Servlet是小型的、与平台无关的Java类, 它被编译成结构中立的字节码,由Web服务器动态加载和执行。Servlet通过容器实现的request和response实例与客户交互。这种request-response模型是基于HTTP协议的行为。servlet可以被认为是服务端的applet。servlet被web服务器加载和执行一样, 与applet不同的是servlet没有GUI。servlet通过web客户端从客户端接受请求,实行某种作业,然后返回结果。
编写servlet的一般顺序:
- 前期准备工作,在init()中编写初始化代码实现, 如数据库连接。
- 覆盖doGet()或其他方法,编写核心处理过程。
- 设置响应头部信息,如内容类型, 字符编码。
- 使用response的getWriter()或getOutputStream()方法获得输出流。
- 使用输出流写HTML文档头部。
- 使用request的getParameter()或getParameterName()等方法获得请求参数及其值。
- 处理请求
- 响应输出
- 写HTML文档尾部
- 善后工作,如断开数据库连接。
servlet的基本执行流程:
- 加载被请求servlet。servlet只需被加载一次,然后servlet的多线程能力,可以处理多个客户端请求。
- 初始化servlet, init()方便被调用
- 调用相应方法doGet(),doPost()等
servlet生命周期:
- 服务器加载并初始化一个servlet
- 该servlet处理一个或多个客户请求
- 服务器卸载该servlet