servlet中的三大域对象——request、session 、application (ServletContext)

这三大域对象都的三个方法
设置属性信息:void setAttribute(String name,Object value)
获取属性值:Object getAttribute(String name)
移除属性信息:void removeAttribute(String name)

在这里要介绍两个概念:参数、属性(域属性)
参数:在javaWeb中 浏览器通过form或url传递的值叫做参数,获取参数的方法时reuqest.getParameter(“参数名”),他是没有set方法的
属性:服务器自己设置的属性,它有上述的三个方法

一、request域的使用:(作用范围为一个请求链)
通常在两个servlet之间通过请求转发来实现属性的传递与共享 ,值得注意的是request的setAttribute()和getAttribute()只能在一次请求中起作用,也就是说他的作用域只是在单次请求、单子响应
常用的方法:

  • setAttribute(String name;Objecct value):设置属性
  • getAttribute(String name):设置参数
  • getRequestDispater("/资源").forword(request,response) :请求转发

二、session(会话)的介绍(作用范围为整个会话:一个会话中只有一个用户)
一个会话内中的多个请求多个响应中的中想要共享数据那么就要使用session
相关的方法:
在servlet中
request.getSession().setAttribute() :设置属性
request.getSession().getAttribute():获取属性
在jsp中session是内置对象不用得到session
session.setAttribute() :设置属性
session.getAttribute():获取属性

session的作用

  • 一个会话内中的多个请求多个响应中的中实现共享数据
  • 页面保护,只有登录之后再session中设置值之后才能进行访问其他页面,也就是说,其他页面在访问之前必须要通过session进行页面的校验

三、application (ServletContext)介绍:(作用范围为整个应用程序)
一个项目只有一个ServletContext对象,对象名通常是application。
也就是说可以从多个servlet中获取这唯一一个对象,使它给多个servlet传递多个数据。
这个对象随着服务器的启动而创建,随着服务器的关闭而死亡。

怎么获取到servletContext对象?
当你的类继承了HttpServlet后,其父类提供了一个方法用于获取servletContext的对象,这个方法就是getServletContext()

ServletContext是一个“域对象”
什么是域对象?
粗略的解释就是 域对象是用来给多个servlet传递数据的
所以域对象必须要有存取数据的功能
存数据:void setAttribute(String name,Object value)
取数据: void getAttribute(String name)
删除一个键值对 :void removeAttribute(String name)
获取所有域属性的名称:Enumeration getAttributeNames()

获取初始化参数
我们知道一个servlet也可以获取初始化参数,但是一个servlet只能用它自己的配置参数。
现在我来讲一讲怎么设置让所有的servlet都可以使用的初始化参数(web.xml文件)。我们要通过<context-param来设置>

name value 1 2 3 4 我通过ServletContext对象.getInitParameter(String name)来获取

得到真实的资源路径(带盘符的)
ServletContext对象.getRealPath("/资源文件")

总结:
request的域是在一次请求中创建,在下一次请求前销毁
session的域是一个用户在使用浏览器是创建,在关闭浏览器是销毁

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值