【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
【Head First Servlets and JSP】笔记5:HttpServletResponse resp的更多相关文章
- 【Head First Servlets and JSP】笔记 27: web 应用安全
典型的安全问题:假冒者.窃听者.非法升级者 认证方式: Base64 .摘要认证 .客户端证书.表单认证,重点熟悉摘要算法( HASH . MD5 等) 安全机制:授权.认证.数据完整性.机密性 80 ...
- 【Head First Servlets and JSP】笔记23:Expression Language(EL) 完全攻略
基本上是<Head First Servlets and JSP>内容的整理.扩充.顺便推荐一个供参考的JSP教程:JSP Tutorial内容很全面,还有一些有趣的实例. 完整代码参考 ...
- 【Head First Servlets and JSP】笔记16:JSP隐式对象(内置对象)的映射关系
接笔记15. 1.不管是JSP中的<%%>还是<%\=%>最终都将处于servlet的方法体中,那么有没有一种元素可以声明成类的成员呢? ——答案是有,而且非常非常简单,这个元 ...
- 【Head First Servlets and JSP】笔记22:直接从请求到JSP & 获取Person的嵌套属性
直接从请求到JSP,不经过servlet <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- 【Head First Servlets and JSP】笔记21:从有脚本到无脚本
可以建立多态的bean引用吗 使用type,但没有class scope属性默认为“page” 从有脚本到无脚本 1.快速搭建一个测试环境:输入用户名,返回“Hello, 用户名” index.htm ...
- 【Head First Servlets and JSP】笔记2:MVC迷你教程
1.采用MVC,不仅要求业务逻辑和表示分离.实际上,业务逻辑甚至根本不知道表示的存在.MVC的关键是,业务逻辑要与表示分离,而要求在中间放上别的东西,这样业务逻辑本身就可以作为一个可以重用的Java类 ...
- 【Head First Servlets and JSP】笔记1
1.把Java放到HTML中,JSP应运而生. 2.Servlet本身并没有main()方法,所以必须要有其他Java程序去调用它,这个Java程序就是Web容器(Container).Tomcat就 ...
- 【Head First Servlets and JSP】笔记13:session & cookie
session的接口 杀死会话 cookie的性质 cookie的接口 再总结——cookie.session.JSESSIONID的前世今生 简单的定制cookie示例 1.session的接口,配 ...
- 【Head First Servlets and JSP】笔记10:请求分派(RequestDispatcher)
1.让其它组件接管全部请求. package com.example.web; import com.example.model.BeerExpert; import javax.servlet.*; ...
随机推荐
- HTML 网页中以超链接的方式调用iphone 手机的app
2011-11-13 14:36:33| 分类: 随笔 | 标签:iphone 调用iphone手机app |举报|字号 订阅 <1>. 调用iphone 手机地图APP的 ...
- python 使用正则表达式的爬虫
下面我们一起尝试一下爬取内涵段子网站: http://www.neihan8.com/article/list_5_1.html 打开之后,不难看到里面一个一个灰常有内涵的段子,当你进行翻页的时候,注 ...
- char * const p和const char *p的区别
1. 前者定义P为常量,即只能单向赋值一次,P++展开为p=p+1,重复赋值给常量,出错,后者P为地址变量,地址变量是指向该变量的存储地址值如:4B3F6A,不能赋给一个字符值(字符相当于ascii表 ...
- ZJU 17th 校赛
第一次参加校赛,和小伙伴们拿了7个气球,还是挺开心的. 简单记个流水账吧. A:判断出INF的情况后 暴力模拟即可. INF的情况有x=1 || y=1 || (x==2 && y= ...
- 关于 JavaScript 学习 —— 好的博客或者网站推荐
作者:Tw93链接:https://www.zhihu.com/question/19651401/answer/46211739来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- 【BZOJ1058】[ZJOI2007]报表统计 STL
[BZOJ1058][ZJOI2007]报表统计 Description 小Q的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小Q希望可以帮妈妈分担一些工作,作为她的生日礼物之一.经 ...
- python3使用SMTP发送邮件
环境:python3 ,IDE : pycharm 非常奇怪的是,用163发送邮件,如果电脑连校园网发送,会被当成垃圾邮件拒绝 如果用手机开热点就可以正常发送 代码如下 #!/usr/bin/pyth ...
- 1060 最复杂的数(反素数玄学dfs)
1060 最复杂的数 题目来源: Ural 1748 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中 ...
- grafana-----Time Range Controls
Grafana提供了许多方法来管理时间的可视化数据的范围,在Dashboard-level和Panel-level都有. 在右上角,您有主仪表板时间选择器(它位于“Zoom out”和“Refresh ...
- 如何搭建一个 Git 版本控制服务端?
Gogs 下载和安装 https://github.com/gogits/gogs # 下载二进制压缩包 不检查服务器证书 root@cheungxiongwei:~# wget --no-check ...