• 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总结

  • 相关阅读:
    RTMP协议在线教育课堂web视频直播点播平台EasyDSS鉴权模块优化说明
    RTMP协议在线教育课堂web视频直播点播平台EasyDSS在大量设备开启录像后为什么会导致系统卡死?
    RTMP协议视频直播点播智能分析平台EasyDSS优化视频水印生成效率参考
    互联网在线课堂直播点播视频平台EasyDSS访问页面报NO DSS SERVICE如何排查?
    RTMP直播点播平台EasyDSS下载录像文件为什么会提示:最大播放下载录像间隔是3小时?
    RTMP协议互联网教育课堂直播点播系统EasyDSS获取直播信息优化设计方案介绍
    如何将RTMP协议视频直播点播平台EasyDSS录像文件存储在其他的空闲磁盘内?
    POJ 3069 Saruman's Army 贪心
    POJ3617 Best Cow line 简单题
    POJ 1852 Ants 思维题 简单题
  • 原文地址:https://www.cnblogs.com/jepson6669/p/8321393.html
Copyright © 2020-2023  润新知