• JSP response对象:响应客户端的请求并向客户端输出信息

    response 对象和 request 对象相对应,用于响应客户请求,向客户端输出信息。response 是 HttpServletResponse 的实例,封装了 JSP 产生的响应客户端请求的有关信息,如回应的 Header,回应本体(HTML 的内容)以及服务器端的状态码等信息,提供给客户端。请求的信 息可以是各种数据类型的,甚至是文件。

    response 对象的常用方法如表 1 所示。下面介绍 response 对象的应用。

    表1 response对象的常用方法
    方法 说明
    void addCookie(Cookie cookie) 添加 Cookie 的方法
    void addHeader(String name,String value) 添加 HTTP 文件指定的头信息
    String encodeURL(String url) 将 URL 予以编码,回传包含 Session ID 的 URL
    void flushBuffer() 强制把当前缓冲区内容发送到客户端
    int getBufferSize() 返回响应所使用的实际缓冲区大小,如果没使用缓冲区,
    则该方法返回 0
    void set BufferSize(int size) 为响应的主体设置首选的缓冲区大小
    boolean isCommitted() 一个 boolean,表示响应是否已经提交;提交的响应已经
    写入状态码和报头
    void reset() 清除缓冲区存在的任何数据,并清除状态码和报头
    ServletOutputStream getOutputStream() 返回到客户端的输出流对象
    void sendError(int xc[,String msg]) 向客户端发送错误信息
    void sengRedirect(java.lang.String location) 把响应发送到另一个位置进行处理
    void setCotentType(String type) 设置响应的 MIME 类型
    void setHeader(String name,String value) 设置指定名字的 HTTP 文件头信息
    void setCotentLength(int len) 设置响应头的长度

    动态设置响应的类型

    利用 page 指令设置发送到客户端文档响应报头的 MIME 类型和字符编码,如 <%@ page contentType="text/html;charset=utf-8"%>,它表示当用户访问该页面时,JSP 引擎将按照 contentType 的属性值即 text/html(网页)做出反应。

    如果要动态改变这个属性值来响应客户,就需要使用 response 对象的 setContentType(String s) 方法。语法格式如下:

    response.setContentType("MIME");

    MIME 可以为 text/html(网页)、text/plain(文本)、application/x-msexcel(Excel 文件)、application/msword(Word 文件)。

    【例1】通过 response 对象动态设置响应类型。

    使用 response 对象的 setContentType(String s) 方法动态设置响应的类型,代码如下:

    <%@ page contentType="text/html;charset=utf-8" %>
    <html>
    <head>
    <title>
        response 对象动态设置响应类型
    </title>
    </head>
    <body>
    <h2> response 对象动态设置响应类型 </h2>
    <p>请选择将当前页面保存的类型
    <form action=" " method="post" name=frm>
       <input type="submit" value="保存为word" name="submit1">
       <input type="submit" value="保存为Excel" name="submit2">
    </form>
    <%
    if(request.getParameter("submit1")!=null)
      response.setContentType("application/msword;charset=GB2312");
    if(request.getParameter("submit2")!=null)
      response.setContentType("application/x-msexcel;charset=GB2312");
    %>
    </body>
    </html>

    运行结果如图 1 所示。

    response对象动态设置响应类型
    图1 response对象动态设置响应类型

更多...

加载中...