栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

session域和application域的数据共享情况

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

session域和application域的数据共享情况

  • session域是基于会话的,即网页关闭后数据消失,session清空。创建session对象:
// 创建session对象
		HttpSession session = request.getSession();
  •  application域是基于服务器的,即当服务器(比如tomcat)关闭时,内部的application域的数据清空。
  • page指当前页面。只在一个jsp页面里有效 。
  • request 指从http请求到服务器处理结束,返回响应的整个过程。在这个过程中使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。

比较直观的理解的话,可以参照下面的代码来看(一个累加器)

session:

package servlet;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class PrivateSum extends HttpServlet {
	
	public void init() {
	}

	
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		int count;
		// 设置输出类型和编码格式
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		// 通过表单中的控件名称获得控件的value值
		String str = request.getParameter("number");
		// 将字符串转为整型数据
		int num = Integer.parseInt(str);
		// 创建session对象
		HttpSession session = request.getSession();
		// 返回由count指定的会话属性
		String o = (String) session.getAttribute("count");
		if (o != null) {
			count = Integer.parseInt(o);
		} else {
			count = 0;
		}
		// 累加,但在同一个session中会一直累加
		count += num;
		String result = String.valueOf(count);
		session.setAttribute("count", result);
		out.println("现在的累加结果是" + count);
	}

	
	public void destroy() {
	}
}

application:

package servlet;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;



public class PublicSum extends HttpServlet
{
	//声明上下文对象
	ServletContext sc;
	
	public void init()
	{
		//实例化上下文对象
		sc=this.getServletContext();    
	}
	public void doGet(
			HttpServletRequest request,
			HttpServletResponse response)throws ServletException,IOException{
		int count;									//计数器
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out=response.getWriter();
		//通过表单中的控件名称获得控件的value值
		String str=request.getParameter("number");   
		int num=Integer.parseInt(str);    			//字符串型转变为整型
		//返回Servlet上下文中count的对象,如没有count的对象,则返回null
		String o=(String)sc.getAttribute("count");
		
		if( o != null ) {   //如果在当前服务器中,曾调用过该应用程序,则有count的对象。
			count=Integer.parseInt(o);
		} else {
			count=0;
		}
		// 累加,同一个服务一旦户动,会一直累加
		count += num;
		String result = String.valueOf(count);    	//整型转变为字符串型 
		sc.setAttribute("count",result);       		//把result对象的值赋给count对象,即count的值为result的值
		out.println("现在的累加结果是"+count);
	}
	public void destroy(){}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842512.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号