IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> session与Cookie和fastJSON架包的使用 -> 正文阅读

[Java知识库]session与Cookie和fastJSON架包的使用

目录

session与Cookie详解xmind

1.session的一些方法与概述

2.Cookie的一些方法与概述

?Cookie保存的类容如含特殊符号 需要转16径直文件、

?3.JSON的使用

json架包下载

将json格式字符串转换为对象的两个方法


session与Cookie详解xmind

文件密码:hu1h

1.session的一些方法与概述

session-》内置对象
1.概述
?? ?服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象。jsp:session ?servlet:HttpSession
?? ?
2.快速入门
? ? ? 获取一个值 根据剑
?? ?(1)getAttribute(String name);
? ? ? ? ? 设置一个值 剑与值
?? ?(2)setAttribute(String name,Object value)
? ? ?移除一个 值
?? ?(3)removeAattribute(String name)
? ? ? ?session.invalidate();//使当前session失效
?? ??//设置网页的非有效活动时间
?? ??? session.setMaxInactiveInterval(10);
3.细节
?? ?1.当客户端关闭后,服务器不关闭,两次获取session是否为同一个?
?? ??? ?* 默认情况下,不是
?? ??? ?* 如果需要相同,则可以创建cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存。
?? ??? ??? ?Cookie c = new Cookie("JSESSIONID",session.getId());
?? ??? ??? ?c.setMaxAge(60*60);
?? ??? ??? ?response.addCookie(c);
?? ??? ??? ?
?? ?2.客户端不关闭,服务器关闭后,两次获取的session是同一个吗?
?? ??? ?* 不是同一个,但是要确保数据不丢失。tomcat自动完成以下工作。
?? ??? ??? ?** session的钝化:
?? ??? ??? ??? ?在服务器正常关闭之前,将session对象序列化到硬盘上
?? ??? ??? ?** session的活化:
?? ??? ??? ??? ?在服务器启动后,将session文件转化为内存中的session对象即可。
?? ??? ??? ?
?? ?3.session什么时候被销毁?
?? ??? ?(1) 服务器关闭
?? ??? ?(2) session对象调用invalidate()方法
?? ??? ?(3)session默认失效时间 30分钟=》web.xml
?? ??? ?
4.session的特点
?? ?session用于存储一次会话的多次请求的数据,存在服务器端
?? ?session可以存储任意类型,任意大小的数据
?? ?

session与Cookie的区别
?? ?1.session存储数据在服务端,Cookie在客户端
?? ?Cookie存储的数据只能是文本,Session---Object
?? ?2.session没有数据大小限制,Cookie有
?? ?3.session数据安全,Cookie相对于不安全

	 session.setAttribute("username", username); 添加一个session
   
     String username = (String)session.getAttribute("username");根据剑获取一个值
     
     session.invalidate();//使当前session失效

2.Cookie的一些方法与概述

1.引入
? ? 1.1 案例:张三与李四的会谈(从开始到结束)====》客户端与服务器

2.会话

? ? 2.1 概述:一次会话中包含多次请求和响应
?? ?一次会话:浏览器第一次给服务器资源发送请求,会话建立,知道有一方断开为止。

? ? 2.2 功能:在一次会话的范围内的多次请求间,共享数据

? ? 2.3 方式:
?? ?(1)客户端会话技术:Cookie
?? ?(2)服务端会话技术:session

3.Cookie

? ? 3.1 概述
?? ?客户端会话技术,将数据保存到客户端

? ? 3.2 快速入门
?? ?使用步骤:
?? ??? ?(1)创建Cookie对象,绑定数据
?? ??? ??? ?new Cookie(key,value);
?? ??? ?(2)发送Cookie对象(从服务端---》客户端)
?? ??? ??? ?request.addCookie(cookie)
?? ??? ?(3)获取Cookie,获取数据
?? ??? ??? ?request.getCookies()

4.Cookie的细节

? ? 4.1 一次可不可以发送多个cookie?
?? ?** 可以
?? ?** 可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可。

? ? 4.2 cookie在浏览器中保存多长时间?
?? ?(1)默认情况下,当浏览器关闭后,Cookie数据被销毁
?? ?(2)持久化存储
?? ? ? ?** setMaxAge(int seconds);秒
?? ??? ?** 参数:
?? ??? ? ? ?正数---》将Cookie数据写到硬盘的文件中。持久化存储【cookie的存活时间】
?? ??? ?** 负数:
?? ??? ? ? ?默认值
?? ??? ?** 零:
?? ??? ? ? ?删除cookie信息
?? ?
?? ?4.3 cookie能不能存储中文?
?? ??? ?** 在tomcat8.0之前 cookie中不能直接存储中文数据。
?? ??? ??? ?** 需要将中文数据转码---》一般采用URL编码
?? ??? ?
?? ??? ?** 在tomcat8.0之后 ,cookie支持中文数据,特殊字符还是不支持,建议使用URL编码存储
?? ??? ??? ?使用URL解码解析
?? ??? ??? ?* 编码 URLEncoder.encode("字符串","utf-8");
?? ??? ??? ?* 解码 URLDecoder.decode("字符串","utf-8");
?? ??? ??? ?

5.Cookie的特点和作用
?? ?特点:
?? ??? ?(1)cookie存储在数据在客户端浏览器
?? ??? ?(2)浏览器对于单个cookie的大小有限制(4KB)以及对同一个域名下的总cookie数量也有限制(20个)
?? ?
?? ?作用:
?? ??? ?(1)cookie一般用于存储少量的不太敏感的数据
?? ??? ?(2)在不登录的情况下,完成服务器对客户端的身份识别
?? ??? ?

 //1.创建Cookie
			Cookie cookieUsersName = new Cookie("username",username);
			//如果复选框选中了  设置cookie的存活时间
			if(null!=isCheck){
				cookieUsersName.setMaxAge(1*60*60*24*7);
			}
			//2.将Cookie写回客户端
			response.addCookie(cookieUsersName);
		


2.获取Cookie对象

       //定义一个变量
	 	String username = "";
	 	//1.通过request请求对象获取cookie
	 	Cookie[] cookies = request.getCookies();
	 	//2.非空
	 	if(null!=cookies){
	 		//3.遍历
	 		for(Cookie cookie:cookies){
                判断是否存在存储的cookie对象username 剑属性
	 			if("username".equals(cookie.getName())){
               获取指定的值
	 				username = cookie.getValue();
	 				break;
	 			}
	 		}
	 	}
	 
	 	//如果没有登录    送回login.jsp
	 	if(""==username){//没有登录
	 		response.sendRedirect("login.jsp");
	 	} 
3.设置cookie对象失效
	//退出登录(注销)
    	 Cookie[] cookies = request.getCookies();
    	if(null!=cookies){
    		for(Cookie cookie:cookies){
    			if("username".equals(cookie.getName())){
    				cookie.setMaxAge(0);//失效
    				//注意  重新保存
    				response.addCookie(cookie);
    				break;
    			}
    		}
    	}
    	
    	response.sendRedirect("login.jsp"); 

?Cookie保存的类容如含特殊符号 需要转16径直文件、

	//Cookie注意事项:
		1.如果保存的时候有特殊字符:空格  &  -  需要编码和解码这个动作
		解决方法:
		URLEncoder.encode(s, "UTF-8");//编码
		%1BF%123%
		URLDecoder.decode(s, "UTF-8");//解码
	
		//1.创建Cookie保存用户名
		Cookie cookie = new Cookie("username",URLEncoder.encode("ad min管理员", "UTF-8"));
		setMaxAge() 设置cookie的存活
		cookie.setMaxAge(1*60*60*24*7);
		2.响应对象response写回浏览器客户端
		response.addCookie(cookie);

	//获取Cookie
URLDecoder.decode(cookie.getValue(), "utf-8")) 进行解码后
		Cookie[] cookies = request.getCookies();
		//非空
		if(null!=cookies){
			//遍历
			for(Cookie cookie : cookies){
				if("username".equals(cookie.getName())){//根据键进行判断
					out.println(cookie.getName()+"--"+cookie.getValue()+"------"+URLDecoder.decode(cookie.getValue(), "utf-8"));
				}
			}
		}

?3.JSON的使用

json架包下载

文件密码:2ab9

1.什么是json
?? ?.json
?? ?.xml
?? ?数据库访问

JSON:一种与开发语言无关的、轻量级的数据存储格式,全称JavaScript Object Notation,一种数据格式的标准规范,起初来源于JavaScript这门语言,后来随着使用的广泛,几乎每门开发语言都有处理JSON的API。

优点:易于人的阅读和编写,易于程序解析与生产。

JSON样例:首先一个花括号{},整个代表一个对象,同时里面是一种Key-Value的存储形式,它还有不同的数据类型来区分


2.JSON解析的工具
?? ?(1)org.json的使用

?? ?(2)net.sf.json的使用
?? ?
?? ?(3)json-simple的使用

?? ?(4)gson的使用

?? ?(5)jackson的使用

?? ?(6)fastjson的使用===================================

3.fastjson的使用

?? ?JSON文本:满足一个对象的定义或者一个数组的定义或者一个对象数组的定义的字符串

?? ?var stu = {"name":"admin","sex":"男"};

?? ?var str = "{\"name\":\"admin\",\"sex\":\"男\"}";
?? ?jQuery----$.parseJSON();

?? ?java
?? ?Student stu = JSON.parseObject(str,Student.class);


public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray

public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray

public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject

====================================================================

public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean


public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合

public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本


public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本

public static final Object toJSON(Object javaObject); // 将JavaBean转换为JSONObject或者JSONArray。


//对象--JSON字符串
Student stu = new Student("张三", "男", 18);
String string = JSON.toJSONString(stu);
System.out.println(string);//{"name":"张三","age":18,"sex":"男"}

//字符串----对象
Student student = JSON.parseObject(string, Student.class);
System.out.println(student);
?? ? ? ?
?//集合---》JSON字符串
List<Student> list = new ArrayList<Student>();
list.add(new Student("张三", "男", 19));?
list.add(new Student("张翼", "男", 22));
list.add(new Student("李四", "女", 33));
String jsonList = JSON.toJSONString(list);
System.out.println(jsonList);//[{"name":"张三","sex":"男","age":19},{"name":"张翼","sex":"男","age":22},{"name":"李四","sex":"女","age":33}]
?? ??? ?
//JSON字符串----》集合
List<Student> parseArray = JSON.parseArray(jsonList, Student.class);
System.out.println(parseArray.size());

将json格式字符串转换为对象的两个方法

//字符串----对象
Student student = JSON.parseObject(string, Student.class);
System.out.println(student);

//JSON字符串----》集合
List<Student> parseArray = JSON.parseArray(jsonList, Student.class);
System.out.println(parseArray.size());

fastjson的使用

public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject public static final T parseObject(String text, Class clazz); // 把JSON文本parse为 JavaBean public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray public static final List parseArray(String text, Class clazz); //把JSON文本parse成 JavaBean集合 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序 列化为带格式的JSON文本 public static final Object toJSON(Object javaObject); // 将JavaBean转换为JSONObject或者 JSONArray

详细使用

文件密码:fsjk

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:04:04  更:2022-04-06 16:04:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:05:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码