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

效果图如下

37dedc862f6f90d8090143ecccc44a3a.png

完整代码:https://github.com/saysky/Servlet_JDBC_20201230/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值