Servlet-response参数

response参数

javax.servlet.http.HttpServletResponse

response是代表HTTP响应信息的对象。response一般用来把数据响应给浏览器

常用方法

返回值 方法 说明
void setCharacterEncoding(String encoding) 设置字符编码类型为encoding
PrintWriter getWriter() 返回一个输出字符流
int getCharacterEncoding() 取得字符编码类型
void sendRedirect() 重定向客户的请求到指定页面
void addCookie(Cookie cookie) 给客户端添加一个Cookie对象,以保存客户端的信息
void addDateHeader(String name,long value) 添加一个日期类型的HTTP首部信息,覆盖同名的HTTP首部
void addIntHeader(String name,int value) 添加一个整型的HTTP首部,并覆盖旧的HTTP首部
String encodeRedirectURL(String url) 对使用的URL进行编译
String encodeURL(String url) 封装URL并返回到客户端,实现URL重写
void flushBuffer() 清空缓冲区
String getContentType() 取得MIME类型
ServletOutputStream getOutputStream() 返回一个二进制输出字节流
void reset() 重设response对象
void resetBuffer() 重设缓冲区
void sendError(int sc) 向客户端发送HTTP状态码的出错信息
void setBufferSize(int size) 设置缓冲区的大小为size
void setContentLength(int length) 设置响应数据的大小为size
void setContentType(String type) 设置MIME类型
void setDateHeader(String s1,long l) 设置日期类型的HTPP首部信息
void setLocale(Locale locale) 设置本地化为locale
void setStatus(int status) 设置状态码为status(200, 500, 404等)

由于服务器在通过response获取的流发送数据时,默认使用iso8859-1编码,而这个编码中没有中文字符,所以在通过response获取的流发送中文数据时,会出现乱码问题。

解决方法: response.setContentType("text/html;charset=utf-8");

重定向

当浏览器向服务器发请求访问某一个资源A,资源A在响应时通知浏览器需要再进一步请求才能获取到对应的资源,浏览器再次发请求访问服务器中的资源B,最终由资源B响应浏览器要获取的资源,这个过程叫做重定向。

重定向代码

response.sendRedirect(所重定向到资源的URL地址);

重定向图解

重定向特点

  1. 重定向是两次请求、两次响应
  2. 重定向前后,浏览器的地址栏地址会发生变化。(因为两次请求都是通过浏览器发起,浏览器知道这个跳转的过程,因此地址栏地址会变化)
  3. 重定向前后的request对象不是同一个(因为重定向是两次请求,服务器会根据两次请求创建两个不同的request对象,request对象不是同一个,也就不能在重定向时通过request带数据到目的地。)
  4. 重定向前后的两个资源可以是来自不同的web应用,甚至可以是来自不同的服务器。(进行跳转的两个资源之间没有限制)
posted @ 2020-06-12 15:37  zpk-aaron  阅读(579)  评论(0编辑  收藏  举报