Java Web程序设计——Servlet基础(一)
思维导图如下:
Servlet概述
- 它是运行在Web服务器端的一个Java小程序,简单来说,就是一个Java类。在使用Servlet时,需要导入javax.servlet下的jar包。比如Tomcat服务器提供了servlet的servlet-api.jar包,所以在开发时用Tomcat服务器就不需要再导入servlet的jar包了。
- 它是一个用来被用户访问的资源,同时也是一个动态资源。
- 它是基于HTTP协议的,主要用来接收客户端的发送请求,处理请勿,把数据响应给客户端。
Servlet应用程序的体系结构如图:
特点
- 方便:Servlet提供了大量的实用工具,比如:很难完成的HTML表单数据、读取和设计HTTP头
- 跨平台:Servlet用Java类编写,可以在不同操作系统平台和不同应用服务器平台下运行
- 灵活性和可扩展性:采用Servlet开发的web应用程序,由于Java类的继承性及构造函数等特点,使得应用灵活,可随意扩展
Servlet开发入门
Servlet接口及其实现类
在Servlet接口中定义了5个抽象方法:
- void init(ServletConfig config):在web服务器创建Servlet对象以后,执行这个初始化方法
- ServletConfig getServletConfig():用于获取Servlet对象的配置信息,返回Servlet的ServletConfig对象
- String getServletInfo():返回一个字符串,包括关于Servlet的信息,比如:作者、版本和版权等信息
- void service(ServletRequest req, ServletResponse res):服务方法,用来接收客户端发送的请求,并且响应数据到客户端
- void destroy():执行了这个方法,销毁了Servlet对象
其中init()、service()、destroy()这3个方法可以表现Servlet的生命周期,它们汇总某个特定的时刻被调用。(后面会讲到)
还有两个默认的接口实现类:
- GenericServlet:一个抽象类,实现了Servlet接口
- HttpServlet:是GenericServlet的子类,它继承了GenericServlet的所有方法,并且为HTTP请求中的POST、GET等类型提供了具体的操作方法
创建Servlet三种方式
- 直接实现Servlet接口
- 继承GenericServle类
- 继承HttpServlet类
一般在开发中,创建Servlet通常去继承HttpServlet
例如:
class MyServlet extends HttpServlet{
重写所需要的方法
}
实现第一个Servlet程序
通过eclipse创建Servlet,部署到Tomcat服务器:
1.在eclipse中创建一个动态web项目,此处命名为webfirst
2.在src目录下创建一个包,此处命名为webfirst.servlet
在这个包下创建一个类,命名为HelloWorldServlet
注:此处要导入jar包,将servlet-api放入WebContent下的WEB-INF的lib文件夹下面,此时jar图标会变化成一个奶瓶形状
3.输入内容
4.访问Servlet,提供Servlet的访问路径
5.部署项目,启动服务器
在浏览器中访问,出现这个页面就已经实现了Servlet程序
Servlet的生命周期
- Servlet的生命周期和人的一样
- 从Servlet对象被创建,经过使用Servlet对象,到最终Servlet对象被销毁,整个过程就是Servlet的生命周期。
如图描述Servlet的生命周期:
与生命周期相关的三个方法
- init(ServletConfig config):初始化方法,首次访问Servlet,Servlet对象会被创建,执行初始化方法,执行一次。
- service(ServletRequest req, ServletResponse res):服务方法,每次访问Servlet时,服务方法都会被执行,执行多次。
- destroy():销毁方法,在服务器正常关闭时,会执行销毁方法,执行一次。
方法演示操作:
1.首先在eclipse中新建一个类,同上第一、二步
2.书写内容
3.配置路径
4.部署项目,启动服务器,打开浏览器,多访问几次,在eclipse控制台中能够看到如下
关闭服务器,此时会出现