Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。(百度百科)
目录
下载文件:
设置好response的相应头格式
response.setContentType("application/force-download");
response.setHeader("Content-Disposition","attachment;filename=\""+filename+"\"");
关于响应头格式csdn上有很多优秀博主有详细介绍: @大小鱼鱼鱼与鱼.
文件的读取位置没放对很头疼,我把文件放置在这个位置:

@WebServlet( "/downServlet")
public class DownServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
OutputStream out;
InputStream in;
ServletContext servletContext = getServletContext();
String filename = request.getParameter("filename");//获取请求文件名
if(filename==null){
out= response.getOutputStream();
out.write("Please input filename".getBytes("utf-8"));
out.close();
return;
}
in=servletContext.getResourceAsStream("/WEB-INF/img/" +filename);//这里文件的路径要注意写对
//设置响应正文的MIME类型
response.setContentType("application/force-download");
response.setHeader("Content-Disposition","attachment;filename=\""+filename+"\"");
out= response.getOutputStream();
int len=0;
byte[]bys=new byte[1024];
while((len=in.read(bys))!=-1){
out.write(bys,0,len);//将输入流写到页面上
}
in.close();
out.close();
in= ServletContext.class.getResourceAsStream("/img/"+filename);
}
}
html页面很简陋
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>down</title>
</head>
<body>
<a href="/downServlet?filename=1.jpg" onclick="">点击下载图片1</a> <br>
<a href="/downServlet?filename=2.jpg" onclick="">点击下载图片2</a>
</body>
</html>
效果:


上传文件:
使用fileuploadjar包配合 IO jar包,里面有工厂类.
同样要上传文件位置也要写对,这里我直接用绝对路径能省点事.
private String filePath="E:\\develop\\files\\store";//文件放置目录
private String tempFilePath="E:\\develop\\files\\store";//临时目录
@WebServlet("/upload")
public class upload extends HttpServlet {
private String filePath="E:\\develop\\files\\store";//文件放置目录
private String tempFilePath="E:\\develop\\files\\store";//临时

本文详细介绍了如何使用Java Servlet进行文件下载和上传操作,包括设置响应头、读取文件流以及处理请求转发和重定向。同时,展示了BaseServlet的使用,以减少Servlet数量并优化代码结构,实现不同功能的方法调用。此外,还讨论了Cookie的管理和请求转发与重定向的区别及其应用场景。
最低0.47元/天 解锁文章
2218

被折叠的 条评论
为什么被折叠?



