【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);
    }

}

 

posted @ 2018-10-27 21:44  过向往的生活  阅读(158)  评论(0编辑  收藏  举报