文章目录
1 功能介绍
在JSP之中用户所发送过来的所有请求数据,都可以通过request对象进行接收,那么如果说服务器端要针对于客户端的请求进行回应的话,那么就可以使用response对象完成。
response是javax.servlet.http.HttpServletResponse
接口类型的实例,下面来观察此接口定义:
public interface HttpServletResponse
extends ServletResponse
可以发现HttpServletResponse继承了ServletResponse父接口,而且ServletResponse也只有HttpServletResponse一个子接口,这样的设计与HttpServletRequest是完全相似的,之所以这样设计,主要的目的依然是考虑到了协议的扩充。
实际上out.println()就表示一种服务器端对客户端的回应操作了,而且观察HttpServletResponse接口里面可以发现有这样一个方法:
(1)取得字节输出流:public ServletOutputStream getOutputStream() throws IOException
;
(2)取得字符打印流:public PrintWriter getWriter() throws IOException
。
范例:利用response输出
<%@ page pageEncoding="UTF-8"%>
<%
response.getWriter().print("<h1>Hello, Response!</h1>");
%>
通过此代码的运行可以发现,原来所有的可执行的HTML代码页面都是通过response回应的。
在request对象里面提供有一个处理接收请求乱码的操作:setCharacterEncoding()
,但是在response对象里面也提供有一个回应编码的操作:public void setCharacterEncoding(String charset)
。
除了设置编码之外,在page指令里面曾经使用过一个contentType的属性设置设置页面的MIME类型,那么这个类型也可以利用response对象设置:public void setContentType(String type)
。
2 设置头信息
所有在正常的请求和回应的过程之中都会附加有许多的信息,这些信息就可以称之为头信息。例如:IP地址就是通过头信息自动发送到服务端上的。
如果要想取得头信息那么只能够利用request对象(javax.servlet.http.HttpServletRequest接口)完成:
(1)取得头信息名字:public Enumeration getHeaderNames()
;
(2)取得头信息的内容:public String getHeader(String name)
;
范例:观察发送的头信息
<%@ page pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%
Enumeration<String> names = request.getHeaderNames(