Servlet 接触很多,用的也很多,但其中的原理却不是很清楚,补补

来源:互联网 发布:量子力学 投影算符矩阵 编辑:程序博客网 时间:2024/04/30 18:13

什么是Servlet技术

   Servlet技术是Sun公司提供的一种实现动态网页的解决方案,它是基于JAVA编程语言的WEB服务器端编程技术。一个Servlet程序就是一个实现了特殊JAVA接口的类,它由支持Servlet(具有Servlet引擎)WEB服务器调用和启动运行。一个Servlet程序负责处理它所对应的一个或一组URL访问地址的请求,并接受客户端发出的访问请求信息和产生响应信息

       Servlet,可以实现动态的页面,可以针对不同的请求作出不同的响应,可以实现页面的流转,Servlet可以充当MVC模式中的Control模块,它可以控制信息的流向。

 

2.      Servlet作用:

获取客户端通过HTMLFORM表单传递的数据和URL后面的参数信息

创建对客户端的响应消息内容

访问服务器端的文件系统

连接数据库并开发基于数据库的应用

 

3.      Servlet基础知识

一个Servlet就是实现类javax.servlet.Servlet接口的JAVA类,它当中定义了Servlet的生命周期,定义了Servlet引擎与Servlet程序之间通信的协议约定。javax.servlet.GenericServlet实现了Servlet接口,实现了Servlet接口的基本特征和功能,能够接受客户端发出的请求和产生响应信息。而javax.servlet.http.HttpServlet又继承了javax.servlet.GenericServlet,所以我们编写的Servlet继承HttpServlet即可。

想要实现与客户端的交流,必须具备从客户端获取信息和把信息响应到客户端的能力,所以Servlet提供了二个关键的对象来封装这些信息。用于封装HTTP请求信息的HttpServletRequest对象,用于封装HTTP响应信息的HttpServletResponse对象。在Servlet引擎调用ServletService方法时传递进来这二个参数,通过这二个对象我们就能实现与客户端的通信

 

4.      Servlet生命周期

因为Servlet是由容器进行管理的,而每一个对象都有它的生命周期,只不过Servlet在这一点上体现的更加明显,它的生命周期是由容器控制的。Servlet的生命周期是指Servlet实例在创建之后到响应客户请求直至销毁的全过程

 

a.实例化Servlet对象:Servlet容器通过反射创建Servlet类的实例对象,只有当首次访问时才会创建Servlet对象,以后都会使用这个对象,这样会节省大量的内存,同时也带来的线程的安全问题

 

b.初始化:Servlet容器调用init()方法,通常会申请资源,通过ServletConfig接口传递信息给Servlet。在整个生命周期内只会被调用一次

 

c.服务: Servlet容器调用Service()方法,对客户端的请求作出响应,该方法会被调用多次。如果我们重写了Service()方法容器就会调用该方法,不会调用doGet()或者doPost()方法,如果没有重写,容器就会判断是get请求还是post请求,然后再调用相应的方法, 这些方法是运行的在多线程状态下的。

 

d.销毁: Servlet容器调用destory()方法,释放Servlet实例,回收所占用的资源。

 

5.      Servlet的调用过程

a)        解析web.xml文件中配置的Servlet的名称

b)        装载类(WEB-INF/classes|WEB-INF/lib/*.jar),设计到了JAVA类装载器的问题

c)        实例化Servlet对象:Servlet ser=(Servlet)(Class.forName("servlet的类名")).newInstance();

d)        调用Servletservice()方法: ser.service(request,response);

原创粉丝点击