document dowload
Take the PDF file as an example, the file is under src:
package course.servlet;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/DownloadServlet")
public class DownloadServlet extends HttpServlet{
/**
* 下载PDF文件
*/
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//声明文档类型
resp.setContentType("application/pdf");
//1、读取服务器上的PDF文件
InputStream in = DownloadServlet.class.getClassLoader().getResourceAsStream("/draw.pdf");
//2、读取的同时 写入outputstream
OutputStream out = resp.getOutputStream();
writeByte(in, out);
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("跳转到了doGET");
doPost(req, resp);
}
/**
* 读取文件并输出
*/
public void writeByte(InputStream in, OutputStream out) throws IOException {
int count = 0;
byte[] b = new byte[1024];
while ((count=in.read(b))!=-1) {
out.write(b);
}
System.out.println("输入成功");
in.close();
out.close();
}
}
File Upload
Take a PDF file as an example, the upload path is an absolute path:
package course.servlet;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
@WebServlet("/UploadServlet")
@MultipartConfig
public class UploadServlet extends HttpServlet{
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Part part = req.getPart("uploadPDF");
String fileName = getFileName(part);
writeByte(part, fileName);
}
private String getFileName(Part part) {
String header = part.getHeader("Content-Disposition");
String result = header.substring(header.indexOf("filename=\"") + 10, header.lastIndexOf("\""));
return result;
}
private void writeByte(Part part, String fileName) throws IOException {
InputStream inputStream = part.getInputStream();
OutputStream outputStream = new FileOutputStream("D:\\WorkSpaces\\eclipse-workspace\\MyFirstWebProject\\WebContent\\WEB-INF\\" + fileName);
writeByte(inputStream, outputStream);
}
private void writeByte(InputStream inputStream, OutputStream outputStream) throws IOException {
byte[] b = new byte[1024];
int count = 0;
while((count=inputStream.read(b))!=-1) {
outputStream.write(b);
}
inputStream.close();
outputStream.close();
}
}