调用该servlet的init();初始化servlet对象。
然后调用service()方法----处理浏览器的请求的
(在这个方法内部调用了dopost和doget)
最后调用destroy()销毁serlet对象,重新部署项目关闭服务器的时候
IE:向服务器发送第2次请求
服务器:直接调用第1次产生的servlet的service方法
init()方法只会被调用一次
doGet()/doPost方法有多少次请求就会被调用多少次
destroy()方法只会被调用一次(重新部署项目关闭服务器的时候)
一,out对象:输出对像
与向浏览器输出有关
out.print();//把数据打印到浏览器
out.flush();把缓存中的内容压倒浏览器
二,response对象:响应对象
1,与重定向有关:发2次请求 不能带数据 地址栏发生变化
response.sendRedirect("xx.jsp/servlet");
2,与Servlet中得到out对象
PrintWriter out = response.getWrite();
3, 设置response的编码和浏览器编码
response.setContentType("text/html;charset=utf-8");
(response.setCharacterEncoding("utf-8")一般不用)
三,request对象:请求对象(域对象----能够保持数据的对象)
1,与浏览器带数据给服务器有关
requset.getParameter(参数);
参数:标签的name值
返回值:String
作用:根据name值获取标签的value
requset.getParameterValues(参数);
参数:复选框的name值
返回值:String[]
作用:根据name值获取标签的所有value值
2, 与设置浏览器带过来数据的编码有关
request.setCharacterEncoding(“utf-8”);//post提交
3, 与转发有关
resquest.getRequestDispatch(“xx.jsp/servlet”).forward(request,response);
4, 与服务器内部数据带数据有关
1.jsp---->2.jsp 1.jsp—>Servlet
request.setAttribute(key,value);
key:只能为String
value:可以为任意值
request.setAttribute(“list”,list);
request.setAttribute(“str”,“abc”);
5,得到服务器内部转过来的数据
request.getAttribute(参数)
参数:键
返回值:Object (转型)
作用:根据键来获取request域中的值
Object obj = request.getAttribute(“list”);
Object obj2 = request.getAtttibute(“str”);
request的生命周期:
产生:每次发送请求 就会产生一个新的request
销毁:服务器向浏览器发送响应立即销毁
作用范围:本页面有效,转发(服务器跳转)有效,重定向(客户端跳转)无效
四,session对象:会话对象
Servlet中获取session:HttpSession session = request.getSession();
会话:浏览器与服务器的一次通话。包含多次请求和
多次响应,关闭浏览器会话结束。
session的生命周期:
产生:当浏览器第1次发请求的时候产生
销毁:当会话结束或者浏览器与服务器无
数据交互30分钟自动被服务器销毁
原则上:一个浏览器对应的一个session
session的方法:
手动销毁session域对象
session.invalidate();
设置Session的有效期 1个小时 (默认是30分钟)
session.setMaxInactiveInterval(60*60);(注意:单位是秒)
销毁session中的键值对
session.removeAttribute(“str”);
销毁session中的值
session.removeValue(“str”);
作用范围:本页面有效,转发(服务器跳转)有效,重定向(客户端跳转)有效
应用:
1, 购物车
2,登陆验证
//注意:为null的不能作为equals的前面的比较对象(会报空指针异常)
if(“1”.equals(error)){
out.print(“账号或密码错误”);
}
存值
pageContext.setAttribute(“list”,list);
request.setAttribute(“list”,list);
session.setAttribute(“list”,list);
application.setAttribute(“list”,list);
取值
Object obj = pageContext.getAttribute(“list”);
Object obj = request.getAttribute(“list”);
Object obj = session.getAttribute(“list”);
Object obj = application.getAttribute(“list”);
五,application对象:应用对象
application的生命周期:
产生:应用部署产生
销毁:当应用关闭(重新部署或者关闭服务器)
1,网页聊天室
2, 统计浏览次数
六,pageContext对象
作用范围:本页面有效,重定向(客户端跳转)无效,转发(服务器跳转)无效
总结:四大域对象的使用原则:
★★★★★能用小的就不用大的。