Respone笔记

1 设置定时刷新的头

//设置定时刷新的头
response.setHeader("refresh", "5;url=http://www.baidu.com");

2重定向的实现

1 servlet1代码

package header;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Servlet1 extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        //没有响应 告知客户端去重定向到servlet2
        //1、设置状态码302
        //response.setStatus(302);
        //2、设置响应头Location
        //response.setHeader("Location", "/WEB14/servlet2");
        
        //封装成一个重定向的方法sendRedirect(url)
        response.sendRedirect("/WEB14/servlet2");
        
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

2 servlet2代码

package header;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Servlet2 extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.getWriter().write("hello haohao...");
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

3 手动设置状态码

//手动设置http响应行中的状态码
response.setStatus(404);

4 设置响应头

package header;

import java.io.IOException;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HeaderServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        Date date = new Date();
        
        //设置响应头
        response.addHeader("name", "zhangsan");
        //response.addIntHeader("age", 28);
        //response.addDateHeader("birthday", date.getTime());
        
        response.addHeader("name", "lisi");
        
        response.setHeader("age", "28");
        response.setHeader("age", "50");
        
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

5 适用js完成页面定时跳转

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
    window.onload = function(){
        var time = 5;
        var secondEle = document.getElementById("second");
        var timer = setInterval(function(){
            secondEle.innerHTML = time;
            time--;
            if(time==0){
                clearInterval(timer);
                location.href="http://www.baidu.com";
            }
                
        },1000);
    }
</script>
</head>
<body>
    恭喜你,注册成功,<span style="color:red" id="second">5</span>秒钟后跳转,如不跳转点击<a href="http://www.baidu.com">这里</a>!
</body>
</html>

6 使用respone的writer(乱码问题的解决)

package p4.response;



import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /*
         * 解决respone乱码问题
         * 1. 告知response查询的码表
         *       response.setCharacterEncoding("UTF-8");
         * 2. 通过一个头 Content-Type 告知客户端使用何种码表
         *       response.setHeader("Content-Type", "UTF-8");
         * 注:浏览器默认使用的本地默认语言的编码,一般为gbk;
         * 实际只写response.setHeader("Content-Type", "UTF-8");
         * 这一句代码也可以解决乱码问题。一看使用的是utf-8解码,response
         * 就会查询utf-8的编码表了。
         * 
         * 3 还可以直接使用封装好的方法进行解码
         * response.setContentType("text/html;charset=UTF-8");
         * 这个方法实际上也就是封装了上面两句话而已。
         */
        //1. 告知response查询的码表
        //response.setCharacterEncoding("UTF-8");
        
        //2. 通过一个头 Content-Type 告知客户端使用何种码表
        //response.setHeader("Content-Type", "text/html;charset=UTF-8");
        
        // 3 直接使用封装好的方法进行解决乱码问题
        response.setContentType("text/html;charset=UTF-8");
        
        PrintWriter writer = response.getWriter();
        writer.write("你好");
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

7 使用 response OutputStream

  ServletOutputStream getOutputStream()
          Returns a ServletOutputStream suitable for writing binary data in the response.

FileInputStream(String name)
          通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。

 

代码如下:

package p4.response;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ByteServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 1 使用response获得字节输出流
        ServletOutputStream out = response.getOutputStream();
        
        // 2 获得服务器上的图片的绝对路径
        String realPath = this.getServletContext().getRealPath("a.jpg");//"a.jpg"相对于web资源
        
        // 3 用一个输入流和文件相关联
        InputStream in = new FileInputStream(realPath);
        
        // 4 读取文件并输出
        int len=0;
        byte[] buffer = new byte[1024];
        while((len=in.read(buffer))!=-1){
            out.write(buffer, 0, len);
        }
        
        // 5 关闭资源
        in.close();
        out.close(); //respone 获得的流可以不用手动关闭, 会自动关闭。
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

8 完成文件的下载功能

问题 1:什么情况会文件下载?
答:浏览器不能解析的文件默认下载。

问题 2:什么情况下需要再服务端编写文件下载的代码?
答:理论上,浏览器可以解析的代码需要编写文件下载代码。
实际开发中,只要是需要下载的文件都编写文件下载代码。可能浏览器现在不能
解析,要是升级之后就可以解析了。

1 html代码实现

首先应该将相应的资源放入到web资源下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示文件下载</title>
</head>
<body>
    <h1>使用 a 标签直接指向服务器上的资源</h1>
    <a href="/WEB14/download/a.flv">a.flv</a><br>
    <a href="/WEB14/download/a.jpg">a.jpg</a><br>
    <a href="/WEB14/download/a.mp3">a.mp3</a><br>
    <a href="/WEB14/download/a.mp4">a.mp4</a><br>
    <a href="/WEB14/download/a.txt">a.txt</a><br>
    <a href="/WEB14/download/a.zip">a.zip</a><br>
    <h1>使用服务器端编码的方式实现文件下载</h1>
    <a href="/WEB14/downloadServlet?filename=a.flv">a.flv</a><br>
    <a href="/WEB14/downloadServlet?filename=a.jpg">a.jpg</a><br>
    <a href="/WEB14/downloadServlet?filename=a.mp3">a.mp3</a><br>
    <a href="/WEB14/downloadServlet?filename=a.mp4">a.mp4</a><br>
    <a href="/WEB14/downloadServlet?filename=a.txt">a.txt</a><br>
    <a href="/WEB14/downloadServlet?filename=a.zip">a.zip</a><br>
    <a href="/WEB14/downLoadServlet2?filename=美女.jpg">美女.jpg</a><br>
</body>
</html>

 

2 Servlet代码实现

package p4.response;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DownloadServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //1 获得要下载的文件的名称
        String filename = request.getParameter("filename");//a.flv
        
        // 2 告知客户端要下载的这个文件的类型-----客户端通过文件的 MIME 类型去区分类型
        response.setContentType(this.getServletContext().getMimeType(filename));
        
        // 3 告诉客户端该文件不是直接解析 而是以附件形式打开(下载)
        response.setHeader("Content-Disposition", "attachment;filename="+filename); //这个 filename 是固定的语法格式
       // 4 获取文件的绝对路径
        String path = this.getServletContext().getRealPath("download/"+filename);
        
        // 5 获得该文件的输入流
        InputStream in = new FileInputStream(path);
        
        // 6 获得输出流---通过 response 获得的输出流 用于向客户端写内容
        ServletOutputStream out = response.getOutputStream();
        
        // 7 文件拷贝的模板代码
        int len = 0;
        byte[] buffer = new byte[1024];
        while((len=in.read(buffer))>0){
        out.write(buffer, 0, len);
        } 
        
        // 8 关闭资源
        in.close();
        //out.close();//respone 获得的流可以不用手动关闭, 会自动关闭。
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

 

9 解决下载文件【中文的文件名】乱码问题

但是,如果下载中文文件,页面在下载时会出现中文乱码或不能显示文件名的情
况,原因是不同的浏览器默认对下载文件的编码方式不同ie UTF-8 编码方
式,而火狐 浏览器是 Base64 编码方式所里这里需要解决浏览器兼容性问题,
解决浏览器兼容性问题的首要任务是要辨别访问者是 ie 还是火狐(其他),通过
Http 请求体中的一 个属性可以辨别

解决乱码方法如下 :

//其中 agent 就是请求头 User-Agent 的值 
if
(agent.contains("MSIE")) { // IE浏览器 filenameEncoder = URLEncoder.encode(filename, "utf-8"); filenameEncoder = filenameEncoder.replace("+", " "); } else if (agent.contains("Firefox")) { // 火狐浏览器 BASE64Encoder base64Encoder = new BASE64Encoder(); filenameEncoder = "=?utf-8?B?" + base64Encoder.encode(filename.getBytes("utf-8")) + "?="; } else { // 其它浏览器 filenameEncoder = URLEncoder.encode(filename, "utf-8"); }

1 html部分代码

<body>
    <h1>使用服务器端编码的方式实现文件下载</h1>
    <a href="/WEBTest13/download?filename=美女.jpg">美女.jpg</a><br> <!--download这个是Servlet的<url-pattern>配置的名字-->
</body>

2 Servlet代码

public class DownloadServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        /*文件名称是中文的下载*/
        
        //1获取要下载的文件的名称           //美女.jpg这里就已经乱码了
        String filename = request.getParameter("filename");
        //System.out.println(filename);
        
        //2 解决request获取中文乱码
        //下面的方式可以解决resquest的get方法和post方式获取参数中文乱码问题。
        filename = new String(filename.getBytes("iso8859-1"), "UTF-8");
        //System.out.println(filename);//美女.jpg
        
        //3 告知客户端文件的类型  --- 客户端根据MIME判断下载的文件类型
        response.setContentType(this.getServletContext().getMimeType(filename));
        
        //4 告知客户端文件是以附件的形式打开下载
        response.setHeader("Content-Disposition", "attachment;filename="+filename);
        
        // 5 获取文件的绝对路径
        String path = this.getServletContext().getRealPath("download/"+filename);
        
        // 6 获取response输出流
        ServletOutputStream out = response.getOutputStream();
        // 7 用一个流和文件相关联
        InputStream in = new FileInputStream(path);
        // 8 读取文件并下载
        int len = 0;
        byte[] buffer = new byte[1024];
        while((len=in.read(buffer))!=-1){
            out.write(buffer, 0, len);
        }
        // 9关闭资源
        in.close();
        //out.close(); //response打开的流可以不用关闭。
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

3 解决上述问题

出现上述问题的原因是:

filename="+filename 客户端默认对名字进行解码

//4 告知客户端文件是以附件的形式打开下载
response.setHeader("Content-Disposition", "attachment;filename="+filename);

package p4.response;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import sun.misc.BASE64Encoder;

public class DownloadServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        /*文件名称是中文的下载*/
        
        //1获取要下载的文件的名称           //美女.jpg这里就已经乱码了
        String filename = request.getParameter("filename");
        //System.out.println(filename);
        
        //2 解决request获取中文乱码
        //下面的方式可以解决resquest的get方法和post方式获取参数中文乱码问题。
        filename = new String(filename.getBytes("iso8859-1"), "UTF-8");
        //System.out.println(filename);//美女.jpg
        
        //=====================================================
                 //解决下载文件 文件名为中文的时候 的乱码问题。
                 //filename="+filename 客户端默认对名字进行解码
        String agent = request.getHeader("User-Agent");
        String filenameEncoder ="";
        if (agent.contains("MSIE")) {
            // IE浏览器
            filenameEncoder = URLEncoder.encode(filename, "utf-8");
            filenameEncoder = filenameEncoder.replace("+", " ");
        } else if (agent.contains("Firefox")) {
            // 火狐浏览器
            BASE64Encoder base64Encoder = new BASE64Encoder();
            filenameEncoder = "=?utf-8?B?"
                    + base64Encoder.encode(filename.getBytes("utf-8")) + "?=";
        } else {
            // 其它浏览器
            filenameEncoder = URLEncoder.encode(filename, "utf-8");                
        }
        //==============================================================
        
        //3 告知客户端文件的类型  --- 客户端根据MIME判断下载的文件类型
        response.setContentType(this.getServletContext().getMimeType(filename));
        
        //4//告诉客户端该文件不是直接解析 而是以附件形式打开(下载)----filename="+filename 客户端默认对名字进行解码 
        response.setHeader("Content-Disposition", "attachment;filename="+filenameEncoder);
        
        // 5 获取文件的绝对路径
        String path = this.getServletContext().getRealPath("download/"+filename);
        
        // 6 获取response输出流
        ServletOutputStream out = response.getOutputStream();
        // 7 用一个流和文件相关联
        InputStream in = new FileInputStream(path);
        // 8 读取文件并下载
        int len = 0;
        byte[] buffer = new byte[1024];
        while((len=in.read(buffer))!=-1){
            out.write(buffer, 0, len);
        }
        // 9关闭资源
        in.close();
        //out.close(); //response打开的流可以不用关闭。
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

10 注意的细节点

public class ErrorServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
//response.getOutputStream();
//response.getWriter();
//response.sendRedirect(location);
} p
rotected void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
doGet(request, response);
}
}

11 实现验证码功能

1 动态生成验证码模板代码

  1 package checking;
  2 
  3 import java.awt.Color;
  4 import java.awt.Font;
  5 import java.awt.Graphics;
  6 import java.awt.Graphics2D;
  7 import java.awt.image.BufferedImage;
  8 import java.io.BufferedReader;
  9 import java.io.FileReader;
 10 import java.io.IOException;
 11 import java.util.ArrayList;
 12 import java.util.List;
 13 import java.util.Random;
 14 
 15 import javax.imageio.ImageIO;
 16 import javax.servlet.ServletException;
 17 import javax.servlet.http.HttpServlet;
 18 import javax.servlet.http.HttpServletRequest;
 19 import javax.servlet.http.HttpServletResponse;
 20 
 21 /**
 22  * 验证码生成程序
 23  */
 24 public class CheckImgServlet extends HttpServlet {
 25 
 26     // 集合中保存所有成语
 27     private List<String> words = new ArrayList<String>();
 28 
 29     @Override
 30     public void init() throws ServletException {
 31         // 初始化阶段,读取new_words.txt
 32         // web工程中读取文件,必须使用绝对磁盘路径
 33         String path = getServletContext().getRealPath("/WEB-INF/new_words.txt");
 34         try {
 35             BufferedReader reader = new BufferedReader(new FileReader(path));
 36             String line;
 37             while ((line = reader.readLine()) != null) {
 38                 words.add(line);
 39             }
 40             reader.close();
 41         } catch (IOException e) {
 42             e.printStackTrace();
 43         }
 44     }
 45 
 46     public void doGet(HttpServletRequest request, HttpServletResponse response)
 47             throws ServletException, IOException {
 48         // 禁止缓存
 49         // response.setHeader("Cache-Control", "no-cache");
 50         // response.setHeader("Pragma", "no-cache");
 51         // response.setDateHeader("Expires", -1);
 52 
 53         int width = 120;
 54         int height = 30;
 55 
 56         // 步骤一 绘制一张内存中图片
 57         BufferedImage bufferedImage = new BufferedImage(width, height,
 58                 BufferedImage.TYPE_INT_RGB);
 59 
 60         // 步骤二 图片绘制背景颜色 ---通过绘图对象
 61         Graphics graphics = bufferedImage.getGraphics();// 得到画图对象 --- 画笔
 62         // 绘制任何图形之前 都必须指定一个颜色
 63         graphics.setColor(getRandColor(200, 250));
 64         graphics.fillRect(0, 0, width, height);
 65 
 66         // 步骤三 绘制边框
 67         graphics.setColor(Color.WHITE);
 68         graphics.drawRect(0, 0, width - 1, height - 1);
 69 
 70         // 步骤四 四个随机数字
 71         Graphics2D graphics2d = (Graphics2D) graphics;
 72         // 设置输出字体
 73         graphics2d.setFont(new Font("宋体", Font.BOLD, 18));
 74 
 75         Random random = new Random();// 生成随机数
 76         int index = random.nextInt(words.size());
 77         String word = words.get(index);// 获得成语
 78 
 79         // 定义x坐标
 80         int x = 10;
 81         for (int i = 0; i < word.length(); i++) {
 82             // 随机颜色
 83             graphics2d.setColor(new Color(20 + random.nextInt(110), 20 + random
 84                     .nextInt(110), 20 + random.nextInt(110)));
 85             // 旋转 -30 --- 30度
 86             int jiaodu = random.nextInt(60) - 30;
 87             // 换算弧度
 88             double theta = jiaodu * Math.PI / 180;
 89 
 90             // 获得字母数字
 91             char c = word.charAt(i);
 92 
 93             // 将c 输出到图片
 94             graphics2d.rotate(theta, x, 20);
 95             graphics2d.drawString(String.valueOf(c), x, 20);
 96             graphics2d.rotate(-theta, x, 20);
 97             x += 30;
 98         }
 99         // 将验证码内容保存session
100         request.getSession().setAttribute("checkcode_session", word);
101 
102         // 步骤五 绘制干扰线
103         graphics.setColor(getRandColor(160, 200));
104         int x1;
105         int x2;
106         int y1;
107         int y2;
108         for (int i = 0; i < 30; i++) {
109             x1 = random.nextInt(width);
110             x2 = random.nextInt(12);
111             y1 = random.nextInt(height);
112             y2 = random.nextInt(12);
113             graphics.drawLine(x1, y1, x1 + x2, x2 + y2);
114         }
115 
116         // 将上面图片输出到浏览器 ImageIO
117         graphics.dispose();// 释放资源
118         
119         //将图片写到response.getOutputStream()中
120         ImageIO.write(bufferedImage, "jpg", response.getOutputStream());
121 
122     }
123 
124     public void doPost(HttpServletRequest request, HttpServletResponse response)
125             throws ServletException, IOException {
126         doGet(request, response);
127     }
128 
129     /**
130      * 取其某一范围的color
131      * 
132      * @param fc
133      *            int 范围参数1
134      * @param bc
135      *            int 范围参数2
136      * @return Color
137      */
138     private Color getRandColor(int fc, int bc) {
139         // 取其随机颜色
140         Random random = new Random();
141         if (fc > 255) {
142             fc = 255;
143         }
144         if (bc > 255) {
145             bc = 255;
146         }
147         int r = fc + random.nextInt(bc - fc);
148         int g = fc + random.nextInt(bc - fc);
149         int b = fc + random.nextInt(bc - fc);
150         return new Color(r, g, b);
151     }
152 
153 }
View Code

 2 html部分代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
    window.onload = function(){
        
    }
    
    function changeImg(obj){
        obj.src="/WEB14/checkImg?time="+new Date().getTime();
    }
    
</script>

</head>
<body>    
    <form action="/WEB13/login" method="post">
        用户名:<input type="text" name="username"><br/>
        密码:<input type="password" name="password"><br/>
        验证码:<input type="text" name="username"><img onclick="changeImg(this)" src="/WEB14/checkImg"><br/>
        <input type="submit" value="登录"><br/>
    </form>
</body>
</html>

3 web.xml配置如下

<servlet>
    <description></description>
    <display-name>CheckImgServlet</display-name>
    <servlet-name>CheckImgServlet</servlet-name>
    <servlet-class>p4.CheckImgServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>CheckImgServlet</servlet-name>
    <url-pattern>/checkImg</url-pattern>
  </servlet-mapping>

4 new_words.txt的内容

一唱一和
一呼百应
一干二净
一举两得
一落千丈
一模一样
一暴十寒
一日千里
一五一十
一心一意
两面三刀
三长两短
三番五次
三三两两
三头六臂
三心二意
三言两语
四分五裂
四面八方
四通八达
四平八稳
五光十色
五湖四海
五花八门
五颜六色
六神无主
七颠八倒
七零八落
七拼八凑
七上八下
七手八脚
七嘴八舌
八面玲珑
九死一生
十全十美
百发百中
百孔千疮
百战百胜
百依百顺
千变万化
千差万别
千军万马
千山万水
千丝万缕
千辛万苦
千言万语
千真万确
千锤百炼
千方百计
千奇百怪
千姿百态
千钧一发
千虑一得
千虑一失
千篇一律
万水千山
万无一失
万众一心
万紫千红
万死一生
推心置腹
肝胆相照
情同手足
志同道合
风雨同舟
荣辱与共
同甘共苦
关怀备注
心心相印
海誓山盟
拔刀相助
亲密无间
万紫千红
春暖花开
鸟语花香
姹紫嫣红
花红柳绿
百花争艳
锦上添花
火树银花
昨日黄花
春花秋月
过时黄花
花团锦簇
花枝招展
崇山峻岭
山明水秀
山穷水尽
大好山河
刀山火海
地动山摇
高山深涧
悬崖峭壁
峰峦雄伟
漫山遍野
江山如画
锦绣山河
五彩缤纷
五颜六色
一碧千里
万紫千红
花红柳绿
翠色欲流
姹紫嫣红
五光十色
青红皂白
绿水青山
不可多得
凤毛麟角
九牛一毛
绝无仅有
空前绝后
寥寥无几
寥若晨星
宁缺毋滥
前所未有
屈指可数
三三两两
铁树开花
微乎其微
一麟半爪
一丝一毫
百里挑一
沧海一粟
千古绝唱
摩肩接踵
车水马龙
川流不息
纷至沓来
花花世界
举袖为云
挥汗如雨
络绎不绝
门庭若市
万人空巷
水泄不通
人声鼎沸
人欢马叫
人山人海
震耳欲聋
座无虚席
包罗万象
琳琅满目
美不胜收
目不暇接
无奇不有
无穷无尽
无所不包
五花八门
眼花缭乱
洋洋大观
一应俱全
应有尽有
应接不暇
比比皆是
不可计数
层出不穷
绰绰有余
多多益善
多如牛毛
俯拾皆市
举不胜举
漫山遍野
星罗棋布
丰富多彩
九霄云外
腾云驾雾
壮志凌云
风云变幻
风起云涌
行云流水
风卷残云
浮云蔽日
孤云野鹤
烘云托月
过眼云烟
烟消云散
大雨倾盆
血雨腥风
风雨交加
风调雨顺
枪林弹雨
风雨同舟
风雨无阻
和风细雨
狂风暴雨
满城风雨
滂沱大雨
春风化雨
风雨飘摇
斜风细雨
未雨绸缪
水流湍急
水平如镜
高山流水
千山万水
水滴石穿
水乳交融
滴水不漏
杯水车薪
洪水猛兽
流水无情
直言不讳
无所顾忌
拐弯抹角
真心诚意
故弄玄虚
侃侃而谈
滔滔不绝
虚情假意
推心置腹
旁敲侧击
喋喋不休
慢条斯理
含糊其词
唠唠叨叨
振振有辞
肆无忌惮
大言不惭
娓娓动听
绘声绘色
对答如流
自圆其说
闲言碎语
闭月羞花
沉鱼落雁
出水芙蓉
明眸皓齿
美如冠玉
倾国倾城
国色天香
鹤发童颜
眉清目秀
和蔼可亲
心慈面善
张牙舞爪
愁眉苦脸
冰清玉洁
雍容华贵
文质彬彬
威风凛凛
老态龙钟
虎背熊腰
如花似玉
容光焕发
落落大方
骨瘦如柴
大腹便便
面黄肌瘦
其貌不扬
蓬头垢面
弱不禁风
口若悬河
对答如流
滔滔不绝
谈笑风生
高谈阔论
豪言壮语
夸夸其谈
花言巧语
忐忑不安
心惊肉跳
心神不定
心猿意马
心慌意乱
七上八下
心急如焚
班门弄斧
孤芳自赏
居功自傲
目中无人
妄自尊大
忘乎所以
惟我独尊
自高自大
自鸣得意
自我陶醉
自命不凡
目空一切
不骄不躁
功成不居
戒骄戒躁
洗耳恭听
虚怀若谷
慎言谨行
学无止境
学而不厌
真才实学
学而不倦
发奋图强
废寝忘食
争分夺秒
孜孜不倦
笨鸟先飞
闻鸡起舞
自强不息
只争朝夕
不甘示弱
全力以赴
力争上游
披荆斩棘
奋不顾身
舍己为人
坚强不屈
赤胆忠心
不屈不挠
忠贞不渝
誓死不二
威武不屈
舍死忘生
肝胆相照
克己奉公
一丝不苟
两袖清风
见礼忘义
永垂不朽
顶天立地
豁达大度
兢兢业业
卖国求荣
恬不知耻
贪生怕死
厚颜无耻
神采奕奕
眉飞色舞
昂首挺胸
惊慌失措
漫不经心
垂头丧气
没精打采
愁眉苦脸
大惊失色
炯炯有神
怒发冲冠
一目十行
一日千里
一字千金
百发百中
一日三秋
不毛之地
不计其数
胆大包天
寸步难行
一步登天
千钧一发
观者如云
挥金如土
铁证如山
爱财如命
稳如泰山
门庭若市
骨瘦如柴
冷若冰霜
如雷贯耳
守口如瓶
浩如烟海
高手如林
阳春三月
春光明媚
春回大地
春暖花开
春意盎然
春意正浓
风和日丽
春花烂漫
鸟语花香
百鸟鸣春
百花齐放
莺歌燕舞
赤日炎炎
烈日炎炎
骄阳似火
挥汗如雨
大汗淋漓
鸟语蝉鸣
万木葱茏
枝繁叶茂
莲叶满池
秋高气爽
天高云淡
秋风送爽
秋菊怒放
秋菊傲骨
秋色迷人
秋色宜人
金桂飘香
果实累累
北雁南飞
满山红叶
五谷丰登
芦花飘扬
天寒地冻
北风呼啸
滴水成冰
寒冬腊月
瑞雪纷飞
冰天雪地
冰封雪盖
漫天飞雪
白雪皑皑
冰封大地
冰天雪地
东方欲晓
旭日东升
万物初醒
空气清醒
雄鸡报晓
晨雾弥漫
晨光绚丽
烈日当头
丽日临空
艳阳高照
万里无云
碧空如洗
日落西山
夕阳西斜
残阳如血
炊烟四起
百鸟归林
华灯初上
夜幕低垂
日薄西山
夜深人静
月明星稀
夜色柔美
夜色迷人
深更半夜
漫漫长夜
风光秀丽
人山人海
车水马龙
宁静和谐
草木苍翠
竹篱瓦舍
山幽路辟
小桥流水
直指青云
古色古香
青砖素瓦
耸入碧云
机器轰鸣
铁流直泻
热气腾腾
钢花飞溅
粉饰一新
门可罗雀
冷冷清清
错落有致
富丽堂皇
设施齐全
气势雄伟
金碧辉煌
风景如画
闻名遐迩
井然有序
杂乱无章
布局巧妙
错落有致
宽阔平坦
崎岖不平
拥挤不堪
畅通无阻
花红柳绿
花色迷人
花香醉人
花枝招展
百花齐放
百花盛开
百花争艳
绚丽多彩
五彩缤纷
姹紫嫣红
绿草如茵
一碧千里
杂草丛生
生机勃勃
苍翠挺拔
郁郁葱葱
枯木逢春
秀丽多姿
青翠欲滴
林海雪原
耸入云天
瓜果蔬菜
清香鲜嫩
青翠欲滴
果园飘香
果实累累
果实饱满
鲜嫩水灵
象征和平
乳燕初飞
婉转悦耳
莺歌燕舞
翩然归来
枝头嬉戏
灰不溜秋
叽叽喳喳
鹦鹉学舌
婉转悦耳
笨嘴学舌
利嘴如铁
钢爪如钉
神气活现
昂首挺胸
肥大丰满
自由自在
引吭高歌
腾空而起
狂奔飞驰
膘肥体壮
昂首嘶鸣
瘦骨嶙峋
行动迟缓
俯首帖耳
膘肥体壮
川流不息
呼啸而过
穿梭往来
缓缓驶离
一叶扁舟
扬帆远航
乘风破浪
雾海夜航
追波逐浪
划破云层
直冲云霄
穿云而过
银鹰展翅
学习用品
美观实用
小巧玲珑
造型优美
设计独特
栩栩如生
活泼可爱
惹人喜爱
爱不释手
雨后彩虹
彩桥横空
若隐若现
光芒万丈
大雪纷飞
大雪封山
鹅毛大雪
漫天飞雪
瑞雪纷飞
林海雪原
风雪交加
雪上加霜
寒霜袭人
霜林尽染
垂露欲滴
朝露晶莹
日出露干
电光石火
雷电大作
惊天动地
春雷滚滚
电劈石击
雷电交加
阴雨连绵
牛毛细雨
秋雨连绵
随风飘洒
倾盆大雨
狂风暴雨
大雨滂沱
瓢泼大雨
大雨淋漓
暴雨如注
秋风送爽
金风送爽
北风呼啸
微风习习
寒风刺骨
风和日丽
大雾迷途
云雾茫茫
雾似轻纱
风吹雾散
云消雾散
彩云满天
天高云淡
乌云翻滚
彤云密布
彩霞缤纷
晚霞如火
朝霞灿烂
丹霞似锦
满天星斗
众星捧月
群星灿烂
万点繁星
月出东墙
月出东山
玉兔东升
月光皎洁
月色迷人
月牙初升
旭日东升
日上三竿
一轮红日
日高三尺
艳阳高照
烈日当头
骄阳似火
日影西斜
苦口婆心
口若悬河
心平气和
不慌不忙
语重心长
热情洋溢
恭恭敬敬
洗耳恭听
亲密无间
形影不离
情同手足
团结友爱
朝夕相处
人山人海
人声喧哗
人声嘈杂
人如潮涌
摩肩接踵
倾盆大雨
狂风暴雨
大雨滂沱
瓢泼大雨
读书学习
神情专注
学而不厌
学无止境
专心致志
日积月累
似懂非懂
普天同庆
彩旗飞舞
欢天喜地
张灯结彩
彻夜狂欢
兴高采烈
手舞足蹈
笨手笨脚
挤眉弄眼
View Code

12 总结

HttpServletResponse总结

原文地址:https://www.cnblogs.com/jepson6669/p/8321393.html