ajax servlet增删改查,Servlet ajax 文件上传和JDBC+Servler用户表增删改查
昨天晚上幫一個妹子,應該是大二或者大三的。解決了Servlet+JDBC實現用戶表的增刪改查功能,當時妹子遇到的問題是文件上傳和日期格式處理不太會。
我讓她把代碼發我,我本地調試,結果發現坑很多,就是很多細節問題。不過對于初學者而言,能把項目搭建起來,做一個大概就不錯了。
項目代碼和表都是妹子創建的,不太規范,請見諒,僅供初學者使用。
用戶表的增刪改查請查看github的代碼,本文介紹一下文件上傳功能吧
1.依賴準備
如果使用 jar 包方式的,引入以下2個jar
commons-fileupload-1.2.1.jar
commons-lang-2.4.jar
如果使用 maven,需要在 pom.xml 里添加
commons-fileupload
commons-fileupload
1.2.1
commons-lang
commons-lang
2.4
2. 后臺代碼
UploadServlet
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
/**
* 文件上傳
*/
@WebServlet("/UploadServlet")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final String UPLOAD_PATH = "/Users/liuyanzhao/Desktop/ArcSofthotel-prj1/WebContent/uploads";
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); // 設置編碼
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
// 獲得磁盤文件條目工廠
DiskFileItemFactory factory = new DiskFileItemFactory();
// 設置 緩存的大小,當上傳文件的容量超過該緩存時,直接放到 暫時存儲室
factory.setSizeThreshold(1024 * 1024);
// 高水平的API文件上傳處理
ServletFileUpload upload = new ServletFileUpload(factory);
try {
String filename = "";
List list = upload.parseRequest(request);
// 獲取上傳的文件
for (FileItem item : list) {
// 獲取文件名
filename = System.currentTimeMillis() + ".png";
File file = new File(UPLOAD_PATH, filename);
file.createNewFile();
// 真正寫到磁盤上
item.write(file);
}
PrintWriter writer = response.getWriter();
writer.print(filename);
writer.close();
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意修改 UPLOAD_PATH 為你的文件上傳目錄,可以選擇 WebContent目錄下新建uploads文件夾,然后復制路徑
Windows 的如 D:\\xxx\\uploads
3. 前端代碼
html代碼
人臉照片style="border-radius: 0; border-left: 0;"
οnclick="$('#file').click();">
js 代碼
// 添加圖片上傳
$('body').on('change', '#file', function () {
var formData = new FormData();
var files = $($(this))[0].files[0];
formData.append("file", files);
$.ajax({
url: 'UploadServlet',
type: 'POST',
data: formData,
processData: false,
contentType: false,
dataType: 'text',
success: function (res) {
console.log(res);
if (res != "") {
alert('上傳成功');
}
$('#face').val(res);
}
, error: function (res) {
// alert('錯誤');
}
});
})
注意需要引入 jquery
效果圖如下
完整代碼:https://github.com/saysky/Servlet_JDBC_20201230/
總結
以上是生活随笔為你收集整理的ajax servlet增删改查,Servlet ajax 文件上传和JDBC+Servler用户表增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue-resource ajax跨域,
- 下一篇: 移动端ajax,jQuery基于$.aj