JSP入门 文件上传
文件上传在Web开发中是一个非常常见的需求。JSP作为Java Web开发中的一种技术,也有自己的文件上传方法。
一般来说,文件上传可以分为两个部分:前端文件选择和后端文件处理。
前端文件选择可以通过HTML的input标签实现,如下所示:
```html
```
其中,form标签的enctype属性需要设置为multipart/form-data,以支持文件上传。
后端文件处理可以通过JSP的内置对象request来完成,具体步骤如下:
1. 获取文件存储路径
在JSP中,可以通过getRealPath()方法来获取Web应用的绝对路径(即WebRoot目录的路径):
```java
String savePath = request.getServletContext().getRealPath("/uploads");
```
其中,/uploads是文件存储的相对路径,具体可以根据实际情况进行修改。
2. 创建文件存储目录
如果文件存储目录不存在,需要创建它:
```java
File saveDir = new File(savePath);
if (!saveDir.exists()) {
saveDir.mkdirs();
}
```
3. 获取上传的文件
通过request对象的getPart()方法可以获取上传的文件:
```java
Part part = request.getPart("file");
```
其中,"file"是input标签的name属性,即文件上传控件的名称。
4. 获取文件名和扩展名
上传的文件包含了文件名和扩展名等信息。可以通过Part对象的getSubmittedFileName()方法获取文件名,然后再根据文件名来获取扩展名:
```java
String fileName = part.getSubmittedFileName();
String ext = fileName.substring(fileName.lastIndexOf("."));
```
5. 生成保存的文件名
为了避免相同文件名的文件被覆盖,需要对文件名称进行重命名。可以使用UUID或时间戳等方式:
```java
String newFileName = System.currentTimeMillis() + ext;
```
6. 保存文件
最后,将上传的文件保存到指定目录:
```java
part.write(savePath + File.separator + newFileName);
```
完整的文件上传JSP代码如下:
```html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String savePath = request.getServletContext().getRealPath("/uploads");
File saveDir = new File(savePath);
if (!saveDir.exists()) {
saveDir.mkdirs();
}
Part part = request.getPart("file");
String fileName = part.getSubmittedFileName();
String ext = fileName.substring(fileName.lastIndexOf("."));
String newFileName = System.currentTimeMillis() + ext;
part.write(savePath + File.separator + newFileName);
out.print("上传成功!");
%>
```
AFNetwork作用和用法详解
AFNetworking是iOS上一款优秀的网络请求库,它提供了多种网络请求方式,支持多种数据解析方式,具有良好的封装性和灵活性。
AFNetworking的主要功能包括:
1. GET/POST请求
AFNetworking可以通过GET和POST请求获取网络数据,具有可靠的错误处理机制和重试机制。
2. 文件上传和下载
AFNetworking提供了文件上传和下载的功能,并支持进度跟踪和断点续传。
3. 数据解析
AFNetworking支持多种数据解析方式,包括JSON、XML和HTTP响应序列化等。
4. SSL Pinning
AFNetworking支持SSL Pinning,可以提高网络传输的安全性。
5. 缓存
AFNetworking支持数据缓存,可以提高应用程序的性能。
AFNetworking的使用步骤如下:
1. 导入AFNetworking库
可以使用CocoaPods导入AFNetworking库,也可以手动导入。
2. 创建AFHTTPSessionManager对象
AFHTTPSessionManager是AFNetworking的核心类,它管理了所有的网络请求和响应。
```objc
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
```
3. 添加请求头
可以通过AFHTTPRequestSerializer的setValue:forHTTPHeaderField:方法为请求添加请求头。
```objc
[manager.requestSerializer setValue:@"value" forHTTPHeaderField:@"key"];
```
4. 发送网络请求
可以使用AFHTTPSessionManager的GET和POST方法发送网络请求,并通过AFHTTPResponseSerializer进行数据解析。
```objc
[manager GET:@"http://example.com"
parameters:@{@"key": @"value"}
success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
// 请求成功
}
failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
// 请求失败
}];
```
```objc
[manager POST:@"http://example.com"
parameters:@{@"key": @"value"}
success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
// 请求成功
}
failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
// 请求失败
}];
```
AFNetworking的优点包括:
1. 简单易用
AFNetworking具有良好的封装性,可以快速地进行网络请求和数据解析。
2. 高效可靠
AFNetworking支持多种网络请求方式,具有高效可靠的错误处理机制和重试机制。
3. 可定制性强
AFNetworking支持多种数据解析方式和SSL Pinning,同时也支持多种网络协议和数据格式,具有良好的可定制性。
AFNetworking的缺点包括:
1. 学习成本高
AFNetworking的使用需要具备一定的iOS开发经验和网络知识,需要花费一定的时间去学习和掌握。
2. 依赖第三方库
AFNetworking需要依赖第三方库,增加了应用程序的大小和框架的复杂度。
总的来说,AFNetworking是一款优秀的网络请求库,在iOS应用程序开发中具有广泛的应用。
购买后如果没出现相关链接,请刷新当前页面!!!
链接失效的请留言 ,我看见了就补上!!!
网站内容来源于互联网,我们将这些信息转载出来的初衷在于分享与学习,这并不意味着我们站点对这些信息的观点或真实性作出认可,我们也不承担对这些信息的责任。
适度游戏益脑,沉迷游戏伤身。 合理安排时间,享受健康生活。适龄提示:适合18岁以上使用!
发表评论 取消回复