【JAVA】JSP中的session、cookie、application的区别和操作实例(菜鸟的理解方式解读)

一、区别

对象名称生存周期(就是保存值时间)保存的位置用在什么地方
session

在项目web.xml中设置,一般都设置30分钟。

如果不操作当前页面,30分钟后清除。

服务器端填写表单,页面传递参数
application服务器重启,就没了服务器端计数器,所有用户共享变量
cookie自己设定或手动清理cookie在手机里的硬盘里用户自动登陆

 

 

 

 

 

 

 

二、session示例

1、login_1.jsp(参数发送页)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>LOGIN登陆页</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">

  </head>
  
  <body>
<% session.setAttribute("user","dxnn520"); %>

 	  <p>接收登陆信息如下: </p>
     <input name="注册" type="button" id="btn1" title="登注册" value="开始传参到index_2.jsp页"  onclick="location.href='index_1.jsp?name=张飞&sex=男'" />
  </body>
</html>

2、index_1.jsp(参数接收页)

<%@ page language="java" import="java.util.*" pageEncoding="Utf-8"  %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>JAVA - 主页面</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">

  </head>
  
  <body>
    
 	  <p>接收登陆信息如下: </p>
     
 	  	   登录名:
     <%  
		String m_user=(String)session.getAttribute("user"); 
	    out.println(m_user);  // 输出变量
     %> 
     
     <br> <br>
     
    
  </body>
</html>

3、如何设置session生存时间,注意:30是秒

三、cookie示例

1、cookie用法表

类型方法名方法解释
StringgetComment()返回cookie中注释,如果没有注释的话将返回空值.
StringgetDomain()返回cookie中Cookie适用的域名. 使用getDomain() 方法可以指示浏览器把Cookie返回给同 一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器。注意域名必须以点开始(例如.yesky.com)
intgetMaxAge()返回Cookie过期之前的最大时间,以秒计算。
StringgetName()返回Cookie的名字。名字和值是我们始终关心的两个部分,笔者会在后面详细介绍 getName/setName。
StringgetPath()返回Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下 的所有页面。
booleangetSecure()如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值。
StringgetValue()返回Cookie的值。笔者也将在后面详细介绍getValue/setValue。
intgetVersion()返回Cookie所遵从的协议版本。
voidsetComment(String purpose)设置cookie中注释。
voidsetDomain(String pattern)设置cookie中Cookie适用的域名
voidsetMaxAge(int expiry)以秒计算,设置Cookie过期时间。
voidsetPath(String uri)指定Cookie适用的路径。
voidsetSecure(boolean flag)指出浏览器使用的安全协议,例如HTTPS或SSL。
voidsetValue(String newValue)cookie创建后设置一个新的值。
voidsetVersion(int v)设置Cookie所遵从的协议版本。

2.login_1.jsp(写Cookie)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>LOGIN登陆页</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">

  </head>
  
  <body>

	<%
	    // 写入cookie
	    
		Cookie cookie= new Cookie("user","dxnn520");
		cookie.setMaxAge(60);
		response.addCookie(cookie);
		cookie = new Cookie("password","8384");
		response.addCookie(cookie);
	%>

 	 
     <input name="注册" type="button" id="btn1" title="登注册" value="写入并读取Cookie"  onclick="location.href='index_1.jsp'" />
  </body>
</html>

3.index_1.jsp(读取cookie页)

<%@ page language="java" import="java.util.*" pageEncoding="Utf-8"  %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>JAVA - 主页面</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">

  </head>
  
  <body>
 <%
 
 // 读取cookie
 
	Cookie m_cookie[] = request.getCookies();
	String m_user="";
	String m_password="";
	
	for(int i = 0;i < m_cookie.length;i++)
	{
		if(m_cookie[i].getName().equals("user"))
		{
			m_user=m_cookie[i].getValue();
			// request.setAttribute("user",m_cookie[i].getValue());
			// out.print(m_cookie[i].getValue());
		}
		if(m_cookie[i].getName().equals("password"))
		{
			m_password=m_cookie[i].getValue();
			// request.setAttribute("password",m_cookie[i].getValue());
			// out.print(m_cookie[i].getValue());
		}
	}
%>
    
 	  <p>从COOKIE中读取信息如下: </p>
     
 	  	   登录名: <% out.print(m_user); %> <br> <br>
 
		 密 码: <%  out.print(m_password); %>



     <br> <br>
  </body>
</html>

四、application示例

1、login_1.jsp(写入application)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>LOGIN登陆页</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">

  </head>
  
  <body>

<%
  application.setAttribute("m_city", "北京");
  application.setAttribute("m_date", "2020-10-01");
%>


 	 
     <input name="注册" type="button" id="btn1" title="登注册" value="写入并读取application"  onclick="location.href='index_1.jsp'" />
  </body>
</html>

2、index_1.jsp(读取application)

<%@ page language="java" import="java.util.*" pageEncoding="Utf-8"  %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>JAVA - 主页面</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">

  </head>
  
  <body>
    
 	  <p>从application中读取信息如下: </p>
     
 	  	   城 市:<%=application.getAttribute("m_city") %> <br> <br>
 
		 日期:<%=application.getAttribute("m_date") %>



     <br> <br>
  </body>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敦厚的曹操

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值