servlet学习--运行机制
servlet运行流程解析
一 什么是servlet
servlet是运行在服务器上的小程序 主要作用是收集来自用户的输入,操作数据 将最后的结果返回给浏览器。
二 静态网页 动态网页比较
静态页面:web页面的数据是不变的,服务器存在的是一个个纯html文件,当客户端(浏览器)发出http请求时,
服务器根据请求的url地址找到相应的html文件,响应给浏览器。
动态网页:web页面访问的数据在不同的时间一直在改变,因此服务器除了显示html标记外,还需要操作一些功能,例如
操作数据库,然后将操作后的结果和html标记一起生成新的html代码,最后返回给客户端。
三 servlet 生命周期:
1 初始化 init()只调用一次,第一次创建servlet时被调用,后续请求时不再被调用(只调用一次)
2 处理客户端请求 调用service()方法 执行实际任务,处理客户端请求 去参数 调用 执行处理
3 终止方法: destroy()只在servlet生命周期结束时(关闭服务器时)被调用(只调用一次)
终止包括 关闭数据库连接,停止后台线程
注意 : 该方法被调用后 servlet被销毁,但没有被立即收回.0,再次请求时,并没有被重新初始化垃圾回收
四 执行流程
浏览器向服务器发出请求 ,服务器根据ip地址,域名确定是否连接。连接成功后,创建请求头和响应头 第一个http 请求将委派到servlet,之后加载servlet容器,servlet引擎调用sercive()方法,执行请求。 执行完成后,servlet 将结果放入Response头部中 ,最后将之前的请求头和响应头一起发送给服务器(为什么将请求头和响应头一起发 送给内部服务器,就好比你下完订单,客服给你处理完,你是不是要拿着订单和商品检查一下),最后由服务器发 送给客户端。
注意: 处理中文乱码问题 服务器默认的为 iso-8859-1 编码 我们设置的浏览器字符编码为UTF-8 所以注意中文乱码问题