这周主要学习了文件上传下载、Servlet的单实例多线程、自定义tomcat服务器、正则表达式、JavaScript、json、Ajax。
文件上传三要素:
- 请求方式必须是post
- method=“post”
- enctype=“multipart/form-data”
- 文件上传项
<input type="file" name="file"/>
文件上传后台代码
-
就是将本地电脑中的文件上传到服务器中的磁盘中
-
开发步骤:
- 创建磁盘文件项工厂对象
- 创建核心解析对象
- 解析上传请求
- 如果是描述文本,直接打印
- 如果是上传文件,就进行io读写
文件上传常用API
ServletFileUpload类
-
parseRequest
- 解析请求,获取文件项
-
setHeaderEncoding
- 解决文件名中文乱码
-
FileItem类
-
isFormField
- 判断是否是普通上传项。返回值为true,那么是普通上传项,否则是文件上传项
- getFieldName
- 获取字段名称
- getString(String encoding)
- 获取描述文本,指定编码格式
- getName
- 获取上传文件名称
- getInputStream
- 获取上传文件对应的输入流
自定义tomcat服务器
-
tomcat服务器执行原理
- 操作请求行、请求头、请求正文
- 操作响应行、响应头、响应正文
-
自定义服务器
- 模仿tomcat服务器
- 操作请求行
- 操作响应行、响应头、响应正文
正则表达式概念及基本使用
-
概念
- 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种 规则。有自己特殊的应用。
-
作用
- 主要是用来做表单的内容的规则校验
字符类
-
概念
- 规定字符串的内容!
-
常见规则
- [abc]
- 任意一个字符,要么是a,要么是b,要么是c
- [^abc]
- 任意一个字符串,不可以是a、b、c
- [a-zA-Z]
- 任意一个字符,范围在:a-z之间或A-Z之间
- [0-9]
- 任意一个字符,范围在0-9之间
预定义字符类
- [abc]
-
概念
- 一些有特定含义的表达式
-
作用
- 减少编写正则表达式的麻烦
. 任何字符。 \d 数字:[0-9] \D 非数字:[^0-9] \w 单词字符:[a-zA-Z_0-9] \W 非单词字符:[^\w] \s 空白字符:[ \t\n\x0B\f\r] \S 非空白字符:[^\s]
数量词
-
概念
- 规定某一个字符的长度
-
常见数量词
- X:要么是一个字符类、要么是一个预定义字符类
X?:X,要么只有一个,要么没有
X*:X,从0次到多次
X+:X,从1次到多次
X{n}:X,正好n次
X{n,}:X,从n次到多次
X{n,m}:X,从n次到m次
Pattern类和Matcher类
-
Pattern类
- 相当于就是正则表达式,现在是正则对象
-
Matcher类
- 匹配对象,完成匹配功能等
JavaScript的概述
- 概念
- JavaScript是一门脚本语言
- 脚本语言
- 不需要编译,直接就可以被浏览器解析执行.
- 发展史
- 1992年,第一门脚本语言:ScriptEase,专门用于表单校验
- 1995年,Netscape(网景)公司开发了一门脚本语言:LiveScript,后面更名为JavaScript
- 1996年,微软抄袭JavaScript,开发出JScript
- 1997年,ECMA组织,指定了脚本语言规范:ECMAScript
- JavaScript组成
- 由ECMAScript、BOM、DOM组成
ajax的概述
- 概述
- ajax:Asynchronous javascript and xml,异步JavaScript和Xml
- 作用
- 局部刷新页面
- 发起异步请求
- 和同步请求区别
- 同步请求:当一个页面中的内容发生改变时,需要全部刷新。当一个请求发起时,其他的请求不能发起
- 异步请求,当一个页面中的内容发生改变时,可以局部刷新。当一个请求发起时,其他的请求也能发起