JavaWeb上传文件内存问题

问题一:JavaWeb上传文件后(几个20,30M)然后插入到数据库中,内存升高。上传完毕后,内存不会释放,内存还是那么高。用360一键加速后内存降低。有什么办法可以让上传完后就立刻释放内存?

问题二:JavaWeb上传的一个类DiskFileItemFactory(commons.fileupload包的)设置了缓存大小和临时目录,内存还是这么高,这是为什么?

问题三:用Socket传输文件(几个20,30M),服务器端想数据库获取文件,然后发送给客户端。使用对象输入输出流来发送(多个文件还有其他信息,不会用字节流读取,所以用对象流)内存升高,传输完后为什么内存不释放,怎么让内存释放?让内存升高的是从数据库获取的操作还是用Socket传输的操作?

2个回答

内存不释放并没有什么问题,因为系统有缓存,你应该进一步观察,如果内存耗尽还没有释放,才是问题。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
javaweb上传文件到本机时,文件一直占用在内存中导致OutOfMemoryError,求前辈指点
下面是上传代码和java内存监视图 以上传一个300M文件大小为示例 ``` @RequestMapping("/uploads") public @ResponseBody String upload(MultipartHttpServletRequest request, HttpServletResponse response) throws Exception { String result = ""; // 获取上传的所有文件名 Iterator<String> itr = request.getFileNames(); MultipartFile mpf = null; while (itr.hasNext()) { // 取出文件 mpf = request.getFile(itr.next()); try { File file = new File(UPLOADFILEPATH); if (!file.exists()) { file.mkdirs(); } // 输出(保存)文件 FileOutputStream fos = new FileOutputStream(new File(UPLOADFILEPATH + mpf.getOriginalFilename())); //获取文件的输入流并写入文件 InputStream fis = mpf.getInputStream(); byte[] buffer = new byte[1024]; int len = 0; while ((len = fis.read(buffer)) != -1) { fos.write(buffer, 0, len); fos.flush(); } //关闭流 fis.close(); fos.close(); mpf = null; result = "{\"success\":true}"; } catch (IOException e) { result = "{\"success\":false}"; e.printStackTrace(); } } itr = null; System.gc(); return result; } ``` 下面是内存监视图 上传前的JvisualVM内存视图 ![上传前的JvisualVM内存视图](https://img-ask.csdn.net/upload/201604/23/1461382789_537921.png) 上传后的JvisualVM内存视图 ![上传后的JvisualVM内存视图](https://img-ask.csdn.net/upload/201604/23/1461382868_807914.png) 上传后的jconsole内存视图 ![上传后的jconsole内存视图](https://img-ask.csdn.net/upload/201604/23/1461382900_24115.png) 上传后的jconsole--old gen内存视图 ![上传后的jconsole--old gen内存视图](https://img-ask.csdn.net/upload/201604/23/1461382970_970546.png) 手动执行JvisualVM-GC清理后的内存视图 ![手动执行JvisualVM-GC清理后的内存视图](https://img-ask.csdn.net/upload/201604/23/1461383171_250156.png) 大概情况就是这样子了.文件上传本地后,内存一直被占用无法释放,导致内存溢出.困扰我很久了.希望有前辈能指点一下.谢谢!
急求:JAVAWEB实现文件打印的问题
公司的OA是JAVAWEB 的,现在想增加一个功能,自动调用一台网络上的打印机打印OA服务器上指定路径下的文件(一般都是WORD或者EXCEL的日报,报表之类的),这个好实现吗?打印机不是直接配置在服务器上的,是一台普通的网络打印机
javaWeb下载文件到指定路径不需要提示框
JavaWeb能一次下载多个文件吗,不需要保存对话框,直接保存到指定路径,文件不能打包,直接下载到指定路径。
javaweb项目部署问题!
javaweb项目部署问题! javaweb项目开发完成后,上线时部署到什么服务器上?
javaweb给用户文件分配路径问题
有用户头像,用户业务图片,用户上传的视频,这种很多的文件在一块的时候应该怎么建立文件夹?是在用户注册时候直接这些文件夹么?是放在web-inf中吗?怎么分配文件夹?user-+-->userimg | ---->uservedio
javaweb图片异步上传问题
有一个文章表,和一张图片表,一篇文章对应多张图片,在图片表中维护所属文章的id, 但在JSP中发布新的文章时,图片是异步上传(首先上传)的,等文章发布完成后,更新 图片表的文章id,但是图片上传完成后如果放弃发布文章,怎么删除已上传的图片
javaWeb项目引入js文件问题
![图片说明](https://img-ask.csdn.net/upload/201704/04/1491294067_351727.png) 这是项目目录的截图,我把想引入的jquery放在js文件夹下面,然后打开浏览器![图片说明](https://img-ask.csdn.net/upload/201704/04/1491294405_748528.png) 加载不到我的js文件。我用的是IDE自带的jetty插件,端口是8088,他直接去localhost:/8088/js/jquery.js下面找了。请问大神,这个请求路径是怎样生成的那,我要怎样才能正确引入?如果我想用nginx代理,我又该怎么样才能让他去80端口下面去找那
关于javaweb中多文件的下载
在jsp页面选中多张图片,点击下载只能下载一张图片, 关于javaweb怎么实现多文件的下载该怎么写后端的代码
请问大家开发大数据项目,HDFS用来存储文件,javaweb负责展示,一般是把文件的关联信息存在哪里呀,是hive还是mysql
请问大家开发大数据项目,HDFS用来存储文件,javaweb负责展示,一般是把文件的关联信息存在哪里呀,是hive还是mysql
新人(如图)javaweb 文件上传功能 上传失败
(图1的上传附件功能正常,我又照葫芦画瓢做了个上传图片,为啥就不行了那) ![图片说明](https://img-ask.csdn.net/upload/201906/29/1561789048_9832.png) 添加完图片后发生错误 ![图片说明](https://img-ask.csdn.net/upload/201906/29/1561789073_240345.png) 以下为部分代码截图 ![图片说明](https://img-ask.csdn.net/upload/201906/29/1561789111_514043.png) ![图片说明](https://img-ask.csdn.net/upload/201906/29/1561789143_25544.png) ![图片说明](https://img-ask.csdn.net/upload/201906/29/1561789127_138294.png) 新人,望耐心解释
javaweb项目文件不知道怎么打开
下载的源码,myeclipse找不到工程文件,急!!!!!!求帮助!!!! qq:1042761729
javaWeb项目本地的文件下载没问题,部署到服务器上就无法文件下载
下载文件的代码如下: 项目在本地调试的时候,是可以正常下载本地磁盘的文件的,然后我部署到一台远程机器上,所要下载的文件能够得到他的路径,但是也不报错就是页面没有下载到文件,这是为什么? 备注:1.我在浏览器去访问那个文件的路径,404访问不到,虽然在WEB-INF下面放着。 访问路径:http://10.10.3.149:8080/alitm/WEB-INF/upload/d9209cf6856e427495dd78e4cf3d24d3_result.csv [b]package com.ecsemir.utils; import com.ecsemir.entity.ExceptUpload; import org.springframework.context.annotation.Scope; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date; /** * Created by zhuxiaofan01 on 2017/11/7. * 文件上传 */ @Scope("prototype") public class DownloadFile { public static void getDownloadFile(HttpServletRequest request, HttpServletResponse response,ExceptUpload exceptUpload) throws IOException, ServletException { //得到要下载的文件路径 String fpath = exceptUpload.getPath_resultCsv(); String filepath = request.getSession().getServletContext().getRealPath(fpath); //获取时间 String res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); String time=simpleDateFormat.format(new Date()); //得到文件名 int index1=filepath.lastIndexOf("_"); int index2=filepath.lastIndexOf("."); String fileName=time+filepath.substring(index1+1,index2)+".csv"; System.out.println("---------------------------fileName:"+fileName+"-----------------"+filepath); fileName = new String(fileName.getBytes("iso8859-1"), "UTF-8"); //得到要下载的文件 File file = new File(filepath); //如果文件不存在 if (!file.exists()) { request.setAttribute("message", "您要下载的资源已被删除!!"); request.getRequestDispatcher("/except/downloadlist.jsp").forward(request, response); return; } //设置响应头,控制浏览器下载该文件 response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); //读取要下载的文件,保存到文件输入流 FileInputStream in = new FileInputStream(file); //创建输出流 OutputStream out = response.getOutputStream(); //创建缓冲区 byte buffer[] = new byte[1024]; int len = 0; //循环将输入流中的内容读取到缓冲区当中 while ((len = in.read(buffer)) > 0) { //输出缓冲区的内容到浏览器,实现文件下载 out.write(buffer, 0, len); } //关闭文件输入流 in.close(); //关闭输出流 out.close(); } }[/b]
javaweb开发遇到的问题
javaweb开发学习,在学习servletconfig的时候按照视频内容,尝试获取servlet配置参数时,打开网页,返回值不是value2,而是null![图片说明](https://img-ask.csdn.net/upload/201609/28/1475037141_743842.png)请问这是什么原因,请各位帮帮忙啦?
javaWeb项目优化问题
javaWeb项目的大小是否影响着项目运行的效率? 比如:两个项目基本功能一样,但是一个引入大量JAR包或其他文件。我想问下,是不是相对项目体积小的效率更高些。作为BS系统,项目运行影响他效率的(除代码优化和数据库,硬件,网络)还有那些?与CS系统又有哪些区别? 不是特别清楚,可能提的问题也有出处?望予以解答!!
Javaweb如何实现将服务器文件展示给用户选择?
问题如下:javaweb要连接远程Linux服务器,然后将Linux服务器下的文件提供给用户进行选择,然后修改参数后传回,执行Linux下的一个命令,再获取执行命令后的文件。求大神指点一二,如何实现。
Javaweb的一个诡异问题
![图片说明](https://img-ask.csdn.net/upload/201712/20/1513742310_584283.png) 为什么在main上面new 然后点运行没有报错, 在下面运行 doget 运行 new 然后 页面就打不开了了 HTTP Status 500 - Servlet execution threw an exception 去掉又可以 , 这个咋整 怎么感觉这个异常加不加 ProcessCenter pc = new DefaultStreamProcess(true); 这句话都一样呢 E:\java\apache-tomcat-7.0.77\bin\catalina.bat run [2017-12-20 01:32:37,890] Artifact JavaWeb:war exploded: Waiting for server connection to start artifact deployment... Using CATALINA_BASE: "C:\Users\iMay\.IntelliJIdea2017.2\system\tomcat\Unnamed_JavaWeb" Using CATALINA_HOME: "E:\java\apache-tomcat-7.0.77" Using CATALINA_TMPDIR: "E:\java\apache-tomcat-7.0.77\temp" Using JRE_HOME: "E:\ruanjian\jdk" Using CLASSPATH: "E:\java\apache-tomcat-7.0.77\bin\bootstrap.jar;E:\java\apache-tomcat-7.0.77\bin\tomcat-juli.jar" 十二月 20, 2017 1:32:38 下午 org.apache.catalina.core.AprLifecycleListener init 警告: The APR based Apache Tomcat Native library failed to load. The error reported was [E:\java\apache-tomcat-7.0.77\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform] java.lang.UnsatisfiedLinkError: E:\java\apache-tomcat-7.0.77\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at org.apache.tomcat.jni.Library.<init>(Library.java:42) at org.apache.tomcat.jni.Library.initialize(Library.java:178) at org.apache.catalina.core.AprLifecycleListener.init(AprLifecycleListener.java:200) at org.apache.catalina.core.AprLifecycleListener.isAprAvailable(AprLifecycleListener.java:108) at org.apache.catalina.connector.Connector.setProtocol(Connector.java:592) at org.apache.catalina.connector.Connector.<init>(Connector.java:66) at org.apache.catalina.startup.ConnectorCreateRule.begin(ConnectorCreateRule.java:62) at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1303) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509) at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1339) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1576) at org.apache.catalina.startup.Catalina.load(Catalina.java:616) at org.apache.catalina.startup.Catalina.load(Catalina.java:667) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:253) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:427) 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Server version: Apache Tomcat/7.0.77 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Server built: Mar 28 2017 16:01:48 UTC 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Server number: 7.0.77.0 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: OS Name: Windows 10 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: OS Version: 10.0 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Architecture: amd64 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Java Home: E:\ruanjian\jdk\jre 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: JVM Version: 1.8.0_121-b13 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: JVM Vendor: Oracle Corporation 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: CATALINA_BASE: C:\Users\iMay\.IntelliJIdea2017.2\system\tomcat\Unnamed_JavaWeb 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: CATALINA_HOME: E:\java\apache-tomcat-7.0.77 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Djava.util.logging.config.file=C:\Users\iMay\.IntelliJIdea2017.2\system\tomcat\Unnamed_JavaWeb\conf\logging.properties 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Dcom.sun.management.jmxremote= 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Dcom.sun.management.jmxremote.port=1099 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Dcom.sun.management.jmxremote.ssl=false 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Dcom.sun.management.jmxremote.authenticate=false 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Djava.rmi.server.hostname=127.0.0.1 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Djava.endorsed.dirs=E:\java\apache-tomcat-7.0.77\endorsed 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Dcatalina.base=C:\Users\iMay\.IntelliJIdea2017.2\system\tomcat\Unnamed_JavaWeb 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Dcatalina.home=E:\java\apache-tomcat-7.0.77 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Djava.io.tmpdir=E:\java\apache-tomcat-7.0.77\temp 十二月 20, 2017 1:32:38 下午 org.apache.coyote.AbstractProtocol init 信息: Initializing ProtocolHandler ["http-bio-8080"] 十二月 20, 2017 1:32:38 下午 org.apache.coyote.AbstractProtocol init 信息: Initializing ProtocolHandler ["ajp-bio-8009"] 十二月 20, 2017 1:32:38 下午 org.apache.catalina.startup.Catalina load 信息: Initialization processed in 569 ms 十二月 20, 2017 1:32:38 下午 org.apache.catalina.core.StandardService startInternal 信息: Starting service Catalina 十二月 20, 2017 1:32:38 下午 org.apache.catalina.core.StandardEngine startInternal 信息: Starting Servlet Engine: Apache Tomcat/7.0.77 十二月 20, 2017 1:32:38 下午 org.apache.coyote.AbstractProtocol start 信息: Starting ProtocolHandler ["http-bio-8080"] 十二月 20, 2017 1:32:39 下午 org.apache.coyote.AbstractProtocol start 信息: Starting ProtocolHandler ["ajp-bio-8009"] 十二月 20, 2017 1:32:39 下午 org.apache.catalina.startup.Catalina start 信息: Server startup in 51 ms Connected to server [2017-12-20 01:32:39,512] Artifact JavaWeb:war exploded: Artifact is being deployed, please wait... 十二月 20, 2017 1:32:39 下午 org.apache.catalina.deploy.WebXml setVersion 警告: Unknown version string [3.1]. Default version will be used. [2017-12-20 01:32:39,867] Artifact JavaWeb:war exploded: Artifact is deployed successfully [2017-12-20 01:32:39,868] Artifact JavaWeb:war exploded: Deploy took 356 milliseconds 十二月 20, 2017 1:32:49 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deploying web application directory E:\java\apache-tomcat-7.0.77\webapps\manager 十二月 20, 2017 1:32:49 下午 org.apache.catalina.core.StandardContext startInternal 严重: One or more listeners failed to start. Full details will be found in the appropriate container log file 十二月 20, 2017 1:32:49 下午 org.apache.catalina.core.StandardContext startInternal 严重: Context [/manager] startup failed due to previous errors 十二月 20, 2017 1:32:49 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deployment of web application directory E:\java\apache-tomcat-7.0.77\webapps\manager has finished in 115 ms /************** 下面是 javaweb 的报错 ***************/ HTTP Status 500 - Servlet execution threw an exception type Exception report message Servlet execution threw an exception description The server encountered an internal error that prevented it from fulfilling this request. exception javax.servlet.ServletException: Servlet execution threw an exception org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause java.lang.NoClassDefFoundError: org/apache/lucene/analysis/Analyzer org.lib.speech.process.DefaultStreamProcess.<init>(DefaultStreamProcess.java:92) com.uestc.www.servlets.Aservlet.doGet(Aservlet.java:43) javax.servlet.http.HttpServlet.service(HttpServlet.java:624) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause java.lang.ClassNotFoundException: org.apache.lucene.analysis.Analyzer org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892) org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735) org.lib.speech.process.DefaultStreamProcess.<init>(DefaultStreamProcess.java:92) com.uestc.www.servlets.Aservlet.doGet(Aservlet.java:43) javax.servlet.http.HttpServlet.service(HttpServlet.java:624) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.77 logs.
javaWeb中 同一目录下的html文件能在浏览器上访问到,但是访问java文件报404错误
javaweb中的web.xml文件配置了, 访问html时页面能显示,javaweb程序继承 Servlet方法。但是报404
javaweb项目都是如何实现上传文件的?
现在有个项目做了负载均衡,代码是部署在A B两个服务器上,用户访问时是访问A B其中一个服务器。假如用户现在执行一个上传图片的操作,如何实现将这张图片上传到另一台专门存放文件的服务器C?
javaweb如何查看上传的pdf文件
我的在js中做了一个超链接: colDataManage.formatter=function(value,rowData,rowIndex){ var retVal= '<a href="javascript:showDesignFile('+rowData.id+');">查看</a>'; return retVal; }; 具体方法是: function showDesignFile(id){ if(id!=null&&id!=""){ var rowData = $('#gridtable').datagrid('getSelected'); var designDoc = rowData.designDoc; if(designDoc==null){ $.messager.alert('提示','不存在该设计文档,无法进行查看!','info'); }else{ window.location.href = path+'/vocDesign/showDesignFile.action?fileName='+encodeURI(encodeURI(designDoc)); } }else{ $.messager.alert('提示','不存在该设计文档,无法查看!','info'); } } action里头是: public void showDesignFile(String fileName) throws IOException { String filePath = ServletActionContext.getServletContext().getRealPath("fileupload"); HttpServletResponse response = ServletActionContext.getResponse(); File f = new File(filePath); if (!f.exists()) { response.sendError(404, "File not found!"); return; } BufferedInputStream br = new BufferedInputStream(new FileInputStream(f)); byte[] bs = new byte[1024]; int len = 0; response.reset(); // 非常重要 if (true) { // 在线打开方式 URL u = new URL("file:///" + filePath); String contentType = u.openConnection().getContentType(); response.setContentType(contentType); response.setHeader("Content-Disposition", "inline;filename=" + fileName); // 文件名应该编码成utf-8 } else { // 纯下载方式 response.setContentType("application/x-msdownload"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName); } OutputStream out = response.getOutputStream(); while ((len = br.read(bs)) > 0) { out.write(bs, 0, len); } out.flush(); out.close(); br.close(); } } 总是进不去方法 还出现500异常: java.lang.NoSuchMethodException: com.xxx.xxx.action.VocDesignReportAction.showDesignFile()
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载 点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
4G EPS 第四代移动通信系统
目录 文章目录目录4G 与 LTE/EPCLTE/EPC 的架构E-UTRANE-UTRAN 协议栈eNodeBEPCMMES-GWP-GWHSSLTE/EPC 协议栈概览 4G 与 LTE/EPC 4G,即第四代移动通信系统,提供了 3G 不能满足的无线网络宽带化,主要提供数据(上网)业务。而 LTE(Long Term Evolution,长期演进技术)是电信领域用于手机及数据终端的高速无线通...
相关热词 c#处理浮点数 c# 生成字母数字随机数 c# 动态曲线 控件 c# oracle 开发 c#选择字体大小的控件 c# usb 批量传输 c#10进制转8进制 c#转base64 c# 科学计算 c#下拉列表获取串口
立即提问