大数据正式15
来源:互联网 发布:淘宝装 编辑:程序博客网 时间:2024/06/06 17:13
大数据正式15
Response、ServletConfig、ServletContext介绍:
简单补充
- 【服务器-浏览器】乱码产生的地方 :
- 服务器向响应头发送数据的时候
- 响应头发送到浏览器的时候
- 浏览器解析的时候
- 乱码的解决
- 服务器向响应头发送数据的时候
- 字符【直接发+元数据处理(2.1)】
- 字节【"".getBytes("编码")】
- 响应头发送到浏览器的时候
- 原数据【response.setCharacterEncoding("编码")】
- 二进制数据【直接发】
- 浏览器解析的时候
- 服务器设置响应头的浏览器解码方式【setHeader(“Content-Type”,“text/html;charset=utf-8”)】
- 服务器向响应头发送数据的时候
- 注意:
- Response中:流不用关--服务器会自动关流
- Response中:只能获取一种流(同时获取两种流会出错)
- 重定向:
- 302+position
response.setState(302);response.setHeader("Location","地址");
response.sendRedirect("地址");
- 302+position
- 定时刷新
- setHeader("Refresh","时间;url=网址");
- 禁用缓存【Expires,Cache-Control,Pragma】【历史原因,三个都得禁用,为了兼容性】
- 大部分是好的
- 一部分不好:验证码不能缓存;火车票
response.setHeader("Cache-Control","no-cache")response.setHeader("Progma","no-cache")response.DataHeader("Expires",0);
资源跳转
- 注:【没需求时,优先使用request方式,请求次数少,减少服务器的压力】
- 方式1:Request请求转发【利用Request域传递数据】
- 服务器内发生
- 只有一次请求响应
- 一个Request对象
- 可以用Request域传递数据
- 地址栏不发生变化--浏览器不知道此次的请求
- 转发的地址是内部地址--不需要写应用名称
- 方式2:Response重定向【改变地址栏、刷新】
- 服务器外发生的资源跳转
- 两次请求,两次响应
- 因为Request是不一样的,所以不能 用Request域来传递数据
- 浏览器知道重定向的存在
- 地址栏发生变化
- 刷新操作是最后请求最后一个资源
- 外部地址
- 方式3:定时刷新【改变地址栏、刷新、有提示信息】
- 服务器外发生的资源跳转
- 两次请求,两次响应
- 因为Request是不一样的,所以不能 用Request域来传递数据
- 浏览器知道重定向的存在
- 地址栏发生变化
- 刷新操作是最后请求最后一个资源
- 外部地址
ServletConfig
- 每个Servlet都有一个ServletConfig对象,代表当前的Servlet在web.xml中的配置信息
- 获取:Servlet在初始化时候,传入了一个ServletConfig对象Servlet.getServletConfig();
- 方法:
- 获取<servlet-name>中的值:config.getServletName()
- 获取所有初始化参数<init-param>的值:config.getInitParameterNmaes()【不想写死的信息放在web.xml中灵活配置】
- 获取指定值的初始化参数:config.getInitParameter(String key)
ServletContext
- 代表当前web应用
- 生命周期
- 这个对象在服务器启动时创建并一直存在,直到服务器关闭
- 生命周期和web应用一样
- 获取方式
- config.getServletContext();
- this.getServletConfig();
- 用途
- 获取web应用初始化参数<context-param>:context.getInitParameter(String key)
- 域对象
- 生命周期:和web一样长
- 作用范围:整个web应用
- 主要功能:web应用里共享数据
路径问题:
- 相对路径(路径):Tomcat下的bin下
- 绝对路径(/路径):程序启动的根目录
- 带盘符的绝对路径(盘符:路径):在这个路径下找
- Servlet下解决:context.getRealPath("tomcat下的路径相对");【web的路径+文件的相对路径(发布到tomcat时的路径)】【原理:动态获取web项目的路径+项目下的资源的相对路径】
- 没有Servlet下,利用类加载器来加载资源:this.getClass().getClassLoader().getResource("相对于classes的路径").getPath();【基于类加载的地方的相对路径】
- 注意:路径的对应位置--项目资源文件的位置的对应关系【注意:最大法范围不能超过Tomcat】
阅读全文
0 0
- 大数据正式15
- 大数据正式1
- 大数据正式2
- 大数据正式3
- 大数据正式4
- 大数据正式5
- 大数据正式6
- 大数据正式7
- 大数据正式8
- 大数据正式9
- 大数据正式10
- 大数据正式11
- 大数据正式12
- 大数据正式13
- 大数据正式14
- 大数据正式16
- 大数据正式17
- 大数据正式18
- 堆排序 Heap Sort
- 4-1 复数类的运算符重载
- Maven私服Nexus的搭建
- 硬盘分区被格式化了如何恢复
- 外部排序--归并算法实现
- 大数据正式15
- JAVA面向接口编程
- 认清Android框架 MVC,MVP和MVVM
- Servlet什么时候初始化?
- Virtual Machine not launching Gazebo
- php中抽象类和接口的区别
- 起于前端,但不止于前端 —— 致“新手菜鸟”
- 小程序wxss公用模板
- web.xml的加载过程配置详解