| 
 
| 1.HttpServletRequest 功能:
 1.获取参数
 getContextPath() ---->获取虚拟路径
 getParameter()getParameterMap()getParameterValues();
 getSession(); ---->获取session对象
 getCookies(); ---->获取所有的cookie
 getHeader("键"); ----> user-agent : 用来解决浏览器兼容性问题
 2.请求转发
 getRequestDispather("服务器端路径(不要加虚拟路径,因为tomcat帮你加了!!!)").forword(req,resp);
 3.作为域对象存储数据,只不过一次请求有效
 setAttr
 getAttr
 removeAttr
 2.HttpServletResponse
 功能:
 1.重定向
 sendRedirect("路径") ---> 状态码302, 响应头: location
 2.会设置常见的响应头
 setContextType ------>"content-type" --->命令浏览器以什么样引擎解析, 用什么编码解析
 "content-disposition" ---->只有下载的时候才会使用
 3.回写cookie
 addCookie(cookie对象)
 4.回写响应体
 getWriter().write("内容")
 getOutputStream().write(字节数据)
 3.ServletContext
 功能:
 1.获取Mime类型 ---->告诉浏览器以什么引擎解析
 getMimeType(文件名);
 2.作为域对象存储数据 ----> 整个项目共享, 用户之间共享的数据可以用这个来保存
 3.获取真实路径
 getRealPath("路径")
 4.获取全局参数
 getInitParameter("键");
 4.Cookie
 功能:
 1.创建
 Cookie c = new Cookie(字符串的键, 字符串的值);
 2.操作
 req.getCookies();
 resp.addCookie(cookie对象)
 setMaxAge(0)
 3.功能
 setPath --->在同一个服务器中不同项目共享数据
 setDomain ---->在不同服务器共享数据
 5.Session ---->是一个域对象, 默认作用范围是一次会话, 底层基于cookie的
 功能:
 1.创建
 req.getSession();
 2.操作
 setxxx,getxxx,removeattr
 6.web常见的乱码问题
 1.req获取参数乱码
 get:
 参数在请求行中, 请求不准有中文,
 tomcat7
 的时候浏览器会将这些中文通过URLEncode编码成%AE的样子
 tomcat7得到参数后, 会用URLDecode解码并且用ios-8859-1的编码组装,因为ios-8859-1不支持中文, 会乱码
 tomcat7 解决乱码:
 String  username = req.getParamter("username");
 username = new String(username.getByte("iso-8859-1"),"utf-8");
 tomcat8:
 的时候浏览器会将这些中文通过URLEncode编码成%AE的样子
 tomcat8得到参数后, 会用URLDecode解码并且用utf-8的编码组装,因为utf-8支持中文, 不会乱码
 post:
 因为底层通过 req.getReader获取的参数 , 此时getReader的流是tomcat提供的,而字符流内置的编码是iso-8859-1,
 我们可以修改流的编码, 而且告诉浏览器以utf-8 的方式解析数据
 req.setCharacterEncoding("utf-8");
 字符流 = 字节码 + 编码
 2. resp响应中文的问题
 因为底层是通过resp.getWriter来操作,字符流内置一个编码,而且是tomcat提供的编码是iso-8859-1,会;乱码
 3.Cookie的乱码问题
 要存特殊字符的话, 要记得编码
 4.响应头的乱码问题:
 响应头不支持中文, 也要编码
 7.路径问题:
 标签:
 src
 action
 href
 全部采用客户端路径, tomcat帮我们省略了http://ip地址:端口/
 转发:
 采用的服务器端路径,tomcat帮我们加了http://ip地址:端口/虚拟路径
 重定向
 采用客户端路径, tomcat帮我们省略了http://ip地址:端口/
 自己创建的流, 自己定义的file对象
 什么都没加, 一定不要用相对路径, 要采用绝对路径, 一般和ServletContext一起出现!!!!
 
 | 
 |