传智播客JavaWeb day03
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的更多相关文章
- 传智播客JavaWeb day01 快捷键、XML
2015-01-14 一直计划着学习java,今天晚上终于下定决心看了下传智播客朴乾老师的javaweb开发视频day01之第一讲,主要内容是开发工具简单介绍.怎么创建工程.Junit的介绍,我是C# ...
- 传智播客JavaWeb听课总结
一. JavaWeb基础 第一天: 1.Eclipse详解: (1).Bad versionnumber in .class file:编译器版本和运行(JRE)版本不符合.高的JRE版本兼容低版本的 ...
- 传智播客JavaWeb day07、day08-自定义标签(传统标签和简单标签)、mvc设计模式、用户注册登录注销
第七天的课程主要是讲了自定义标签.简单介绍了mvc设计模式.然后做了案例 1. 自定义标签 1.1 为什么要有自定义标签 前面所说的EL.JSTL等技术都是为了提高jsp的可读性.可维护性.方便性而取 ...
- 传智播客JavaWeb day02笔记
2015年1月21日 今天的主要内容:介绍了几款常用Javaweb服务器,重点介绍了tomcat以及tomcat的安装和怎么样检测安装成功 1.JavaWeb常见服务器 Tomcat(免费但是只支持部 ...
- 传智播客JavaWeb day09-mysql入门、数据库操作、数据库表操作、数据行操作
不知不觉已到了第九天了,今天主要讲了关系数据库的基本概述.安装.数据库.表和数据行的操作 1. 基本概述 1.1 数据库就是用来存储数据的.早期是存在文件里面的操作起来效率低而且不是很安全. 1.2 ...
- 传智播客JavaWeb day05-session、url重写
1.session是什么 1.1 session是一种会话技术 ps:还有一种是cookie 2.session的作用 2.1 服务器端会话范围内的数据共享 3.session的生命周期 3.1何时 ...
- 传智播客JavaWeb day11--事务的概念、事务的ACID、数据库锁机制、
1. 什么叫做事务? 2.默认情况下每一条sql语句都是一个事务,然后自动提交事务 ps:如果想多条语句占一个事务,则可以手动设置SetAutoCommit为false 3.关键字 start tr ...
- 传智播客JavaWeb day10-jdbc操作mysql、连接数据库六大步骤
第十天主要讲了jdbc操作mysql数据库,包括连接数据库六大步骤(注册数据库驱动.获得连接对象connetion.生成传输器stament.执行查询获得ResultSet.遍历结果集.关闭资源).介 ...
- 传智播客JavaWeb day06-jstl
一.jsp标签(sun公司提供的) 二.EL表达式 三.jstl (javaserver pages standard tag library) 1.为什么要有jstl jsp标签太弱,el表达式功能 ...
随机推荐
- Cheatsheet: 2016 02.01 ~ 02.29
Web How to do distributed locking Writing Next Generation Reusable JavaScript Modules in ECMAScript ...
- CSS布局基础之一设备像素,设备独立像素,设备像素比,css像素之间的关系
设备像素dp(device pixels) ppi(pixels per inch)表示每英寸所拥有的像素(pixel)数目,数值越高,代表屏幕能以更高的密度显示图像. 计算公式:ppi=像素数量/物 ...
- C/C++与Matlab混合编程
Matlab 拥有丰富的功能,编程简单.不过,有些情况下,Matlab程序的执行速度比较慢.C/C++编译执行的程序速度比较快,编程难度上比Matlab要高一些.因此存在一种方案,就是使用Matlab ...
- jQuery核心之DOM操作的常用方法
参考jQuery官网API文档 1..attr() 获取 : ); 3.选择器与常用方法: ) .html( "new text for the third h3!" ) .en ...
- iOS - Project 项目
1.项目流程 1.1 分析项目的架构 iOS 常见的几种架构 标签式 Tab Menu 列表式 List Menu 抽屉式 Drawer 瀑布式 Waterfall 跳板式 Springborad 陈 ...
- CSRF攻击原理以及防御
一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSR ...
- Git实现从本地添加项目到远程仓库
Git是现在最流行的版本控制系统之一了,今天也试试了,成功了上传了远程仓库,接下来看看我是怎么做的. (ps:七牛抓取不到图片,请移步:http://blog.csdn.net/u011043843/ ...
- 002_kafka_相关术语详细解析
参考: http://www.cnblogs.com/likehua/p/3999538.html http://kafka.apache.org/documentation.html#getting ...
- 解决Jenkins打不开浏览器问题
参考:http://blog.csdn.net/achang21/article/details/45096003 1.控制面板禁用掉jenkins服务 2.java -jar jenkins.war ...
- MVC5 + EF6 入门完整教程二:从前端的UI开始
从前端的UI开始 MVC分离的比较好,开发顺序没有特别要求,先开发哪一部分都可以,这次我们主要讲解前端UI的部分. ASP.NET MVC抛弃了WebForm的一些特有的习惯,例如服务器端控件,Vie ...