2022-09-03 卢睿 学习心得
1.Cookie
【曲奇】
-
保存http状态
- 保存在客户端上,保存在浏览器上的,登录信息
- 保存在浏览器上,以键值对的形式,不安全
使用cookie的步骤
-
创建cookie的对象
-
设置最大时效
-
把cookie放入到HTTP响应头中
-
// 1.获取cookie Cookie[] cookies = req.getCookies(); if (Objects.nonNull(cookies) && cookies.length>0){ // 存在cookie的情况 for (Cookie cookie : cookies) { System.out.println(cookie.getName()+"------->"+cookie.getValue()); System.out.println(cookie.getMaxAge()); } }else { String username = req.getParameter("username"); String password = req.getParameter("password"); if (Objects.equals(username,"admin")&&Objects.equals(password,"123456")) { System.out.println("没有发现cookie,创建cookie"); Cookie cookie = new Cookie("username", username); // 设置cookie的最大时效 cookie.setMaxAge(10); // 把cookie放入到响应中 resp.addCookie(cookie); resp.sendRedirect("success.html"); } }
2.session
是HttpSession类的对象
session什么时候失效
- 过期了
- 关闭浏览器(并不能完全的销毁session,JESSIONID,根据JESSIONID找到之前的session)
- 调用session销毁的方法
创建session的步骤
-
// 获取session 会话 HttpSession session = req.getSession(); String username = req.getParameter("username"); // 把username放入session中 session.setAttribute("username",username);
-
网站上的安全退出,销毁session
3.过滤器
Filter:
- Javaweb的重要组件,可以对发送到servlet的请求进行拦截过滤,也可以对响应进行拦截
- 是实现了Filter接口的Java类
- Filter需要在web.xml中进行注册,也可以通过注解来注册
如何创建一个Filter,只需要创建一个类。来实现Filter接口即可
Filter的执行顺序
- filter-mapping的上下顺序有关——【xml配置】
- 26个英文字母的顺序——【注解】
doFilter方法里的参数
-
/* ServletRequest:实际上当请求来的时候,实例化的还是HttpServletRequest ServletResponse:实际上当请求来的时候,实例化的还是HttpServletResponse FilterChain:过滤器链,一个项目中是可以有多个过滤器的,会形成一个链,当前过滤器把请求传递给下一个过滤器 */
重点
只要地址栏不变,request永远是同一个,数据也就永远都在