什么是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从上到小)再执行注解(编码值 从小到大)