Servelt在JavaEE开发中,占据着举足轻重的作用,起到了连接程序和服务器的重要功能。为何称其为规范呢?它规范了那些东西呢?对于Servlet对象又该如何认识它,了解它呢?
我们先来看一张图片:
这是一张对于我们JavaWeb项目运行流程的简化图,这里边出现了浏览器,服务器,项目程序,数据库四个实体,在这四个实体中间出现了http协议,Servlet规范,JDBC规范三个规则。JDBC前边介绍过,是由sun制定,各种数据库厂商实现,JAVA开发程序员调用的,在数据库厂商和Java程序员中间起到了规范的作用,需要两方都去遵守。而http协议则是由W3C制定的协议,需要浏览器厂商和服务器厂商来实现。而13规范之一Servlet则是由Sun制定,我们Java程序员来实现的,所以说是非常重要的。有了Servlet这套规范,我们的将我们编写的程序部署到Tomcat,weblogic,JBoss等服务器中,因为我们有这套规范约束着呢!下边我们来看一下Servlet的相关知识。
一,Servlet是什么? 简单来说Servlet就是满足我们Servlet规范的“服务器端的小Java程序”。
当然在Servlet+Jsp开发时,都是做的B/S开发,在JavaEE.Servlet.Http包下的HttpServlet已经实现了Servlet接口,我们只需要继承HttpServlet,根据我们页面传输的方式重写里边的doPost或者doGet方法,就可以直接写我们的业务程序了。是非常方便的。
二,Servlet的生命周期:
这里需要我们注意的是:Servlet对象,在服务器中是在“单实例多线程环境下”运行的,所以会存在线程安全的问题。
三,讲了Servlet是什么,生命周期,最后我们看一下Servlet的创建本质过程: 首先说一下,每使用一个Servlet时,我们需要在web.xml中进行相关的配置:
创建过程需要按照它的生命周期来看: 1,创建:通过用户的请求路径,解析web.xml文件,获取Servlet的完整类名,通过反射进行实例化对应的Servlet对象: Class c = Class.forName(“Servlet类全名”); Servlet servlet = (Servlet)c.newInstance();
2,创建后进行初始化,调用init方法 servlet.init(config); //初始化方法,对象第一次被创建之后调用。只执行一次。(初始化时刻)
3,用户调用时,执行service方法: servlet.service(request,response); //核心业务方法,用户访问一次必然执行一次。(执行多次) …….. 4,销毁: servlet.destroy();
正好对应着上边的生命周期,这里想说的就是Servlet也是通过反射机制进行的创建,明白我们底层的创建过程。
Servlet在开发中起着举足轻重的作用,明白它的原理对我们以后的开发学习非常有用。
|
|