application 和 session 的区别
TestServlet1.java:
public class TestServlet1 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); ServletContext application = this.getServletContext(); application.setAttribute("name1","Tom"); Object o1 = application.getAttribute("name1"); out.println(o1); HttpSession session = request.getSession(); session.setAttribute("name2", "Cat"); Object o2 = session.getAttribute("name2"); out.println(o2); }
TestServlet2.java:
public class TestServlet2 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); ServletContext application = this.getServletContext(); out.println(application.getAttribute("name1")); HttpSession session = request.getSession(); out.println(session.getAttribute("name2")); }
既然我运行 TestServlet2 后两个(name1, name2)都能得到,那两者有啥区别呢?一般两者在什么情况下用呢?希望举一个具体的场景例子。
0
收起
正在回答
1回答
你可以这么理解,session作用域可以存储一次会话的的相关数据,在会话结束后,存储在session中的数据就会被销毁,默认销毁时间20分钟。而application 多个用户共享的应用级别的作用域,在服务器端,相比session,这个存在时间是最长的,只有当关闭服务器的时候才死亡!所以数据可以在application中存放很长时间,祝学习愉快~
从网页搭建入门Java Web2018版
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10205 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星