所有章节答案合集——>传送门


【测一测】
学习完前面的内容,下面来动手测一测吧,请思考以下问题:
1、简述请求转发与重定向的异同?(至少写3点)
2、请写出禁止浏览器缓存页面的核心代码。
3、请编写一个类,该类能够实现访问完app应用下的Servlet后,还能在浏览器地址栏中显示出index.jsp的路径。
4、请编写一个类,该类使用HttpServletRequest对象的getHeader(“referer”)方法实现下载资源防盗链的功能。


【答案】

1、请求转发与重定向的异同点如下:
1)请求转发和重定向都可以实现访问一个资源时转向当前应用资源
2)请求转发是一次请求一次响应,而重定向为两次请求两次响应
3)一般情况下应该使用请求转发,减少浏览器对服务器的访问,减轻服务器压力
4)如果需要改变浏览器的地址栏,或更改浏览器的刷新按钮的功能时需要使用重定向

2、禁止浏览器缓存页面的核心代码如下:

response.setDateHeader("Expires",0);
response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");

3、实现代码如下:
(1)MyServlet程序类如下:

public class MyServlet extends HttpServlet {protected void doGet(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {System.out.println("这里是MyServlet!");response.sendRedirect(request.getContextPath() + "/index.jsp");}
}

(2)web.xml文件配置如下:

MyServlet

cn.itcast.chapter04.servlet.MyServlet

MyServlet
/MyServlet

4、该功能的实现步骤如下:
1)创建一个DownManagerServlet类,使其继承HttpServlet类并重写该类的doGet()方法。
2)在doGet()方法中,使用HttpServletRequest对象的getHeader(“referer”)方法得到字段referer的值,并判断是否可以进行资源下载。
3)如果不能下载,则进入下载页(需要在Eclipse的WebContent目录下创建一个download.html)。
(1)DownManagerServlet类的实现代码如下:
public class DownManagerServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/html;charset=utf-8”);
PrintWriter out = response.getWriter();
// 获取referer头的值
String referer = request.getHeader(“referer”);
// 获取访问地址
String sitePart = “http://” + request.getServerName();
if (referer != null && referer.startsWith(sitePart)) {
// 处理正在下载的请求
out.println(“dealing download …”);
} else {
// 非法下载请求跳转到download.html页面
RequestDispatcher rd = request
.getRequestDispatcher("/download.html");
rd.forward(request, response);
}
}
}
(2)web.xml文件中DownManagerServlet的映射信息配置如下:

<servlet><servlet-name>DownManagerServlet</servlet-name><servlet-class>cn.itcast.chapter04.servlet.DownManagerServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>DownManagerServlet</servlet-name><url-pattern>/DownManagerServlet</url-pattern>
</servlet-mapping>

整理不易, 如果喜欢的话,还请给博主一个赞哦,让更多的人看到这篇文章

【传智播客】Javaweb程序设计任务教程 黑马程序员 第四章 课后答案相关推荐

  1. 【传智播客】Javaweb程序设计任务教程 黑马程序员 第五章 课后答案

    所有章节答案合集-->传送门 [测一测] 学习完前面的内容,下面来动手测一测吧,请思考以下问题: 1.简述什么是会话技术? 2.简述Cookie与Session的区别?(至少写出3点) 3.请设 ...

  2. 【传智播客】Javaweb程序设计任务教程 黑马程序员 第三章 课后答案

    所有章节答案合集-->传送门 [测一测] 学习完前面的内容,下面来动手测一测吧,请思考以下问题: 1.请列举Servlet接口中的方法,并分别说明这些方法的特点及其作用. 2.简述Servlet ...

  3. 【传智播客】Javaweb程序设计任务教程 黑马程序员 第六章 课后答案

    所有章节答案合集-->传送门 [测一测] 学习完前面的内容,下面来动手测一测吧,请思考以下问题: 1.请简述JSP的运行原理. 1.请简述JSP中的9个隐式对象. 2.请使用include标签编 ...

  4. HTML+CSS+JavaScript网页制作案例教程-黑马程序员-第四章课后习题(播放器图标)

    黑马程序员编著的教材  HTML+CSS+JavaScript网页制作案例教程 第四章:播放器图标-课后习题参考代码 ........ 记得 关注,收藏,评论哦,作者将持续更新.... 我自己做的效果 ...

  5. 【传智播客】Javaweb程序设计任务教程 黑马程序员 课后答案【合集】

    [传智播客]Javaweb程序设计任务教程 黑马程序员 第一章 课后答案 [传智播客]Javaweb程序设计任务教程 黑马程序员 第二章 课后答案 [传智播客]Javaweb程序设计任务教程 黑马程序 ...

  6. 【传智播客】Javaweb程序设计任务教程 黑马程序员 第7,8,9,10,11,12,13,14,15章 课后答案

    所有章节答案合集-->传送门 第一部分是题目,向下翻, 第二部分是答案 第七章 [测一测] 学习完前面的内容,下面来动手测一测吧,请思考以下问题: 1.简述Javabean规范都有哪些?(至少写 ...

  7. HTML+CSS+JavaScript网页制作案例教程-黑马程序员-第五章课后习题(课程介绍专栏效果)

    黑马程序员编著的教材  HTML+CSS+JavaScript网页制作案例教程 第五章:"课程介绍"专栏-课后习题参考代码 题目原型: 请结合给出的素材,运用列表标记,超链接标记以 ...

  8. 【传智播客】Javaweb程序设计任务教程 黑马程序员 第二章 课后答案

    所有章节答案合集-->传送门 第二章 问题 [测一测] 学习完前面的内容,下面来动手测一测吧,请思考以下问题: 1.简述HTTP1.1协议的通信过程? 2.简述POST请求和GET请求有什么不同 ...

  9. 传智播客JavaWeb day11--事务的概念、事务的ACID、数据库锁机制、

    1. 什么叫做事务? 2.默认情况下每一条sql语句都是一个事务,然后自动提交事务  ps:如果想多条语句占一个事务,则可以手动设置SetAutoCommit为false 3.关键字 start tr ...

最新文章

  1. html文本域应该写在哪,我们如何在pharo上填写html文本区域
  2. matlab 二值化_MATLAB实验,图像二值化处理
  3. 使用 VideoToolbox 探索低延迟视频编码 | WWDC 演讲实录
  4. 农村民间借贷一分利息,有借条受法律保护吗?
  5. VC++的windows服务
  6. 小米5安卓使用微信X5 Blink内核调试
  7. Linux网络编程一步一步学-异步通讯聊天程序select
  8. 【HDU - 6185】Covering(矩阵快速幂优化二维dp,高斯消元,轮廓线dp打表)
  9. SDN,你必须了解的基础知识【定期更新】
  10. linux 命令美丽,美丽的程序猿-Linux下那些查找文件的小技巧-find
  11. java设置小数位数_java设置小数点后位数
  12. tomcat 调优-生产环境必备
  13. 基于Python的IMDB电影评论文本分类
  14. JS 缓存: Service Worker 实现离线应用
  15. 【翻译】Qt撤销/回撤框架概述
  16. 每周分享第二期:人工智能对未来工作的影响
  17. 漫谈CRM体系化建设2 – 如何开发客户?
  18. 【svn】 如何在Linux服务器上添加svn账户的教程
  19. 《Total Commander:万能文件管理器》——12.6. 附录
  20. 机械之美——机械时期的计算设备

热门文章

  1. 用Python实现插⼊排序
  2. MyBatis(二)MyBatis基本流程源码分析
  3. 前端工程师后端转型实录
  4. 通过QUIC 0-RTT建立更快的连接
  5. 时永方:做到这三点,你就是多媒体内行了
  6. 假期不能错过的音视频领域技术进展
  7. 大牛书单 | 大数据存储方向好书分享
  8. 最新 WebRTC 源码目录结构分析
  9. 如何在maven的setting.xml中指定jdk版本(详细步骤)
  10. mysql存储引擎简介