本人新手,四大域的用法有点稀里糊涂!就整理了四大域的输入输出代码!
有四大域对象 ServletContext ServletRequest HttpSession PageContext
下面我自己整理了四大域一些输入输出代码!
1. ServletContext
生命周期:
当web应用被加进容器时,创建代表整个web应用的ServletContext对 象,当服务器关闭,或web应用被移除时,ServletContext对象跟着被销毁。
作用范围:
整个应用
代码:
此代码实现的功能:在Aservlet中保存的代码参数在Bsevlet中输出
Aservlet:
ServletContext st = this.getServletContext();
st.setAttribute("name1", "zhangsan");
st.setAttribute("name2", "李四");
Bservlet
ServletContext aplication = this.getServletContext();
String string1 = (String)aplication.getAttribute("name1");
String string2 = (String)aplication.getAttribute("name2");
System.out.println(string1);
System.out.println(string2);
2.ServletRequest
生命周期:
在service方法调用前由服务器创建,传入service()方法,整个请求结束,ServletRequest生命周期结束。
作用范围:
整个请求链。(请求转发也存在,请求转发属于一次请求。)
代码:
此段代码实现的功能 : 在Aservlet保存的参数在Bservlet输出
Aservlet
request.setAttribute("name1", "张三");
request.setAttribute("name2", "jack");
//response.sendRedirect("/demo7/Bservlet");//这种方式重定向域名会改变!但不会将参数传递到Bservlet
request.getRequestDispatcher("/Bservlet").forward(request, response);
Bservlet
String sZs = (String)request.getAttribute("name1");
String sjack = (String)request.getAttribute("name2");
System.out.println(sZs);//张三
System.out.println(sjack);//jack
3.HttpSession
生命周期:
服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。
在第一次调用request.getSession()方法时,服务器会检查是否已经有对应的session,如果没有就在内存中创建一个并返回。
当一段时间内,session没有被使用(默认是30分钟),服务器会销毁该session。如果服务器非正常关闭(强行关闭),还未到期的session也会被销毁。
另外,调用session的invalidate()方法可以立即销毁session。
注:在jsp中:session是jsp的内置对象(偶不理解啥叫内置对象啊),不用创建就可直接使用!
作用范围:
一次回话。
代码:
此段代码实现的功能:在Aservlet保存参数session在Bservlet中输出
Aservlet
HttpSession session = request.getSession();
session.setAttribute("name1", "张三");
session.setAttribute("name2", "Tom");
response.sendRedirect("/demo7/Dservlet");
Bservlet
HttpSession session = request.getSession();
Enumeration<String> eName = session.getAttributeNames();
while(eName.hasMoreElements()) {
String sName = eName.nextElement();
System.out.println(session.getAttribute(sName));
}
4.PageContext
暂时没学到,先不整理!
部分内容引用如下来源
作者:Zhuang_ET
链接:https://www.jianshu.com/p/6c02951267d8
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。