本帖最后由 巴拉巴拉x 于 2018-5-21 10:32 编辑  
 
 
request&response  
 
  
读取WEB工程下的文件- 传统方式读取文件,写的路径是相对路径,相对的是JVM的路径
 
- JVM在运行环境的文件里面,在java项目中jre和src在同一级目录下
 - 传统方式已经不能读取web工程下的文件:路径不明确
 - eclipce有一个工作空间,服务器也有它自己的工作空间.
 
 
  - 使用ServletContext对象来读取文件
 
- ServletContext是服务器创建的对象.他的作用范围是服务器的那个项目工作空间.
 - InputStream getResourceAsStream(String path);
 - String getRealPath(String path):
 
 
  
  ServletContext的总结- 读取全局化(初始化)参数:
 
- 在web.xml中配置的参数,标签就是<Context-param ><param-name > 值 </param-name ></Context-param >.
 
 
  - 获取文件的mime类型:
 
- String getMimeType(String file);用ServletContext对象来调用.返回值是一个字符串,
 
 
  - 作为域对象存取数据
 
- 范围:整个web项目,而且是全局对象
 - 创建:服务器启动的时候,服务器为每个web项目创建一个单独的ServletContext对象
 - 销毁:服务器关闭,或者移除web项目的时候销毁
 
 
  - 读取web工程下的文件
 - 使用类加载器来读取文件
 
- 类的加载器是用来加载class文件,将class文件加载到内存
 
- 类名.class.getClassLoader().getResourceAsStream(fiel name);
 
 
  
 
  - 如果有Servlet环境,就用ServletContext对象来读取文件,如果没有Servlet环境就用类加载器来读取文件.
 
 
  
 
request&response  
 
 
文件下载- response
 
- 概述:代表响应的对象,从服务器向浏览器输出内容
 - 常用API
 
- HttpServletResponse类
 
- 响应行
 
 - 响应头
 
- addDateHeader
 - addHeader
 - addIntHeader
 - setDateHeader
 - setHeader
 - setIntHeader
 
 
  - 响应体:
 
- 方法在ServletRespose类中
 - getOutputStream
 - getWriter
 
 
  
 
  
 
  - 文件下载方式
 
- 超链接的方式:前提-->文件类型是浏览器不支持的类型
 - 手动编写代码的方式完成文件的下载
 
- 设置响应头里面的两个属性和一个流
 
- Content-Type :文件的MIME类型
 - Content-Disposition :以文件下载的形式打开文件
 - InputStream :文件的输入流
 
 
  
 
  
 
  - 文件下载的核心思想
 
 
 
  
  中文文件下载 
- iso-8859-1:缓存区默认编码标准
 - IE浏览器采用的编码方式是URL
 
- URLEncoder.encode(filename, "UTF-8");
 
 
  - 火狐浏览器采用的编码方式是base64
 
 
  
 
response 输出响应内容的方法  
 
- 向页面响应的方法
 
- 字节流
 
- response.getOutputStream().write("内容".getBytes())-->不是中文
 - response.getOutputStream().write("内容".getBytes(字符集编码));这个编码在设置之前先设置浏览器打开时采用的编码方式,这两种方式要一样.如果本来就一样就不会乱码,如果不一样就会乱码.
 - 步骤
 
 
 
  - 字符流
 
- response.getWriter()-->不是中文
 - 一定会乱码,response使用的字符流有缓冲区的.这个缓冲区的默认的编码是ISO-8859-1,这个编码方式不支持中文.
 - 解决方式
 
- 设置response的字符流的缓冲区的编码
 - 设置浏览器默认打开时使用的编码.
 - response.sendRedirect("路径"):重定向简写.
 
 
  - 步骤
 
- 设置浏览器打开的时候的编码
 
- response.setHeader("Context")
 
 
  - 设置response的缓冲区的编码
 
- response.setCharacterEncoding(编码方式)
 
 
  
 
  
 
  
 
  
 
 request  
 
- 概述
 
- 代表用户的请求,把从客户端发送来的请求行,请求头,请求体封装成一个ServletRequest对象,即是request.
 
 
  - Request的API
 
- 功能
 
- 获得客户机的相关信息
 
- 获得请求方式
 
 - 获得客户端的IP
 
 - 获得请求的路径
 
- getRequestURL()
 - getRequestURI()
 
 
  - 获得工程名
 
 
 
  - 获得从页面提交的参数
 
- getParameter(String name)
 - getParameterValues(String name)
 - getParameterMap();
 
 
  - 作为域对象存取数据
 
- setAttribute()
 - getAttribute()
 - removeAttribute()
 
 
  
 
  
 
  - request作为域对象
 
- 存取数据
 
- setAttribute(String name, String value)
 - getAttribute(String name)
 - removeAttribute(String name)
 
 
  - 作用范围
 
 - 创建和销毁
 
 
 
  - 重定向和转发的区别(redirect和forward的区别)
 
- 重定向
 
- sendRedirect(路径)
 - 两次请求,两次响应
 - 地址栏会发生变化
 - 路径要包含工程名
 - 可以跳转到任意网站
 
 
  - 转发
 
- getRequestDispatcher(路径)
 - 一次请求,一次响应
 - 地址栏不会发生变化
 - 路径不用写工程名
 - 只能在服务器内部的同一工程进行转发
 
 
  
 
  
 
  
 
 |   
        
 
    
    
    
     
 
 |