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");
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