当前位置: 首页 > news >正文

新乡企业网站建设c2c网站购物体验情况登记表

新乡企业网站建设,c2c网站购物体验情况登记表,网站左右箭头素材,全国统一信息查询平台servlet文件上传下载Java Web应用程序中的文件上载和下载以及常见任务。 由于最近我写了很多有关Java servlet的文章 #xff0c;因此我想提供一个使用servlet上传和下载文件的示例示例。 用例 我们的用例是提供一个简单HTML页面#xff0c;客户端可以在其中选择要上传到服务… servlet文件上传下载 Java Web应用程序中的文件上载和下载以及常见任务。 由于最近我写了很多有关Java servlet的文章 因此我想提供一个使用servlet上传和下载文件的示例示例。 用例 我们的用例是提供一个简单HTML页面客户端可以在其中选择要上传到服务器的本地文件。 在提交上传文件的请求后我们的Servlet程序会将文件上传到服务器中的目录中然后提供URL用户可以通过该URL下载文件。 出于安全原因不会为用户提供下载文件的直接URL而是会为他们提供下载文件的链接并且我们的Servlet将处理请求并将文件发送给用户。 我们将在Eclipse中创建一个动态Web项目项目结构如下图所示。 让我们研究一下Web应用程序的所有组件并了解实现。 用于上传文件HTML页面 我们可以通过向Servlet发送发布请求并提交表单来将文件上传到服务器。 我们无法使用GET方法上传文件。 还要注意的一点是表单的enctype应该是multipart / form-data 。 要从用户文件系统中选择文件我们需要使用类型为file的 输入元素。 因此我们可以使用一个简单HTML页面将文件上传为 index.html html head/head body form actionUploadDownloadFileServlet methodpost enctypemultipart/form-data Select File to Upload:input typefile namefileName br input typesubmit valueUpload /form /body /html服务器文件位置 我们需要将文件存储到服务器上的某个目录中我们可以在程序中对这个目录进行硬编码但是为了获得更好的灵活性我们将在部署描述符上下文参数中将其保持可配置状态。 另外我们会将上传文件的html页面添加到欢迎文件列表中。 我们的web.xml文件如下所示 web.xml ?xml version1.0 encodingUTF-8? web-app xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlnshttp://java.sun.com/xml/ns/javaee xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd version3.0display-nameServletFileUploadDownloadExample/display-namewelcome-file-listwelcome-fileindex.html/welcome-file/welcome-file-listcontext-paramparam-nametempfile.dir/param-nameparam-valuetmpfiles/param-value/context-param /web-appServletContextListener实现 由于我们需要读取文件位置的上下文参数并从中创建File对象因此可以在初始化上下文时编写ServletContextListener来执行此操作。 我们可以将绝对目录位置和File对象设置为上下文属性以供其他servlet使用。 我们的ServletContextListener实现代码如下。 FileLocationContextListener.java package com.journaldev.servlet;import java.io.File;import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener;WebListener public class FileLocationContextListener implements ServletContextListener {public void contextInitialized(ServletContextEvent servletContextEvent) {String rootPath System.getProperty(catalina.home);ServletContext ctx servletContextEvent.getServletContext();String relativePath ctx.getInitParameter(tempfile.dir);File file new File(rootPath File.separator relativePath);if(!file.exists()) file.mkdirs();System.out.println(File Directory created to be used for storing files);ctx.setAttribute(FILES_DIR_FILE, file);ctx.setAttribute(FILES_DIR, rootPath File.separator relativePath);}public void contextDestroyed(ServletContextEvent servletContextEvent) {//do cleanup if needed}}文件上传下载Servlet实现 对于文件上传我们将使用Apache Commons FileUpload实用程序对于我们的项目我们使用版本1.3FileUpload依赖于Apache Commons IO jar因此我们需要将两者都放置在项目的lib目录中如您在上面看到的那样项目结构的图像。 我们将使用DiskFileItemFactory工厂该工厂提供一种方法来解析HttpServletRequest对象并返回FileItem的列表。 FileItem提供了有用的方法来获取文件名字段名格式大小和需要上载的文件的内容类型的详细信息。 要将文件写入目录我们要做的就是创建一个File对象并将其作为参数传递给FileItem write方法。 由于Servlet的全部目的是上传文件因此我们将重写init方法来初始化Servlet的DiskFileItemFactory对象实例。 我们将在doPost方法实现中使用此对象将文件上传到服务器目录。 成功上传文件后我们将使用URL向客户端发送响应以下载文件因为HTML链接使用GET方法因此我们将在URL中添加文件名参数并且可以使用相同的servlet doGet方法实施文件下载过程。 为了实现下载文件servlet首先我们将打开文件的InputStream并使用ServletContext.getMimeType方法获取文件的MIME类型并将其设置为响应内容类型。 我们还需要将响应内容的长度设置为文件的长度。 为了确保客户理解我们正在发送文件作为响应我们需要将“ Content-Disposition ”标头设置为“ attachment”。 filename “ fileName ”。 完成设置响应配置后我们可以从InputStream读取文件内容并将其写入ServletOutputStream并将输出刷新到客户端。 我们的UploadDownloadFileServlet Servlet的最终实现如下所示。 UploadDownloadFileServlet.java package com.journaldev.servlet;import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.Iterator; import java.util.List;import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload;WebServlet(/UploadDownloadFileServlet) public class UploadDownloadFileServlet extends HttpServlet {private static final long serialVersionUID 1L;private ServletFileUpload uploader null;Overridepublic void init() throws ServletException{DiskFileItemFactory fileFactory new DiskFileItemFactory();File filesDir (File) getServletContext().getAttribute(FILES_DIR_FILE);fileFactory.setRepository(filesDir);this.uploader new ServletFileUpload(fileFactory);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String fileName request.getParameter(fileName);if(fileName null || fileName.equals()){throw new ServletException(File Name cant be null or empty);}File file new File(request.getServletContext().getAttribute(FILES_DIR)File.separatorfileName);if(!file.exists()){throw new ServletException(File doesnt exists on server.);}System.out.println(File location on server::file.getAbsolutePath());ServletContext ctx getServletContext();InputStream fis new FileInputStream(file);String mimeType ctx.getMimeType(file.getAbsolutePath());response.setContentType(mimeType ! null? mimeType:application/octet-stream);response.setContentLength((int) file.length());response.setHeader(Content-Disposition, attachment; filename\ fileName \);ServletOutputStream os response.getOutputStream();byte[] bufferData new byte[1024];int read0;while((read fis.read(bufferData))! -1){os.write(bufferData, 0, read);}os.flush();os.close();fis.close();System.out.println(File downloaded at client successfully);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {if(!ServletFileUpload.isMultipartContent(request)){throw new ServletException(Content type is not multipart/form-data);}response.setContentType(text/html);PrintWriter out response.getWriter();out.write(htmlhead/headbody);try {ListFileItem fileItemsList uploader.parseRequest(request);IteratorFileItem fileItemsIterator fileItemsList.iterator();while(fileItemsIterator.hasNext()){FileItem fileItem fileItemsIterator.next();System.out.println(FieldNamefileItem.getFieldName());System.out.println(FileNamefileItem.getName());System.out.println(ContentTypefileItem.getContentType());System.out.println(Size in bytesfileItem.getSize());File file new File(request.getServletContext().getAttribute(FILES_DIR)File.separatorfileItem.getName());System.out.println(Absolute Path at serverfile.getAbsolutePath());fileItem.write(file);out.write(File fileItem.getName() uploaded successfully.);out.write(br);out.write(a href\UploadDownloadFileServlet?fileNamefileItem.getName()\Download fileItem.getName()/a);}} catch (FileUploadException e) {out.write(Exception in uploading file.);} catch (Exception e) {out.write(Exception in uploading file.);}out.write(/body/html);}} 下图显示了该项目的示例执行。 您可以从以下网址下载Apache Commons IO jar和Apache Commons FileUpload jar。 http://commons.apache.org/proper/commons-fileupload/download_fileupload.cgi http://commons.apache.org/proper/commons-io/download_io.cgi 更新内容 下载ServletFileUploadDownloadExample项目 查阅有关Servlet异常处理系列的下一篇文章。 传入的搜索条件 文件下载servlet 参考 开发者食谱博客上的JCG合作伙伴 Pankaj Kumar的Servlet上传文件和下载文件示例 。 翻译自: https://www.javacodegeeks.com/2013/08/servlet-upload-file-and-download-file-example.htmlservlet文件上传下载
http://www.pierceye.com/news/71230/

相关文章:

  • wordpress自动跳转到手机版网站怎么做关键词怎么优化
  • 高端网站服务范围北京互联网公司大厂有哪些
  • 2018年网站开发技术用wordpress搭建商城
  • 网站建设项目内容学做衣服上什么网站好
  • 如何用c 做网站背景中国移动生活app下载安装
  • 农八师建设兵团社保网站电子商务网站建设如何策划与实施
  • 株洲网站优化查询网站流量
  • c可以做网站吗重庆推广渠道
  • 做一个学校网站徐州地区网站建设
  • 创办一个网站能够做那些事seo搜索引擎优化包邮
  • 做笑话网站赚钱pk10代码网站开发
  • 福州网站建设方案咨询dw做网站的流程
  • 常用网站域名如何建立本站站点
  • 北京交友最好的网站建设天安保险公司官网
  • seo网站的优化方案wordpress网站属于什么网站吗
  • 网站开发哪种语言好在线crm系统是啥
  • 网站开发简历的项目经验一键生成微信小程序
  • 展示型网站建设的建议茂名高端模板建站
  • 网站收录500多页个人网站论文结束语
  • 投诉网站制作网站无障碍建设标准
  • 龙岗网站多少钱平面设计与网站开发的概述
  • php下载站源码网站建设-应酷
  • 虚拟主机做视频网站可以吗购物网站开发实例
  • 前端做网站难吗有谁做彩票网站吗
  • 济南网站制作企业做网站怎么做的
  • 四平市住房和城乡建设部网站厦门市工程建设项目网上办事大厅
  • 东营微信开发网站建设wordpress 添加广告窗口
  • 牛牛襄阳网站建设微信官方网站建设
  • 私人定制网站棋牌游戏网站模板
  • 网站显示危险网站wordpress 远程代码