zoukankan      html  css  js  c++  java
  • 【Web入门系列】初探HttpServletResponse

    public class ResponseServlet extends HttpServlet {
    
        /**
         * 1、tomcat服务器把请求信息封装到HttpServletRequest对象,且把响应信息封装到HttpServletResponse
         * 2、tomcat服务器调用doGet方法,传入request,和response对象
         * 3、通过response对象改变响应信息
         * 4、tomcat服务器把response对象的内容转换成响应格式内容,再发送给浏览器解析
         * @param request
         * @param response
         * @throws ServletException
         * @throws IOException
         */
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            /**
             * 设置响应实体内容编码
             */
            //response.setCharacterEncoding("utf-8");
    
            /**
             * 3.1 响应行
             */
            //修改状态码
            //response.setStatus(404);
            // 发送404的状态码+404的错误页面
            //response.sendError(404);
    
            /**
             * 3.2 响应头
             */
            //response.setHeader("server", "JBoss");
    
            /**
             * 3.3 实体内容(浏览器直接能够看到的内容就是实体内容)
             */
            //字符内容。
            //response.getWriter().write("hello world");
            //字节内容
            //response.getOutputStream().write("hello world".getBytes());
    
            /**
             * 请求重定向: 发送一个302状态码 + location的响应头
             */
            //发送一个302状态码
            //response.setStatus(302);
            //location的响应头
            //response.setHeader("location", "/myweb/adv.html");
            //请求重定向简化写法
            //response.sendRedirect("/myweb/adv.html");
    
            /**
             * 定时刷新
             * 原理:浏览器认识refresh头,得到refresh头之后重新请求当前资源
             */
            //每隔1秒刷新次页面
            //response.setHeader("refresh", "1");
    
            /**
             * 隔n秒之后跳转另外的资源
             */
            //隔3秒之后跳转到adv.html
            //response.setHeader("refresh", "3;url=/myweb/adv.html");
    
            // 打开图片
            /*response.setContentType("image/jpg");
            File file = new File("e://test.jpg");
            FileInputStream inputStream = new FileInputStream(file);
            int len = 0;
            byte[] byt = new byte[1024];
            while ((len = inputStream.read(byt)) != -1){
                response.getOutputStream().write(byt,0,len);
            }*/
    
            // 以下载的方式打开图片
            File file = new File("e://image.jpg");
            FileInputStream inputStream = new FileInputStream(file);
            response.setHeader("Content-Disposition","attachment; filename="+file.getName());
            int len = 0;
            byte[] byt = new byte[1024];
            while ((len = inputStream.read(byt)) != -1){
                response.getOutputStream().write(byt,0,len);
            }
        }
    
        /**
         *
         * @param request
         * @param response
         * @throws ServletException
         * @throws IOException
         */
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            doGet(request,response);
        }
    
    }
  • 相关阅读:
    leetcode@ [68] Text Justification (String Manipulation)
    leetcode@ [205] Isomorphic Strings
    leetcode@ [274/275] H-Index & H-Index II (Binary Search & Array)
    leetcode@ [174] Dungeon Game (Dynamic Programming)
    Java 开发@ JDBC链接SQLServer2012
    leetcode@ [97] Interleaving Strings
    leetcode@ [131/132] Palindrome Partitioning & Palindrome Partitioning II
    leetcode@ [263/264] Ugly Numbers & Ugly Number II
    py-day1-1 python的基本运算符和语句
    py-day1 pycharm 的安装 以及部分设置
  • 原文地址:https://www.cnblogs.com/ysdrzp/p/9863571.html
Copyright © 2011-2022 走看看