response request对象
来源:互联网 发布:可视化编程软件 知乎 编辑:程序博客网 时间:2024/05/18 01:50
response对象(响应对象)
* 想要获取客户端的内容,使用request对象。对客户端做出响应使用response对象。 * 响应: * 响应行 * 状态码: void setStatus(int sc) 设置状态码 * 响应头(key:value的形式,一个key对应一个value,一个key对应多个value) * 设置头信息 void setHeader(String name, String value) (一个key对应一个value)经常使用的 setHeader("aa","bb"); setHeader("aa","cc"); 结果:aa:cc void setIntHeader(String name, int value) void setDateHeader(String name, long date) 值是毫秒值(int 秒 long 毫秒) void addHeader(String name, String value) (一个key对应多个value) addHeader("aa","bb"); addHeader("aa","cc"); 结果:aa:bb,cc void addIntHeader(String name, int value) void addDateHeader(String name, long date) * 响应体 ServletOutputStream getOutputStream() 字节输出流 PrintWriter getWriter() 字符输出流 * 案例 重定向(登陆页面) * 登陆页面重定向 * 状态码302 应头location * 需求:登陆页面,用户名和密码的登陆页面,用户名和密码都是admin, 如果有一个不是,重定向到登陆页面,重新登陆。 // 设置302的状态码 response.setStatus(302); // 设置地址 response.setHeader("location", "/day10/response/login.html"); // response对象提供了一个方法,可以完成重定向。 response.sendRedirect("/day10/response/login.html"); 页面定时刷新(页面读秒操作) * 响应的头 refresh <meta http-equiv="refresh" content="5;url=/day10/response/login.html"> 禁用浏览器缓存(三个头信息) * 应用:网银。页面的数据是发送变化的。 Cache-Control : no-cache Expires: -1 值是日期类型(setDateHeader()) Pragma : no-cache 向页面输出中文(乱码问题) 字节:ServletOutputStream getOutputStream() 字节输出流 * 字节的输出中文的乱码 * * 输出哈罗我的是否乱码呢? * * 不一定乱码。 * * 解决办法 * * 设置浏览器打开文件时所采用的编码 * response.setHeader("Content-Type", "text/html;charset=UTF-8"); * * 获取字符串byte数组时编码和打开文件时编码一致。 * "哈罗我的".getBytes("UTF-8") PrintWriter getWriter() 字符输出流 * 字符输出中文是否乱码呢? * * 肯定乱码 * response缓冲区的编码,默认值ISO-8859-1 * * 设置response缓冲编码 * response.setCharacterEncoding("UTF-8"); * * 设置浏览器打开文件所采用的编码 * response.setHeader("Content-Type", "text/html;charset=UTF-8"); * * 简写方式 * response.setContentType("text/html;charset=UTF-8"); * 总结:response对象输出中文,产生乱码。 * 字节 * 解决方案 * 设置浏览器打开文件时采用的编码 response.setHeader("Content-Type", "text/html;charset=UTF-8"); * 获取字符串的byte数组采用的编码 "哈罗我的".getBytes("UTF-8") * 字符 * 解决方法 * 设置浏览器打开文件时采用的编码 response.setHeader("Content-Type", "text/html;charset=UTF-8"); * 设置response缓冲区的编码 response.setCharacterEncoding("UTF-8"); * 简写的方式(等于上面的两句) * response.setContentType("text/html;charset=UTF-8"); 实现文件下载(初级的下载) * 超链接,浏览器可以解析直接打开。 * 弹出下载窗口。 * 前提条件:先准备一个文件。 * 读取文件,读入到输入流中。 * 通过response读出到浏览器端。 * 设置头信息 * Content-Disposition attachment;filename=文件名称 * 以附件的形式打开。 实现验证码(*****)
request对象(请求对象)
ServletRequest | HttpServletRequest 获取客户机信息 getRemoteAddr(*****) 获取IP地址 getMethod() (*****) 获取请求方式 getContextPath()(*****) 获取虚拟路径 获取请求头信息 String getHeader(String name) long getDateHeader(String name) int getIntHeader(String name) * 请求头 referer 记住当前网页的来源 User-Agent 判断浏览器 if-modified-since 控制缓存 获取请求参数(*****) String getParameter(String name) (*****) String[] getParameterValues(String name)(*****) Map getParameterMap()(*****) Enumeration getParameterNames()(用的比较少) 乱码问题解决: * POST请求乱码 :request.setCharacterEncoding("utf-8"); * GET请求乱码 解决方案一:修改tomcat/conf/server.xml <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/> * 必须有修改tomcat服务器配置文件权限 解决方案二:逆向编解码 username = URLEncoder.encode(username, "ISO8859-1"); username = URLDecoder.decode(username, "utf-8"); 解决方案三:简写的方式(推荐使用) username = new String(username.getBytes("ISO-8859-1"),"utf-8"); * request获取中文数据乱码(总结:) * post提交 * 设置request缓冲区的编码 request.setCharacterEncoding("utf-8"); * get提交 * String构造方法 username = new String(username.getBytes("ISO-8859-1"),"utf-8"); 利用请求域传递对象(request域对象) 重定向和转发的区别(转发)(*****) * 域对象 ServletContext:服务器一启动,为每个web应用创建一个ServletContext对象,所有servlet实例共享对象。 request:一次请求的范围。 * setAttribute("",""); * getAttribute(""); * removeAttribute(""); * getRequestDispatcher(String path) ,返回是RequestDispatcher:对象 * RequestDispatcher: * forward(ServletRequest request, ServletResponse response)(经常使用) 转发的方法 * include(ServletRequest request, ServletResponse response)(了解) 包含
阅读全文
0 0
- Request和Response对象
- Request和Response对象
- request和response对象
- request response对象
- Request、Response、Server对象
- Response & Request 对象
- Request Response对象
- Request和Response对象
- response、request对象
- Request和Response对象
- nodejs request & response 对象
- request和response对象
- request与response对象.
- Request与response对象
- response和request对象
- Request和Response对象
- request和response对象
- response request对象
- JVM的内存区域划分
- PHP编程过程中需要了解的this,self,parent的区别
- CSS3 perspective-origin
- python中对象相等判断(is、==与__dict__的使用)
- Cockroach数据库初体验
- response request对象
- 【C】控制结构和语句
- Makefile和GCC日常用法
- 双十一卖的东西真的是一年中最便宜的吗?
- tiny4412开发板蜂鸣器驱动
- Unity3d常用快捷键
- codeforces 887B
- 抽象类(abstract class)和接口(Interface)的区别
- CS本科毕业生能拿到45万年薪?