zoukankan      html  css  js  c++  java
  • 【Head First Servlets and JSP】笔记5:HttpServletResponse resp

    【HttpServletResponse resp】

    【由servlet处理响应】

    1、一般可以用通过resp获得一个输出流(writer),然后通过输出流将HTML写入响应。例如:

          resp.setContentType("text/html");
            PrintWriter out = resp.getWriter();
            out.println("Beer Selection Advice<br>");

    2、常用的一些方法。

    3、有时还会用到.....

    4、当然,更通常的是用JSP返回HTML。

    5、假设你想向客户端发送一个JAR...

    package com.example.web;
    
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    
    public class JarDownload extends HttpServlet {
        public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
            resp.setContentType("application/jar"); // 想让浏览器知道的事情
    
            ServletContext ctx = getServletContext();
            InputStream is = ctx.getResourceAsStream("/bookCode.jar");
    
            int read = 0;
            byte[] bytes = new byte[1024];
    
            OutputStream os = resp.getOutputStream();
            while ((read = is.read(bytes)) != -1) {
                os.write(bytes, 0, read);
            } // 把JAR包先读到内存里再转写到输出流中。
            os.flush();
            os.close();
        }
    }

    ps:不能先写某个类型,然后改到另外一个类型继续写。

    6、为什么要通过servlet返回文件,而不是直接返回?原因是,希望在返回特定类型文件的前后执行一些逻辑,例如判断用户是否有权限下载这个文件。

    7、需要记住的一些东西,关于输出,只有两个选择:字符或者字节。

    可以通过resp返回的输出流...

            resp.getOutputStream().write( /*省略参数*/ ); // 可以写任何内容
            resp.getWriter().println(); // 和System.out.println()类似,用于处理字符数据。实际上是包装了OutputStream的高级流PrintWriter
  • 相关阅读:
    SVM神经网络的术语理解
    优化问题中的正则项作用
    转 强烈推荐遗传算法入门例子
    21分钟 MySQL 入门教程
    C++中abs、fabs、fabsf的使用方法
    国内有哪些质量高的JAVA社区?
    <Eclipse 学习笔记> Eclipse 开发常用快捷键
    <Servlet 学习笔记 > Servlet 生命周期和工作原理
    HDU
    POJ
  • 原文地址:https://www.cnblogs.com/xkxf/p/6858092.html
Copyright © 2011-2022 走看看