四十六章 — 第三方控件
一、掌握文件上传
HTTP协议是基于TCP协议的一种超文本传输协议,用于通信
客户端请求,服务端响应。
rfc 1867里提出了HTTP协议允许进行文件上传
<input type = "file"/>
commons-fileupload 它遵循了rfc 1867规范 进行了一系列文件上传封装。
- 下载最新版fileupload和io组件http://commons.apache.org/proper/commons-fileupload/
- 客户端: rfc1867规范中提到文件上传必须要保证请求方式为POST,内容类型为(Content-Type)必须为
multipart/form-data
- 编写一个表单 将其请求方式设置为POST
- 将表单属性
enctype="multipart/form-data"
(设置它之后,数据的请求被信息比那花了,变为了文件项形式上传) - 设置一个文件域用于选择文件
- 服务端 :
1.工厂
// 接口:File文件Item项Factory工厂 用来进行文件项内容接收的
// 实现类:DiskFileItemFactory
// 常用的API:
DiskFileItemFactory fif = new DiskFileItemFactory();
// 设置上传过程中的文件缓冲区大小
fif.setSizeThreshold(sizeThreshold);
// 设置上传过程中的临时文件存储位置
fif.setRepository(repository)
----------------------------------------------------------
2.产品
// 接口FileItem 用来存储请求过来的文件项内容 文件项可能为文件表单 也可能为普通表单
判断是否是普通表单 isFormFiled()
获取文件名 getName()
获取name属性值 getFiledName()
获取value属性值 getString() getString(String encoding)
获取文件大小 getSize()
文件存储 (上传到服务器的哪个位置) write(File destFile)
-------------------------------------------------------
3.操作工 ServletFileUpload
设置上传文件的总大小 setSizeMax(long 字节) 如果文件上传超过大小限制 会抛出一个FileUploadBase.SizeLimitExceededException异常
// 解析请求 将请求内容转换为对应的文件项集合
List<FileItem> parseRequest(HttpServletRequest request)
// 判断是否是enctype=multipart/form-data格式的上传
boolean isMultipartContent(HttpServletRequest request)
// 设置头编码(如果你的文件名乱码了 可以设置它) 记住这些编码设置应该放在最前面 否则都已经获取完了 设置也就没意义
setHeaderEncoding(String encoding)
二、掌握富文本编辑器的使用
富文本编辑器
editor:编辑
三、掌握页面拆分
在编写JSP文件时 ,在多个JSP文件中会出现大量的重复代码。JSP由HTML+java组成的,所以有可能有大量的重复HMTL或者重复Java代码。那么就需要对重复的代码进行复用
1.静态包含
<% include %>
指令
2.动态包含
<jsp: include/>