问题描述:使用commons.fileupload文件上传找不到javax.servlet.http.HttpservletRequest的类文件


原因:文件上传功能会用到 org.apache.commons.fileupload这个数据包,里面的代码引用的还是javax的数据包。而Tomcat高版本比如10. 用的已经是 Jakarta的数据包了,所以会导致程序运行时org.apache.commons.fileupload找不到Tomcat中的一些javax的类(Tomcat中的类已经变成Jakarta包中的类了)
解决方案:
1、下载如下三个包:
2、在编写代码的时候,使用Jakarta开头的类
import org.apache.commons.fileupload2.core.DiskFileItemFactory;
import org.apache.commons.fileupload2.core.FileItem;
import org.apache.commons.fileupload2.core.FileItemFactory;
import org.apache.commons.fileupload2.core.FileUploadException;
import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload;
3、doget()中用以下方法获取JakartaServletFileUpload 。
JakartaServletFileUpload upload = new JakartaServletFileUpload(DiskFileItemFactory.builder().get());
用以下方法设置编码格式
item.getString(StandardCharsets.UTF_8)

