当前位置: 首页 > news >正文

《Java Web 核心:Servlet、会话与过滤器笔记》

什么是web项目
1.本质:文件夹+文件
2.高级:资源+服务
Servlet的生命周期
生命周期对应方法执行时期执行次数
构造对象构造器第一次请求 或者容器启动1
初始化init构造完毕1
服务service每次请求调用一次 执行一次
销毁destory()容器关闭1
//向请求域中添加数据
req.setAttribute("uname","张三");
//接受域获取数据
Object value = req.getAttribute("uname");

转发和重定向
1.转发a.转发使用request对象方法b.转发地址是项目下的资源地址  /不要写项目根地址 == getRealPathc.转发的状态码200d.转发浏览器的地址不变,访问的第一个资源地址e.转发可以访问WEB-INF下的资源
2.重定向a.重定向使用response对象的方法b.重定向地址是项目的完成地址  /根地址c.重定向的状态码302d.重定向浏览器的地址改变,访问的最后一个地址e.重定向不可以访问WEB-INF下的资源
​
转发示例
resquest.getRequestDispatcher("/WEB-INF/html/index.html").forward(resquest,resp);
重定向示例
resp.sendRedirect(req.getContextPath() + "/forward");
//getContextPath()动态获取项目的根路径!
请求数据的获取
请求数据是from表单提交的请求
key是表单内的name对应的字符串
1.请求头数据的获取
String header = request.getHeader(key);
2.请求正文数据的获取2.1.单值获取request.getParameter(key)2.2.多值获取request.getParameterValues(key) 2.3.打包获取request.getParameterMap();
会话数据
请求域只有一次请求才能共享,针对范围太小
会话域是针对一个用户多次请求都可以共享。
那么会话域的范围是指什么?会话开始是访问页面,结束是关闭页面。
会话范围存储数据技术!
cookie : 存储在客户端(浏览器)中的会话级别的数据
session: 存储在服务端(Javaweb)中的会话级别的数据session底层依赖cookie
cookie的概述
cookie是一种存在客户端浏览的绘画数据共享技术
cookie的使用
1.创建cookie对象Cookie  cookie = new Cookie(String name,String value);# 基本的字母+数字cookie.setMaxAge(int 秒) # 设置存活时间,跨会话cookie.setPath(String path) # cookie不会跟着所有请求走,它也会识别访问地址和我的path同一套项目cookie.getName(); cookie.getValue();
2.存储cookie到客户端response.addCookie(cookie1对象);
3.获取cookierequest.getCookies()
4.删除cookie
cookie.setMaxAge(0);
response.addCookie(cookie);
Session
Session底层需要cookie记录客户端
HttpSession使用
HttpSession session = request.getSession();
//读取
session.getAttribute(String key)
//删除 [数据  | session对象 ]
session.removeAttibute(String key)
session.invalidate() [退出登录]
//存活时间
setMaxInactiveInterval(int interval) 
共享域
a.共享域对象获取方法i. request : servlet / service(request)ii. session : request.getSession(); iii. servletContext : getServletContext() | request session.getServletContext();
b.共享域对象的数据操作方法i. setAttribute(String key , Object value) 存储数据ii. getAttribute(String key) 获取数据iii. removeAttribute(String key); 删除数据iv. setAttribute(String key , Object value) 更新数据key相同就覆盖更新
​
过滤器
Filter: 过滤器,请求到达目标资源前 可以对数据进行筛选生命周期:1.服务器启动时创建  执行 init() ,构造方法2.doFilter() 请求到达一次执行一次3.关闭服务器 销毁过滤器对象4.init() ,构造方法() ,destroy() 只会执行一次过滤器链: 请求到达目标资源有多个过滤器先执行配置(web.xml filter-map从上到小)再执行注解(编码值 从小到大)
http://www.dtcms.com/a/284541.html

相关文章:

  • AndroidStudio环境搭建
  • vue svg实现一个环形进度条组件
  • 石子入水波纹效果:顶点扰动着色器实现
  • 【44】MFC入门到精通——MFC 通过Button按钮添加控件变量实现:按下 按钮变色 (比如开关 打开关闭状态) MFC更改button控颜色
  • Git简介与特点:从Linux到分布式版本控制的革命
  • 找不到或无法加载主类 org.gradle.wrapper.GradleWrapperMain
  • Linux Swap区深度解析:为何禁用?何时需要?
  • 【Java EE初阶 --- 网络原理】网络编程
  • Vue3 + WebSocket
  • 基于现代R语言【Tidyverse、Tidymodel】的机器学习方法
  • 3.2 函数参数与返回值
  • .vscode 扩展配置
  • 浅析网络安全面临的主要威胁类型及对应防护措施
  • 【C++指南】C++ list容器完全解读(四):反向迭代器的巧妙实现
  • 如何做好DNA-SIP?
  • 【41】MFC入门到精通——MFC中 GetLBText()、GetWindowText()、SetWindowText区别
  • 扭蛋机小程序开发:开启线上娱乐新风尚
  • 分布式光伏发电系统中的“四可”指的是什么?
  • 教资科三【信息技术】— 学科知识: 第一章(信息技术基础)
  • 基于springboot+vue+mysql技术的实验室管理系统(源码+论文)
  • 044_设计模式入门(创建型 / 结构型 / 行为型)
  • 【解决方案】鸿蒙 / 矿鸿系统 Shell 无故退出问题(息屏导致)详解
  • Spatial Frequency Modulation for Semantic Segmentation。针对图像下采样造成信息丢失问题的解决思路
  • 深入理解 Spring Boot Starter 的生成机制
  • tcp/udp调试工具
  • Linux内核网络栈深度剖析:inet_connection_sock.c的服务器端套接字管理
  • LINUX例行性工作(计划任务)实验操作 ---at和crontab以及系统级别的计划任务
  • springboot跨域问题 和 401
  • 当下主流摄像头及其核心参数详解
  • 不同场景下git指令的搭配