说说你对servlet 的理解?

Servlet入门

 我们都知道网页有静态和动态之分。静态的只能看看,而动态可以实现客户端和服务器的交互,比如登录的功能,我们输入用户名和密码后提交到服务器,服务器会处理这些信息,如果正确的话则进入主页。若不正确,则给出提示信息。

Servlet是sun公司提供的一门用于开发动态web资源的技术。按照这套规范写出来的Servlet可以放置到web应用中在Servlet容器中运行.

 

Servlet的继承结构

Servlet------接口

      –GenericServlet------抽象类----只有其中的service方法是抽象方法

             –HttpServlet------类(在GenericServlet类的基础上对HTTP协议进行了优化,并且实现了其中的service抽象方法,在其中判断了请求的请求方式,并根据请求方式的不同分别调用不同的doXXX()方法)

                        –自己的servlet

ServletRequest

      –HttpServletRequest

ServletResponse

      –HttpServletResponse

 

实现Servlet的三种方式

方式一:编写一个类去实现Servlet接口(必须重写Servlet接口里面所有的抽象方法)

方式二:编写一个类去继承GenericServlet抽象类(重写生命周期的service方法(抽象方法))实现这个Service方法在其中写处理请求的代码

方式三:编写一个类去继承HttpServlet抽象类(没有抽象方法!根据页面的提交方式决定重写doGet或者doPost方法)

 

Servlet的调用过程

(1)在浏览器输入地址,浏览器先去查找hosts文件,将主机名翻译为ip地址,如果找不到就再去查询dns服务器将主机名翻译成ip地址。

(2)浏览器根据ip地址和端口号访问服务器,组织http请求信息发送给服务器。

(3)服务器收到请求后首先根据Host请求头判断当前访问的是哪台虚拟主机。

(4)服务器根据http请求头中的请求URI判断当前访问的是哪个web应用。

(5)服务器根据http请求头中的请求URI判断当前访问的是web应用中的哪个web资源。

(6)检查web应用的web.xml文件,如果根据路径找到具体的servlet处理类的全路径名交给该servlet处理,如果找不到就交给缺省servlet处理。

(7)这个过程中浏览器只知道自己发出来http请求,不久就收到了http响应,浏览器不知道也不关心服务器内部是如何处理的。浏览器和服务器之间的关系是非常单纯的,只有HTTP协议。

(8)解析请求、封装RequestResponse对象、创建Servlet、调用Service方法都是服务器自动进行的,开发人员只需要写好Servlet配置进容器中即可,无需操心具体的底层实现

servlet的生命周期

 

Servlet第一次被访问到时创建对象,创建出来后立即执行init方法执行初始化的操作。

从此以后该对象一直驻留在内存中为后续的对这个Servlet的请求进行服务。

在存活期间,每次对Servlet 的调用都会导致Service方法的执行,根据Http请求方式,调用service()方法中对应的doGet()或doPost()方法,并将响应结果返回。

直到服务器关闭或web应用移除出容器时,随着web应用的销毁Servlet对象销毁掉,在销毁之前调用destory方法执行善后工作。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值