Servlet的学习(三)-request和respons
来源:互联网 发布:wow 1.12数据库 编辑:程序博客网 时间:2024/06/10 00:24
【零】简介
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象和代表响应的response对象,request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。
【一】response对象
response对象即响应对象,而相应分为如下几部分:
①响应行:
响应行中可以设置状态码,方法为:void setStatus(int sc)
②响应头:
响应头的特点是:(key:value的形式,一个key可以对应一个value,也可以对应多个value,最常用的还是对应一个value)
可以通过以下的方法设置头信息:
可以通过以下的方法设置头信息:
void setHeader(String name, String value) (一个key对应一个value)
例如,下面两个语句执行完了之后:setHeader("username","zhangsan");
setHeader("username","lisi");
结果是:username:lisi
setHeader("username","lisi");
结果是:username:lisi
void setIntHeader(String name, int value) void setDateHeader(String name, long date) 值是毫秒值(int 秒long 毫秒)void addHeader(String name, String value) (一个key对应多个value)
例如,下面两个语句执行完了之后:
setHeader("username","zhangsan");
setHeader("username","lisi");
结果是:username:zhangsan,lisi
setHeader("username","lisi");
结果是:username:zhangsan,lisi
void addIntHeader(String name, int value) void addDateHeader(String name, long date)
③响应体:
ServletOutputStream getOutputStream() 字节输出流PrintWriter getWriter() 字符输出流
【二】request对象
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。
通过Request对象进行的常用操作有如下几个:
①获取客户机信息
这里面有几个比较重要的方法:
●getRemoteAddr获取IP地址
●getMethod()获取请求方式
●getContextPath()获取虚拟路径
②获取请求头信息
③获取请求参数
④利用请求域传递对象
⑤重定向和转发的区别
【三】案例
案例中会实现的功能 :
①重定向(登陆页面)
* 需求:登陆页面,用户名和密码的登陆页面,用户名和密码都是admin,如果有一个不是,重定向到登陆页面,重新登陆。
* 需求:登陆页面,用户名和密码的登陆页面,用户名和密码都是admin,如果有一个不是,重定向到登陆页面,重新登陆。
主要语句为response.sendRedirect("要重定向的页面的路径");
②页面定时刷新(页面读秒操作)
在头部加上<meta http-equiv="refresh" content="秒数,如6;url=要刷新后重定向的页面的路径">
③禁用浏览器缓存(三个头信息)
应用:●网银●页面的数据是时时刻刻发送变化的。
②页面定时刷新(页面读秒操作)
在头部加上<meta http-equiv="refresh" content="秒数,如6;url=要刷新后重定向的页面的路径">
③禁用浏览器缓存(三个头信息)
应用:●网银●页面的数据是时时刻刻发送变化的。
Cache-Control : no-cache
Expires: -1 值是日期类型(setDateHeader())
Pragma : no-cache
④向页面输出中文(乱码问题)
Expires: -1 值是日期类型(setDateHeader())
Pragma : no-cache
④向页面输出中文(乱码问题)
字节:ServletOutputStream getOutputStream() 字节输出流,不一定乱码。
如果乱码了,如何解决呢?如下:
①首先,设置浏览器打开文件时所采用的编码
response.setHeader("Content-Type", "text/html;charset=UTF-8");
②其次,要使得获取字符串byte数组时编码和打开文件时编码一致。
response.getOutputStream().write("要输出的内容".getBytes("UTF-8"))
字符:PrintWriter getWriter() 字符输出流,肯定乱码,原因是:response缓冲区的编码,默认值ISO-8859-1,而这种编码不支持中文。
如果乱码了,如何解决呢?如下:
①首先,设置浏览器打开文件时所采用的编码
response.setHeader("Content-Type", "text/html;charset=UTF-8");
②其次,要使得获取字符串byte数组时编码和打开文件时编码一致。
response.getOutputStream().write("要输出的内容".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.setCharacterEncoding("UTF-8");
②设置浏览器打开文件所采用的编码
response.setHeader("Content-Type", "text/html;charset=UTF-8");
上面两行语句有个简写方式
response.setContentType("text/html;charset=UTF-8");
0 0
- Servlet的学习(三)-request和respons
- Servlet笔记(三) Request和Session
- servlet的context、session和request
- servlet request和response的模拟单元测试
- Servlet---Request和Response的用法演示
- 8 servlet的入门request和response
- servlet request常见应用三
- Servlet:response和request
- 关于servlet和jsp的学习总结三(详细)
- Struts学习笔记(三)struts2中获得request、response和session的三种方法
- servlet的request对象
- servlet的request详解
- SoapUI-传递 Respons header 中的值到 Request header
- Servlet中的Request和Response的请求和响应概述
- Servlet学习笔记 -- day02 Request
- JavaWeb学习三(细解Servlet和ServletContext)
- Servlet学习笔记---request各种路径获得的区别
- servlet中的request和response
- html之 rel="external nofollow"
- SICP 习题2.3 计算矩形面积和周长
- 注册广播
- hdu 4288 Coder(线段树)
- 组合模式
- Servlet的学习(三)-request和respons
- Java线程常用的操作方法
- 最长递增子序列
- html5 drop drag实现购物车加入书
- java学习笔记:管道流PipedInputStream和PipedOutputStream
- 由工业4.0想到的
- leetcode:Intersection of Two Arrays
- RN学习过程中遇到的问题记录
- 面试题