Servlet(Servlet Applet): 是用JAVA编写的服务器端程序。
定义:狭义上:指java语言实现的一个接口
广义上:指任意一个实现了这个Servlet接口的类。
作用:主要用于交互式地浏览和修改数据,生成Web内容。
这个过程主要有:(1)客户端发送请求到服务器端
(2)服务器将请求信息发送至Servlet
(3)Servlet生成响应内容并将其传给服务器。
(4)服务器将响应返回给客户端。
一个Servlet就是Java编辑语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编辑模式型来访问的应用程序。虽然Servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。
Servlet看起来像是通常的Java程序。Servlet导入特定的属于javaServlet API的包。因为是对象字节码,可动态地从网络加载,可以说Servlet对Server就如同Applet对Client一样,但是,由于Servlet运行Server中,它们并不需要一个图形用户界面。从这个角度看,Servlet也被称为FacelessObject(隐形的根类).
二、Servlet的生命周期
1.客户端请求该Servlet;
2.加载Servlet类到内存;
3.实例化并调用init()方法初始化该Servlet;
4.service()(根据请求方法不同调用doGet()或者doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions();)
5.destroy()销毁。
三、Servlet的通讯
Servlet:JAVA编写的在服务器上运行的小程序/类.接收client请求,处理,响应.
1.include:包含
应用场景:在复杂动态网页中,有公共部分可提取,可以把公共部分分别定义成servlet,使用include合并到一起.
使用: //获取请求分发对象
RequestDispatcher rd = request.getRequestDispatcher("/url-pattern");
//include
rd.include(request, response);
特点: 1)地址栏不变
2)服务器端的转发(在服务端运行)
3)看到的是所有servlet的结果之和
4)共享同一个request
2.forward:转发
应用场景: 一个Servlt从数据库中取出数据,转到另外一个servlet进行显示
使用: //获取请求分发对象
RequestDispatcher rd = request.getRequestDispatcher("/url-pattern");
//forward
rd.forward(request, response);
特点: 1)地址栏不变
2)服务器端的转发(在服务端运行)
3)永久转向(看到的是最后一个servlet的处理结果)
4)共享同一个request