传智播客JavaWeb day03

时间:2021-12-23 15:42:43

ServletContext

这堂课主要讲ServletContext这个web域(可以看得见范围的)对象,web在启动的时候会创建唯一的ServletContext域对象。

作用:1.用来web域共享数据

    1.1 通过设置域属性(SetAttribute)和获取域属性(GetAttribute)来实现数据共享

   2. 实现转发

    2.1 转发与重定向的区别

      转发一次请求一次响应(获取转发对象RequestDispatcher,通过forward方法实现转发);重定向两次请求两次响应

   3. 读取资源文件

    3.1 获取真实的文件路径(通过父类中的GetRealPath方法获取文件的真实路径)

2015-02-27

Response:向客户端发送数据

主要讲了向客户端发送数据以及解决乱码的问题

1.Response.GetOutputStream字节流

  1.1 通过str.GetBytes("utf-8")指定编码

  1.2 SetHeader("content-type","text/html;charset=utf-8")指定客户端的解析码表

2.Response.GetWriter字符

  2.1 Response.setCharacterEncoding("utf-8")设置服务器码表

3. 由于setheader使用频率比较高所以封装了一个方法SetContentType,这个既能设置服务器端编码又能设置客户端编码

2015-02-28

Response--下载文件

1. 输入流  首先要有一个输入流读取附件

2.输出流 此时的输出流就是response中的输出流

3.将输入流的数据读取到输出流中  通过一个字节数组缓冲区转

4. 设置头部信息  设置content-disposition值为attachement;filename="xx"如果有中文利用URLEncoder.encode("美女.jpg","utf-8");

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setHeader("content-disposition", "attachement;filename="+URLEncoder.encode("美女.jpg","utf-8"));
InputStream in = new FileInputStream(this.getServletContext()
.getRealPath("spring.jpg"));
OutputStream out = response.getOutputStream();
byte[] bs = new byte[1024];
int count = 0;
while ((count =in.read(bs))!=-1) {
out.write(bs, 0, bs.length);
} in.close();
}

ps:response会自动关闭输出流

2015-03-02

Response--定时刷新页面

定时刷新页面可以通过以下两种方式实现一个是设置http头部还有一个是通过设置meta来模拟,应用场景如注册成功后跳转到首页。

1.设置http头部

SetHeader("Refresh","3;url=")

2.设置meta标签

<meta http-equiv="refresh" content="3;url=/Day03/servlet/ResponseServlet">

Response--控制缓存

通过设置头部expires(0,-1)、cache-control(no-cache)、pragma(no-cache)

Response--重定向

重定向的原理就是302+location

1.setstatus

2.response.setHeader("location", "/Day03/servlet/CacheServlet");

由于这个方法常用故封装了一个方法SendRedirect("url")

Response--输出验证码图片

1.内存图  首先要实例化一张内存图对象

2. 获取这张图的画板 当一个内存图对象的时候还不能够直接往上面画东西,得获取图片的画板对象

3. 设置颜色(好比我们操作画图软件时设置一个颜色)

4.边框

5.干扰点、线  防止机器注册

6.画字

7.输出   从内存中输出到输出流中来

传智播客JavaWeb day03的更多相关文章

  1. 传智播客JavaWeb day01 快捷键、XML

    2015-01-14 一直计划着学习java,今天晚上终于下定决心看了下传智播客朴乾老师的javaweb开发视频day01之第一讲,主要内容是开发工具简单介绍.怎么创建工程.Junit的介绍,我是C# ...

  2. 传智播客JavaWeb听课总结

    一. JavaWeb基础 第一天: 1.Eclipse详解: (1).Bad versionnumber in .class file:编译器版本和运行(JRE)版本不符合.高的JRE版本兼容低版本的 ...

  3. 传智播客JavaWeb day07、day08-自定义标签&lpar;传统标签和简单标签&rpar;、mvc设计模式、用户注册登录注销

    第七天的课程主要是讲了自定义标签.简单介绍了mvc设计模式.然后做了案例 1. 自定义标签 1.1 为什么要有自定义标签 前面所说的EL.JSTL等技术都是为了提高jsp的可读性.可维护性.方便性而取 ...

  4. 传智播客JavaWeb day02笔记

    2015年1月21日 今天的主要内容:介绍了几款常用Javaweb服务器,重点介绍了tomcat以及tomcat的安装和怎么样检测安装成功 1.JavaWeb常见服务器 Tomcat(免费但是只支持部 ...

  5. 传智播客JavaWeb day09-mysql入门、数据库操作、数据库表操作、数据行操作

    不知不觉已到了第九天了,今天主要讲了关系数据库的基本概述.安装.数据库.表和数据行的操作 1. 基本概述 1.1 数据库就是用来存储数据的.早期是存在文件里面的操作起来效率低而且不是很安全. 1.2 ...

  6. 传智播客JavaWeb day05-session、url重写

    1.session是什么 1.1 session是一种会话技术  ps:还有一种是cookie 2.session的作用 2.1 服务器端会话范围内的数据共享 3.session的生命周期 3.1何时 ...

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

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

  8. 传智播客JavaWeb day10-jdbc操作mysql、连接数据库六大步骤

    第十天主要讲了jdbc操作mysql数据库,包括连接数据库六大步骤(注册数据库驱动.获得连接对象connetion.生成传输器stament.执行查询获得ResultSet.遍历结果集.关闭资源).介 ...

  9. 传智播客JavaWeb day06-jstl

    一.jsp标签(sun公司提供的) 二.EL表达式 三.jstl (javaserver pages standard tag library) 1.为什么要有jstl jsp标签太弱,el表达式功能 ...

随机推荐

  1. Reactjs-JQuery-Vuejs-Extjs-Angularjs对比

    写在前面 前端越来越混乱了,当然也可以美其名曰:繁荣. 当新启动一个前端项目,第一件事就是纠结:使用什么框架,重造什么*? 那么,希望看完此篇,能够给你一个清晰的认识,或者让你更加地纠结和无所适从 ...

  2. POI

    一.简介 POI(Point of Interest),中文可以翻译为“兴趣点”.在地理信息系统中,一个POI可以是一栋房子.一个商铺.一个邮筒.一个公交站等. 1.POI检索 百度地图SDK提供三种 ...

  3. Linux设备驱动工程师之路——内核链表的使用【转】

    本文转载自:http://blog.csdn.net/forever_key/article/details/6798685 Linux设备驱动工程师之路——内核链表的使用 K-Style 转载请注明 ...

  4. USB协议-检测设备连接与速度

    在USB设备连接时,USB系统能自动检测到这个连接,并识别出其采用的数据传输速率.USB采用在D+或D-线上增加上拉电阻的方法来识别低速和全速设备. USB支持3种类型的传输速率:1.5Mb/s的低速 ...

  5. 【转】在CentOS上安装tomcat

    原文链接:http://www.cnblogs.com/xsi640/p/3757015.html 另外一个比较详细的博文:http://blog.csdn.net/zhngjan/article/d ...

  6. var &dollar;this &equals; &dollar;&lpar;this&rpar;是什么意思?

    var $this = $(this) 声明一个变量,$this 是变量名,加$说明是jquery对象. 给声明的变量赋值,赋的值是将this元素转换为jQuery对象.

  7. zabbix监控Windows-server

    官网下载客户端 https://www.zabbix.com/download 2.创建自定义文件夹(路径任意),我创建的为C:\zabbix 3.将下载的文件存放至该目录,注意操作系统位数,去对应b ...

  8. Luogu2482 &lbrack;SDOI2010&rsqb;猪国杀 ---- 模拟

    Luogu2482 [SDOI2010]猪国杀 题意 ...... https://www.luogu.org/problemnew/show/P2482 总结 首先说一下代码的构思: 首先确定了所有 ...

  9. xilinx DMA IP核&lpar;二&rpar; —— 文档阅读

    本笔记不记录DMA的Scatter/Gather特性.DMA上有三种总线:AXI4-LIte(对寄存器进行配置),AXI4-Memory Map(用于与内存交互)和AXI4 Stream(用于与外设交 ...

  10. ARKit的使用

    //创建场景 let scene = SCNScene() /* //1.几何 let box = SCNBox.init(width: 0.1, height: 0.1, length: 0.1, ...