Cookie
Cookie是服务器通知客户端保存键值对的一种技术。
客户端有了Cookie后,每次请求都会发送给服务器。
Cookie 的值可以唯一地标识客户端,因此 Cookie 常用于会话管理。
每个Cookie的 大小不能超过4kb。
1.创建Cookie
1 | public class CookieServlet extends BaseServlet { |
2.服务器获取Cookie
1 | protected void getCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
将查找指定Cookie封装成工具类:
1 | package Utils; |
3.Cookie值的修改
方案一:
1、先创建一个要修改的同名(指的就是key)的Cookie 对象
2、在构造器,同时赋于新的Cookie 值。
3、调用response.addCookie( Cookie );
方案二:
1、先查找到需要修改的Cookie 对象
2、调用setValue()方法赋于新的Cookie 值。
3、调用response.addCookie()通知客户端保存修改
1 | protected void updateCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
4.Cookie的生命控制
管理cookie什么时候被销毁(删除)
setAge():
正数表示在指定的秒数后过期;
负数表示浏览器关闭后,cookie就会销毁;()默认值为-1
0表示马上删除cookie。
1 | protected void defaultLife(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
1 | protected void deleteCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
5.Cookie有效路径Path的设置
Cookie的path属性可以有效的过滤哪些Cookie可以发送 个服务器。
path属性是通过请求的地址来进行有效的过滤。
1 | protected void testPath(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
6.免输入用户名登录
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
1 | public class LoginServlet extends HttpServlet { |
Session
1、Session 是一个接口(HttpSession)。
2、Session 就是会话。它是用来维护一个客户端和服务器之间关联的一种技术。
3、每个客户端都有自己的一个Session 会话。
4、Session 会话中,我们经常用来保存用户登录之后的信息。
1.创建和获取session
request.getSeesion():
第一次调用:创建Session会话。
之后的调用:获取前面创建好的Session会话对象。
isNew():判断Session是否是刚创建的
true:表示刚创建
false:表示获取之前创建
getId():得到Session的会话id值
1 | protected void createOrGetSession(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
2.Session域数据的存取
1 | /** |
3.Session生命周期控制
setMaxInactiveInterval(int interval):设置Session超时时间,超过指定的时长就会被销毁。
负数表示永不超时。
getMaxInactiveInterval():获取Session超时时长。
invalidate():使当前会话马上超时。
获取默认超时时长:
1 | protected void defaultLife(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
设置web工程下所有的 Session 默认超时时长:
1 | <session-config> |
设置个别Session的超时时长:
1 | protected void setLife(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
使Session马上失效:
1 | protected void deleteNow(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |