设置黄色标注处的路径为本地Tomcat下的webapps中,此时运行项目就是Tomcat中的了。
String savePath = request.getServletContext().getRealPath("file");
savepath 为:当然要先在Booklist路径下新建一个file文件夹。
D:\Environment\apache-tomcat-9.0.17-windows-x64\apache-tomcat-9.0.17\webapps\Booklist\file
参考:https://blog.csdn.net/zx_balabala/article/details/81736026
html代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<fieldset>
<legend>
上传一个文件
</legend>
<!-- 文件上传时必须要设置表单的enctype="multipart/form-data"-->
<form action="fileupload"
method="post" enctype="multipart/form-data">
上传文件:
<input type="file" name="file">
<input type="text" name="title" class="text">
<br>
<input type="submit" value="上传">
</form>
</fieldset>
</body>
</html>
servlet代码
@WebServlet(name = "FileUploadServlet",urlPatterns = "/fileupload")
@MultipartConfig//标识Servlet支持文件上传
public class FileUploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String savePath = request.getServletContext().getRealPath("file");
String title = request.getParameter("title");
//Servlet3.0将multipart/form-data的POST请求封装成Part,通过Part对上传的文件进行操作。
Part part = request.getPart("file");//通过表单file控件(<input type="file" name="file">)的名字直接获取Part对象
part.write(savePath+ File.separator+title);
PrintWriter out = response.getWriter();
out.println(savePath);
out.flush();
out.close();
}
}