zoukankan      html  css  js  c++  java
  • HttpServletResponse类

      当客户端浏览器请求服务器后,该服务器就会将返回信息封装到HttpServletResponse里进行响应,返回信息中的第一行为状态行,共分为5类,

      100-199:表示服务端成功接受请求,但要求客户端继续提交下一次请求才能完成全部处理过程。

      200-299:表示服务端已成功接受请求,并完成了全部处理过程。

        300-399:表示客户端请求资源已经到了别的位置,并向客户端提供了一个新地址,一般这个新地址由HTTP响应头的Location字段指定。

      400-499:表示客户端请求有误。

      500-599:表示服务端出现错误。

      response.setStatus(*);//设置状态

      response.sendReadirect("URL") //可以是绝对路径www.baidu.com  也可以是相对的(webdemo/test.html);

      响应浏览器请求,返回数据例子 

      //设置响应头数据

      //在浏览器页面上输出YES

      //输出字符流 PrintWriter out = response.getWriter();

      //输出字节流 OutputStream out = response.getOutputStream();

     1 package com.demo.servlet;
     2 
     3 import java.io.IOException;
     4 import java.io.PrintWriter;
     5 import java.util.Calendar;
     6 
     7 import javax.servlet.ServletException;
     8 import javax.servlet.http.HttpServlet;
     9 import javax.servlet.http.HttpServletRequest;
    10 import javax.servlet.http.HttpServletResponse;
    11 
    12 /**
    13  * 
    14  * ClassName: ExploreResponseHeader
    15  * @Description: 验证响应消息头设置情况
    16  * @author zgb
    17  * @date 2016-7-2
    18  */
    19 public class ExploreResponseHeader extends HttpServlet {
    20 
    21     
    22     private static final long serialVersionUID = 1L;
    23 
    24     //处理客户端的get请求
    25     protected void doGet(HttpServletRequest request, HttpServletResponse response)
    26             throws ServletException, IOException {
    27         
    28         response.setContentType("text/html;charset=UTF8");
    29         response.setHeader("Content-Length", "1234");
    30         //加一个NewFileld1字段
    31         response.addHeader("NewFileld1", "value1");
    32         //获得Calender对象
    33         Calendar calendar = Calendar.getInstance();
    34         calendar.set(2016, 07,02);
    35         //增加一个Mydate字段
    36         response.addDateHeader("MyDate", calendar.getTimeInMillis());
    37         //加一个NewFileld2字段
    38         response.addIntHeader("NewFileld2", 3000);
    39         //设置状态为500
    40         response.setStatus(500);
    41         //获取用于输入输出消息的PrintWriter对象
    42         PrintWriter out = response.getWriter();
    43         out.println("YES");
    44         
    45     }
    46 
    47 }

    文件下载

     1 package com.demo.servlet;
     2 
     3 import java.io.FileInputStream;
     4 import java.io.IOException;
     5 import java.io.InputStream;
     6 import java.io.OutputStream;
     7 
     8 import javax.servlet.ServletException;
     9 import javax.servlet.http.HttpServlet;
    10 import javax.servlet.http.HttpServletRequest;
    11 import javax.servlet.http.HttpServletResponse;
    12 
    13 /**
    14  * 
    15  * ClassName: DownFlieServlet
    16  * @Description: 下载文件
    17  * @author zgb
    18  * @date 2016-7-2
    19  */
    20 public class DownFlieServlet extends HttpServlet{
    21 
    22     /**
    23      * @Fields serialVersionUID : TODO
    24      */
    25     private static final long serialVersionUID = 1L;
    26 
    27     @Override
    28     protected void doGet(HttpServletRequest requset, HttpServletResponse response)
    29             throws ServletException, IOException {
    30         //1.获取要下载文件的绝对路径
    31         String realPath = this.getServletContext().getRealPath("/download/2.png");
    32         //2.获取下载文件的名称
    33         String fileName = realPath.substring(realPath.lastIndexOf("\")+1);
    34         //3.设置content—dispositon响应控制浏览器以下载的形式打开文件
    35         response.setHeader("content-disposition", "attachment;fileName="+fileName);
    36         //4.获取要下载的文件输入流
    37         InputStream stream = new FileInputStream(realPath);
    38         
    39         int len = 0;
    40         
    41         byte[] buffer = new byte[1024];
    42         
    43         OutputStream out = response.getOutputStream();
    44         
    45         while((len = stream.read(buffer))>0){
    46             
    47             out.write(buffer,0,len);
    48             
    49         }
    50         stream.close();
    51         
    52     }
    55 
    56 }

     

  • 相关阅读:
    IEEE 754 浮点数的表示方法
    .NET Core 3.0及以上的EFCore连接MySql
    一些常见错误/技巧/结论总结
    2-sat学习笔记
    动态DP学习笔记
    动态规划优化算法——wqs二分 and 折线优化
    扩展莫队小总结(二) (回滚莫队/二次离线莫队)
    CF1504X Codeforces Round #712
    CF1500D Tiles for Bathroom (递推+大讨论)
    CF1486X Codeforces Round #703
  • 原文地址:https://www.cnblogs.com/danwuxinbolg/p/5635576.html
Copyright © 2011-2022 走看看