一、servletcontext(application)域对象:
servletcontext是web应用中最大的作用域,可以获取到全局的初始化参数,做到所有servlet之间的数据共享
常见方法:
1.向域对象存储数据: void setAttribute(String name,Object value)
//获取页面作用域对象
ServletContext sc = getServletContext();
//给对象存数据
sc.setAttribute(String name,Object value);
2.在域对象中获取数据:Object getAttribute(String name)
//获取页面作用域对象(作用域是全局的servlet)
ServletContext sc2 = getServletContext();
//取值
sc2.getAttribute(String name);
3.删除域对象的数据:void removeAttribute(String name)
//获取页面作用域对象
ServletContext sc3 = getServletContext();
//删除对象内的数据
sc3.removeAttribute(String name);
二、request域对象(同一个请求级别):
request域对象作用在处理同一个请求(request)的页面中使用的,是在做内部转发到的时候,可以让域对象带着请求数据转发到另一个servlet中进行处理响应。
常见方法:
1.获取用户从客户端发送到服务器有name属性指定的参数数据: getParameter(String name)
//获取用户输入发送到服务器指定的name属性值
String str = request.getParameter("(定义的name属性名)");
2.给请求容器request域对象存数据:setAttribute(String name,Object value)
//给request容器存数据
request.setAttribute(String name,Object value)
3.在域对象中获取数据:Object getAttribute(String name)
//获取request容器数据
request.getAttribute(String name)//name与存入时一致
4.删除域对象的数据:void removeAttribute(String name)
//删除request容器数据
request.removeAttribute(String name)
5.获取转发器对象:getRequestDispatcher(String path)
//带着用户的请求和响应转发到next的servlet中处理
req.getRequestDispatcher("/next").forward(request,response);
6.设置请求的编码表:setCharacterEncoding(String env)
//是指请求的编码表为utf-8
request.setCharacterEncoding("utf-8")
三、session域对象(同一个会话级别):
当一个浏览器向服务器发来请求时session实例化并调用init()方法进行实例化(单例)。用户用这个浏览器多次请求服务器的情况就是会话技术。就是session的作用域。
常用方法:
1.获取session对象:getSession()
//获取session对象
HttpSession session = request.getSession();
2.给session容器存数据 setAttribute(String name,Object value)
//给session容器存数据
session.setAttribute("(key名)",value值)
3.在session容器取数据 session.getAttribute("(key名)")
//在session容器取数据
session.getAttribute("(key名)")
4.删除session容器某个数据
//删除session容器某个数据
session.removeAttribute("(key名)")
5.使session容器失效(立即使当前会话失效) session.invalidate()
//使session会话失效,一般用于退出登录
session.invalidate()
以上就是servletcontext(全局容器)request(请求容器)session(会话容器)的常见方法和作用域。在平时使用中一定要根据自己的使用场景进行判断使用。request是配合转发使用的。