浅谈生命周期

一、servlet生命周期

生命周期是指容器如何创建servlet实例、分配资源、调用其方法,销毁实例的过程

阶段一: 实例化(就是创建 servlet 对象,调用构造器)

创建servlet对象的过程 第一次访问的时候分两种情况;
第一种情况:当请求到达容器时,容器查找该 servlet 对象是否存在,如果不存在,才会创建实例。

第二种情况: 如果servlet对象存在 则不会在创建
当容器启动时或新部署了某个应用时,会检查 xml文件中 是否有 load-on-startup 配置 ;如果有 按照优先级来创建servlet实例
load-on-startup 参数值越小,优先级越高(最小值为 0,优先级最高)。

实验1:设置构造器,观察多次访问的时候和service方法执行先后
实验2:在配置文件中加入load-on-startup,观察实例化的时机

阶段二: 初始化

为 servlet 分配资源,调用 init(ServletConfig config);
方法config 对象可以用来访问 servlet 的初始化参数。
初始化参数是使用 init-param 配置的参数。
init 可以 override 重写。
    实验1:override重写 init方法,观察执行实际(和上边的实验配合)
    实验2:web.xml加入init-param,并通过取值config
    <init-param>
        <param-name>name</param-name>
        <param-value>zhangsan</param-value>     
    </init-param>
    ServletConfig config=getServletConfig();
    String add=config.getInitParameter("address");
    如果是有参的init那么不许要获取ServletConfig 
    name=config.getInitParameter("name");

阶段三: 就绪/调用

有请求到达容器,容器调用 servlet 对象的 service()方法。 
HttpServlet 的 service()方法,会依据请求方式来调用 doGet()或者 doPost()方法。
但是,这两个 do 方法默认情况下,会抛出异常,需要子类去override 重写。

阶段四: 销毁

容器依据自身的算法,将不再需要的 servlet 对象删除掉。
在删除之前,会调用 servlet 对象的 destroy()方法。
destroy()方法用于释放资源。
在 servlet 的整个生命周期当中,init,destroy 只会执行一次,而 service 方法会执行多次。

get和post的区别

1.get提交的时候 浏览器的地址栏 变化 显示

http://127.0.0.1:8080/web134/login.html
http://127.0.0.1:8080/web134/login?userName=”&userPwd=”
不安全
提交数据类型 文本 不超过255字符
缓存在浏览器历史状态中
2.post提交的时候 隐藏消息体
二进制文件
安全 长度没有限制
不会缓存在浏览器

tomcat
1.bin 放的一些工具
windows下运行
sartup.bat
shutdown.bat

linux下 运行
sartup.sh
shutdown.sh

lib jar包

config 配置文件
web service
temp
logs 日志

!!!!修改session 生命周期
优先级
1:在程序 maxinactiveIntaval
2:xml中
3:在tomcat config 配置文件 中

涉及到安全的html文件 放到web-inf下面 通过服务器内部跳转

保存用户状态 会话跟踪 session

session 和 cookie 的区别

1、session 存放服务器
键值对 KV对 存放
cookie 存放浏览器
不安全 4kb 存放浏览器安装目录下 230 左右的cookie
2、session 依赖 cookie

监听器与上下文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值