技术标签: 笔记
javaweb多个文件下载
@WebServlet("/user")
public class UserController extends HttpServlet {
private UserService userService = new UserServiceImpl();
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//post请求处理乱码问题
request.setCharacterEncoding("utf-8");
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String m = request.getParameter("m");
if("login".equals(m)){
login(request, response);
}else if("reg".equals(m)){
reg(request, response);
} else if("update".equals(m)){
update(request, response);
}else if("loginDo".equals(m)){
loginDo(request, response);
}else if("regDo".equals(m)){
regDo(request, response);
}else if("main".equals(m)){
main(request, response);
} else if("response".equals(m)){
response(request, response);
} else if("download".equals(m)){
download(request, response);
} else if("validate".equals(m)){
validate(request, response);
}else if("download2".equals(m)){
down(request, response);
}
//确定下载的内容是啥
String filename=request.getParameter("filename");
String filePath=this.getServletContext().getRealPath("/files/"+filename);
File file=new File(filePath);
if (!file.exists()){
response.setContentType("text/html;charset=utf-8");
response.getWriter().println("要下载的文件不存在");
return;
}
//如果文件包含中文
filename=URLEncoder.encode(filename,"UTF-8");
//添加相应头
response.setHeader("Content-Disposition","attachment="+filename);
//执行文件下载
FileUtils.copyFile(file,response.getOutputStream());
}
前端
<%--
login.jsp
Created by IntelliJ IDEA.
User: 12944
Date: 2020/12/18
Time: 9:51
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
<script>
window.onload = function(){
document.getElementById("validate").onclick = function (){
this.src = "/webTest/user?m=validate&"+Math.random();
}
}
</script>
</head>
<body>
<form action="/webTest/user" method="post">
<input type="hidden" name="m" value="loginDo">
<span>账号</span><input type="text" name="username"><br>
<span>密码</span><input type="password" name="password"><br>
<span>验证码</span><input type="text" name="validate"><img id="validate" src="/webTest/user?m=validate" alt=""><br>
<input type="submit" value="登录"><br>
</form>
<a href="/webTest/user?m=reg">注册</a>
<a href="/webTest/user?m=download2"> 下载</a> //此处的的m=downloda2 对应的是 Servlet中的else if("download2".equals(m))
</body>
</html>
<%-- down.jsp 多个文件下载页面
Created by IntelliJ IDEA.
User: 12944
Date: 2020/12/21
Time: 21:09
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<span>文件1</span> <a href="/webTest/user?filename=20191126163808196.gif">点击下载</a>
<span>文件2</span> <a href="/webTest/user?filename=timg.jpg">点击下载</a>
<span>文件3</span> <a href="/w
文章浏览阅读10w+次,点赞74次,收藏341次。flex布局详解_flex布局
文章浏览阅读9.2k次,点赞19次,收藏87次。一、概念1、Spring Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架。 2、SpringMVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。SpringMVC是一种web层mvc框架,用于替代servlet(处理|响应请求,获取表单参数,表单校_spring springboot springmvc的关系
文章浏览阅读2.1k次。MQ的优劣势及RabbitMQ相关概念_mqzk优点和缺点
文章浏览阅读715次。1._anaconda tool中没有py
文章浏览阅读615次,点赞21次,收藏20次。对程序员来说,很多技术的学习都是“防御性”的。也就是说,我们是在为未来学习。我们学习新技术的目的,或是为了在新项目中应用,或仅仅是为了将来的面试。但不管怎样,一定不能“止步不前”,不能荒废掉。!文章以下内容会给出阿里与美团的面试题(答案+解析)、面试题库、Java核心知识点梳理等网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
文章浏览阅读4.9k次,点赞10次,收藏43次。文章目录TomcatTomcat作为Servlet容器的基本功能Tomcat的组成结构Tomcat配置需要配置的环境变量Tomcat启动与关闭文件配置Oracle公司现在作为Java语言的开发和发布者,是当仁不让的标准接口的制定者。Oracle公司不仅制定了Web应用与Web服务器进行协作的一系列标准Java接口(统称为Java Servlet API),还对Web服务器发布以及运行Web应用的一些细节做了规约。Oracle公司把这一系列标准Java接口和规约统称为Servlet规范。Servlet规范_tomcat介绍
文章浏览阅读4.8k次。这个平台就好比我们国内的“猪八戒”,但是是以美元为货币单位来进行结算的,可以在平台上提供一些高质量的小型虚拟服务,这些服务费用是没有上限的,费用至少是5美刀。_建模接单
文章浏览阅读44次。转自:https://www.cnblogs.com/zhangyingai/p/7087371.htmlSurfaceView的基本使用一、引入:Android提供了View来进行绘图处理,在大部分情况下,View都能满足绘图需求。大家都知道View是通过刷新来重绘视图,Android系统通过发出VSYNC信号来进行屏幕的重绘,刷新的间隔时间为16ms。如果在16ms内..._使用surfaceview导包
文章浏览阅读5.9k次。最近需要做地图离线的功能,要能下载指定区域的地图数据,_arcgis server 瓦片图片读取规则
文章浏览阅读2.1k次。地图上显示报表我认为目前一般有几种方法(这个见仁见智),下面介绍三种(最后一种是绝对原创)。第一种是Esri公司的韩源萌提供的一个库,百度文库地址是http://wenku.baidu.com/view/674671cca1c7aa00b52acb39.html。不过他那个缺点很明显,饼图随着地图的放大缩小,饼图的大小越来越大。第二种方法是用arcgis server for flex_arcgis上面的柱状图怎么把数字显示出来
文章浏览阅读841次。接到个任务需要将几万张带表格的图片转换成结构化数据。1. 大步骤最终算是完成任务,但是识别率上还有一点问题,人工再过一下,还是蛮快的。先说一下大的步骤:分割单元格。将图片中的表格全部定位出来,然后按单元格裁剪成一个个小图片,以便后续分析及操作;聚焦。其实就是将单元格中的文本区域裁剪出来,将多余的空白去掉;大图片的识别。对于大图片用图像相似性的算法(phash+汉明距离)做识别;小图片的识别。对于小..._python识别图片中无边框表格数据
文章浏览阅读511次。具体可以查看项目启动函数,比如,run函数点进去就可以看到,或者通过启动日志可以查看_springmvc启动和执行流程?