JSP-JSP状态管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP-JSP状态管理相关的知识,希望对你有一定的参考价值。
http协议的无状态性 1、无状态是指,当浏览器发送请求给服务器的时候,服务器会响应。但当同一个浏览器再次发送请求时,服务器不会知道是刚才那个浏览器。 2、简单说,服务器【不会保存用户状态】,不会记得客户端是否访问过,所以这就是无状态协议。
jsp状态管理 保存用户状态的两大机制 1、Session 2、Cookie 什么是cookie? cookie:是web服务器保存在客户端的一系列文本信息。 典型应用之一:判断注册用户是否已经登录网站。 典型二:保存用户浏览记录。 cookie的作用: 1、对特定对象的追踪。 2、保存用户网页浏览记录与习惯。 3、简化登录 安全风险:容易泄露用户信息。
jsp中创建与使用Cookie: 1、创建Cookie对象: Cookie cookie=new Cookie(String key,Object value); 2、写入Cookie: response.addCookie(cookie); 3、读取Cookie: Cookie[] cookies=request.getCookies();
常用方法: 1. setMaxAge( expiry ) 设置cookie的有效期,以秒为单位 getMaxAge() 获取cookie的有效时间,以秒为单位 2. setValue(String value) 在cookie创建后,对cookie进行赋值 getValue() 获取cookie的值 3. getName() 获取cookie的名称 4. setValue()和getValue()涉及的都是字符串,对应前面提到的 Cookie是web服务器保存在客户端的文本文件。
解决Cookie无法保存中文字符串的问题 1.java.net包下的URLEncoder类来进行编码 public static encode(String string, String enco); 2.URLDecoder类进行解码 URLDecoder.decode(String string, String enco); 3.如果在登录界面把username和password的值设为了null,那么在登陆框就会出现null 最好是设为"" 4.查找Cookie时,是按照k值进行查找的 ----------------------------------- 使用URLEncoder(在java.net包下)解决无法在Cookie当中保存中文字符串问题: String username = URLEncoder.encode(request.getParameter("username"),"utf-8");//编码,防止中文乱码 String password = URLEncoder.encode(request.getParameter("password"),"utf-8");//编码,防止中文乱码
session与cookie对比 1.保存位置:session在服务器端内存,cookie在客户端文本 2.保存对象:session保存Object类(保存对象大小没有限制),cookie保存String类型(保存对象大小有限制) 3.生存权:session会话结束即销毁,cookie可以长期保存在客户端 4.重要性:session安全性更高,保存重要信息,cookie保存不重要的信息
以上是关于JSP-JSP状态管理的主要内容,如果未能解决你的问题,请参考以下文章