| 
 
| 1.响应也是分三部分 响应行:
 组成: 协议 状态码 状态描述
 状态码:
 404: ---->浏览器访问的资源不存在, 路径写错了!!!!!
 500: ----> 代码写的有问题, 该代码, --->先要去找到错误代码的位置
 302: ---->告诉浏览器要重定向
 
 响应头:
 作用:响应头可以给浏览器下命令,让浏览器按照我们的想法解析数据
 白话:其实浏览最在乎响应体,显示的内容,程序员可以通过响应头来控制显示方式,显示编码....
 常见的头:
 content-type ---->可以让浏览器按照想要的格式以及编码解析
 content-disposition ----> 可以让浏览器以默认打开方式解析,还是以附件解析(下载时候才会用到);
 location ----> 可以给浏览器一个地址, 可以配合302的状态码一起完成重定向的动作
 响应体
 显示的内容!!!!!
 2.Response对象
 操作响应行:
 setStatus(int 状态码的值); ---->设置状态码
 操作响应头
 setHeader(String key,String value);
 操作响应体:
 getOutputStream() ---->获取字节流
 getWrite() ------> 获取字符流
 3.Response的作用
 1.完成重定向
 最终写法:
 resp.sendRedirect("路径");
 其实内部分成两个步骤
 setStatus(302)
 setHeader("location",路径)
 4.路径问题:
 相对:
 以./或者../开始的路径
 技巧:找对(当前)和(目标)的关系
 绝对:
 以"/"开始的:
 其实绝对路径前面省略
 客户端路径: -----> src, action, "重定向"都是客户端路径
 "http://ip地址:端口" ----> 但是如果你自己规定"http://ip地址:端口" 他就不会默认加了!!!!!!!
 服务器路径: -----> 只有"转发"是服务器路径
 "http://ip地址:端口/虚拟路径"
 虚拟路径建议我们动态获取 -----> req.getContextPath();可以动态获取虚拟路径
 5.如何输出字符数据到页面
 格式:  resp.getWriter().write("内容");
 注意:
 如果中文会出现乱码!!!
 原因:
 resp.getWriter(); 这个流是tomcat帮我们创建的流, 他采用默认编码是ISO-8859-1,它不支持中文,
 解决方案:
 1.设置writer的流的编码为"utf-8"; ---> resp.setCharacterEnconding("utf-8");
 2.告诉浏览器以"utf-8"的方式来解析 ---> resp.setHeader("content-type","text/html;charset=utf-8");
 我们最终的写法:
 resp.setContnxtType("text/html;charset=utf-8");
 6.ServletContext
 作用: 他是和tomcat通信的桥梁, 原因: ServletContext是Tomcat为每一个项目创建的,专门用和tomcat交互的对象,每一个项目只有一个ServletContext对象,
 特点: 每一个项目只有一个ServletContext对象, 而且这个Tomcat为每一个项目创建的
 功能:
 1.获取文件的MIME类型(了解!!!!)
 MIME: 可以让浏览器以指定引擎解析你的数据 ----> .jpg .png ---> text/html  IMG/JEPG
 注意:高版本浏览器(除了ie),都会自动识别类型
 2.可以作为域对象存储数据 setAttr... getAttr.... , removeAttr....(用的很少!!!!!)
 作用范围: 整个项目中有效, 所有的用户共享的东西放到这里
 3.获取文件的服务器端的真实路径
 其实为File,自己的创建的流而服务的, 原因File或者自己的创建的流不能采用相对路径, 不然都相对于tomcat/bin目录下,
 这是一定要绝对路径, 而绝对路径通过ServletContext对象来获取, 因为他可以读取catalina/localhost/xxx.xml得到docBase
 指向的项目的真实路径, 可以通过ServletContext对象getRealPath获取绝对路径!!!!
 注意: 一定注意自己的启动环境是谁!!!!!
 4.获取全局的参数:(用的也很少!!!!!)
 在web.xml中:
 <context-param>
 <param-name>username</param-name>
 <param-value>zhangsan</param-value>
 </context-param>
 String getInitParameter(String key);
 例如:
 String value = getServletContext().getInitParameter("username");
 
 增 ----> add, append,put,insert
 删 ----> remove delete drop
 该 ----> alter ,update, set
 查 ----> get, select
 
 | 
 |