码迷,mamicode.com
首页 > Web开发 > 详细

【Head First Servlets and JSP】笔记5

时间:2017-05-15 21:04:55      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:color   throw   div   特定   回文   except   read   servlet   select   

【HttpServletResponse resp】

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...

// 一堆的import
public class CodeReturn extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        resp.setContextType("application/jar"); // 想让浏览器知道的事情
        
        ServletContext ctx = getServetContext();
        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

 

【Head First Servlets and JSP】笔记5

标签:color   throw   div   特定   回文   except   read   servlet   select   

原文地址:http://www.cnblogs.com/xkxf/p/6858092.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!