java servlet 对象_java servlet的域对象

网络编程中的域对象详解:ServletContext、request、session
本文详细介绍了网络编程中常见的三种域对象:ServletContext、request和session的作用范围及其使用方法。ServletContext作用于整个应用,可用于多个请求间共享资源;request作用仅限一次请求,需通过转发实现资源共享;session则在一次会话内有效,关闭浏览器会话结束。文章还阐述了session的生命周期,并总结了三者的作用域范围。

在进行网络编程中的项目时 经常用到的域对象主要包括以下三种:

1、 ServletContext  作用范围比较大

代码如下:

//一个请求代码:

ServletContext sc = request.getServletContext();

sc.setAttribute("name", "一个请求的共享资源在另一个请求中可以直接访问.可以多个请求之间共享资源");

//另一个请求代码:

ServletContext sc = request.getServletContext();

String ss = (String) sc.getAttribute("name");

System.out.println(ss);

2、request  作用范围只限于一次请求  多个请求之间共享资源需要做请求转发操作

代码如下:

request.setAttribute("name", "鸡腿好吃");

//直接共享数据是不行的 我们需要做请求转发 才能共享会话数据

//创建转发器对象

RequestDispatcher rd = request.getRequestDispatcher("qu");

rd.forward(request, response);

//另外一个请求

//获取共享数据

String name = (String) request.getAttribute("name");

3、httpsession 作用范围 一次会话   (一次会话可以有多个请求)    当浏览器关闭会话结束

//一个请求

HttpSession hs = request.getSession();

String sid = hs.getId();

response.getWriter().write("这是一个sessionid");

System.out.println(sid);

//另一个请求

HttpSession hs = request.getSession();

String sId = hs.getId();

System.out.println(sId);

//最后结果返回的都是同一个sessionId 它们之间共享sessionId

4、HttpSession的生命周期

1、request.getSession();就被创建

2、活着 只要没有超过session的最大超时时间  也没有调用invalidate 方法该session对象都是活着的

3、死亡:当超过session的最大超时时间及调用了invalidate 方法 该session对象就死亡

总结:作用域范围图:

22778a42c60a2260bbd0bd3dfcbd3d90.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值