java Servlet接口作用域生命周期

本文介绍了Servlet中的三种作用域:request、session和application的作用及应用场景,并通过示例代码展示了它们的生命周期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Servlet接口作用域有三种:request、session、application
这些作用域的使用可以让我们传递数据和存储数据,在使用作用域传递数据的时候,必须掌握作用域对应的周期和作用范围

通过eclipse里边代码的展示体现作用域的生命周期:

LoginServlet.java

    request.setAttribute("name", "111");//request设置name值

    HttpSession httpSession=request.getSession();
    httpSession.setAttribute("name", "222");//创建session作用域设置属性值

    ServletContext context = this.getServletContext();
    context.setAttribute("name", "333");

    request.getRequestDispatcher("OtherServlet").forward(request, response);//内部转发跳转

OtherServlet.java

    String name=(String)request.getAttribute("name");
    System.out.println(name);

    String name1=(String)request.getSession().getAttribute("name");
    System.out.println(name1);

    String name2=(String)getServletContext().getAttribute("name");
    System.out.println(name2);

创建了两个servlet文件,其中在LoginServlet中设置不同作用域下的name属性的值,name属性的值为string类型,然后再通过内部转发跳转到OtherServlet中处理获得不同作用域下的值,具体操作时:通发起不同请求、通过更换浏览器发起请求来测试作用域的生命周期

1.先运行LoginServlet设置name的属性值,程序自己跳转到OtherServlet,这样的话三个作用域都是有效的,所以会获得三个name属性的值。
这里写图片描述

2.先运行LoginServlet设置name的属性值,程序自己跳转到OtherServlet,然后再请求OtherServlet,输入url:
http://localhost:8080/ServletTest/OtherServlet
这时候输出会发现只有两个有效值,request作用域失效。
这里写图片描述

3.关掉第一次运行程序的浏览器,再重新换一个浏览器打开,请求OtherServlet的url,会发现只有最后一个有效。
这里写图片描述

总结:
request:只限于一次请求 可用于项目中当前操作功能相关
session:一次会话(多次请求) 开始 (用户向服务器发送请求的时候 ) 结束(丢失JsessionId值的时候(关闭浏览器)) 可用于项目中跟用户信息相关
application:tomcat启动时创建,tomcat关闭时销毁 可用于项目中与全局信息有关 比如快递配送地址

jsp的九大内置对象:

pageContext(pageContext)也包含了另外八大对象的引用

request(HttpServletRequest)

session(HttpSession)

application(ServletContext)

response(HttpResponse)

config(ServletConfig)

out(JspWriter)

page(Object)

exception(Throwable)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值