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

河北通信建设有限公司网站大型网络规划设计方案

河北通信建设有限公司网站,大型网络规划设计方案,银川网站开发,软考高项彻底没用了前言#xff1a; 在学习Javaweb的Servlet文件上传和下载的过程中#xff0c;我们会遇到一个特殊的注解---MultipartConfig。 MultipartConfig的适用情况#xff1a; 1.文件上传: 当您的应用程序需要接收用户上传的文件时#xff0c;可以在相应的 Servlet 上使用 Multipart…前言 在学习Javaweb的Servlet文件上传和下载的过程中我们会遇到一个特殊的注解---MultipartConfig。 MultipartConfig的适用情况 1.文件上传: 当您的应用程序需要接收用户上传的文件时可以在相应的 Servlet 上使用 MultipartConfig 注解。通过使用该注解Servlet 可以方便地解析和处理 multipart/form-data 类型的请求从中提取上传的文件。 2.图片上传: 如果您的应用程序需要用户上传图片例如头像、照片等那么您可以使用 Multipartconfig 注解来处理包含图片文件的表单请求。 3.多媒体内容:如果您的应用程序需要处理包含音频、视频或其他多媒体内容的表单请求您可以使用 Multipartconfig 注解来处理这些请求并提取相应的多媒体文件。 4.表单中的大量数据:有时表单中可能包含大量的字段和数据。在这种情况下Multipartconfig 注解可以帮助您处理这些复杂的表单请求。 以上也许您不想花大量的时间来阅读那么我就用一句简单的话来解释 当您的应用程序需要处理包含文件或其他二进制数据的表单请求时可以使用 MultipartConfig 注解。它使得解析和处理 multipart/form-data 请求变得更加简单和方便。 了解完MultipartConfig注解的适用情况。接下来还是来看看API文档的描述吧。 API文档内容 翻译过来就是 MultipartConfig 注解可以应用于 Servlet 类上用于指示该 Servlet 预期符合 multipart/form-data MIME 类型的请求。这通常用于处理包含文件上传的表单数据。 当一个 Servlet 使用了 MultipartConfig 注解后它可以通过调用 getPart 或 getParts 方法来获取给定 multipart/form-data 请求的各个部分Part 组件。Part 组件代表了上传的文件或其他表单字段的数据。 当然这个注解还有一些属性如下 这里不过多展开这些属性只需要知道它有这几个属性 1.fileSizeThreshold文件大小阈值指定文件在超过该大小阈值后将被写入磁盘 2.location文件存储目录指定文件将存储的目录位置。上传的文件将被存储在该指定的目录中 3.maxFileSize最大文件大小指定允许上传的单个文件的最大大小 4.maxRequestSize最大请求大小指定允许的 multipart/form-data 请求的最大大小。 实例测试 那么还是先来看一下正常的代码与运行结果吧 !doctype html html langenheadmeta charsetUTF-8meta nameviewportcontentwidthdevice-width, user-scalableno, initial-scale1.0, maximum-scale1.0, minimum-scale1.0meta http-equivX-UA-Compatible contentieedgelink href Book_entry.css relstylesheet type text/css /title图书录入系统/title /head body !--书籍名称、出版社、编者、价格、书籍介绍--h2图书录入/h2 divform enctypemultipart/form-data methodpost action../Book_entrylabel for book_name书籍名称: /labelbrinput type text id book_name name book_name placeholder请输入书籍名称brbrlabel for publishing_house出版社: /labelbrinput type text id publishing_house name publishing_house placeholder请输入出版社brbrlabel for editor编者: /labelbrinput type text id editor name editor placeholder请输入编者brbrlabel for Price价格: /labelbrinput type text id Price name Price placeholder请输入价格brbrpinput typecheckbox value social_science name Book_type checked/社会科学input typecheckbox value natural_science name Book_type /自然科学input typecheckbox value philosophy name Book_type /哲学input typecheckbox value novel name Book_type /小说input typecheckbox value art name Book_type /艺术/plabel书籍介绍: /labelbrtextarea namedescription/textareabrbrinput type file id photo name photo placeholder请插入图片input typesubmit value提交/form /div/body /html package com.example;import com.example.Book; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.MultipartConfig; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.Part;import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.UUID;MultipartConfig WebServlet(/Book_entry)public class BookServlet extends HttpServlet {private ListBook books new ArrayList();Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding(utf-8);// 从请求参数中获取书籍信息String book_name request.getParameter(book_name);String publishing_house request.getParameter(publishing_house);String editor request.getParameter(editor);String Price request.getParameter(Price);String bookType request.getParameter(Book_type);String description request.getParameter(description);//获取上传的Part对象Part photo request.getPart(photo);StringBuffer sb new StringBuffer();if(book_name.isBlank())sb.append(必须输入书名);else if(publishing_house.isBlank())sb.append(必须输入出版社);else if(editor.isBlank())sb.append(必须输入作者);else if(Price.isBlank())sb.append(必须输入价格);else if(bookType.isBlank())sb.append(必须输入书的类型);else if(description.isBlank())sb.append(必须输入书籍介绍);else if(photo null)sb.append(必须上传书的封面);// if(sb.length() ! 0) // { // response.getWriter().println(sb); // return; // } // sb.append(书名).append(book_name).append(br); // sb.append(出版社).append(publishing_house).append(br); // sb.append(作者).append(editor).append(br); // sb.append(价格).append(Price).append(br); // sb.append(书类型).append(bookType).append(br); // sb.append(书籍介绍).append(description).append(br);//断言assert photo ! null;InputStream is photo.getInputStream();ByteArrayOutputStream baos new ByteArrayOutputStream();byte[] b new byte[1024];while(is.read(b)0){baos.write(b);}b baos.toByteArray();UUID uuid UUID.randomUUID();String sfn photo.getSubmittedFileName();String suffix sfn.substring(sfn.lastIndexOf(.));FileOutputStream fos new FileOutputStream(D:/photo/ uuid.toString() suffix);fos.write(b);fos.close();String imageUrl D:/photo/ uuid.toString() suffix;// 创建Book对象Book book new Book();book.setTitle(book_name);book.setPublisher(publishing_house);book.setEditor(editor);book.setPrice(Price);book.setDescription(description);// 将书籍信息添加到列表中books.add(book);// 返回成功信息response.setContentType(text/html;charsetutf-8);response.getWriter().println(sb);String head !doctype htmlhtml langenheadmeta charsetUTF-8meta nameviewportcontentwidthdevice-width, user-scalableno, initial-scale1.0, maximum-scale1.0, minimum-scale1.0meta http-equivX-UA-Compatible contentieedgetitle图书信息/titlelink href ./Book_entry.css relstylesheet type text/css//headbody;head h3 style\text-align:center\图书信息/h3;head div;head p书名 book_name /p;head p出版社 publishing_house /p;head p编辑 editor /p;head p价格 Price /p;head p书籍类型 bookType /p;head p描述 description /p;head img src\D:/photo/ uuid.toString() suffix \ alt\书籍封面\;head /div;response.getWriter().println(head);} } 以上便是代码部分 那么来看一下运行的结果 代码是正常运行的 但是如果我们去掉MultipartConfig的注解呢 我们发现从html页面获取的内容为null 调试结果也告诉我们book_name为空了 那么原因如下 如果你在处理包含文件上传的multipart/form-data类型的请求时没有添加MultipartConfig注解request.getParameter()方法无法直接获取文本框input typetext中的内容而会返回null。 这是因为在multipart/form-data类型的请求中表单数据包含了文件和其他文本字段而request.getParameter()方法只能用于获取application/x-www-form-urlencoded编码类型的表单参数值不能直接获取multipart/form-data类型请求中的文本字段的值。 当使用MultipartConfig注解配置Servlet来处理multipart/form-data请求时Servlet容器会根据该注解的配置自动解析请求中的文件和文本字段并将它们作为Part对象提供给开发者使用。 要获取multipart/form-data请求中的文本字段的值你可以使用request.getPart()方法来获取对应的Part对象然后通过Part对象的getInputStream()方法读取文本字段的内容。
http://www.hkea.cn/news/14285107/

相关文章:

  • 做公司 网站建设价格全球外贸网
  • 南昌好的做网站的公司wordpress 艺术主题
  • 广州企业建站系统模板创建公司策划书
  • app与微网站的区别是什么意思wordpress添加形式
  • 网站设计模板网站常德网站设计
  • 电子商务网站的建设目标白云百度seo公司
  • 运城网站建设公司有多少免费推广神器
  • 墨客网站建设xcyxqc搜索引擎排名优化建议
  • 网站设计宽度库易网网站
  • 青岛网站关键字优化wordpress调取全部图片缩略图
  • asp网站目录权限wordpress与joomla哪个好
  • 如何对网站进行改版wordpress下载链接 插件
  • 运城市住房和城乡建设部网站莱芜网逃人员
  • 专业旅游网站建设直招招聘网
  • 永安市住房与城乡建设局网站网站建设 ipv6
  • python 兼职网站开发新乡市网站建设电脑培训班
  • 网站建设公司公司介绍商标生成器在线制作
  • 做装修的人到什么网站找工作设计平台软件
  • 敬请期待是什么意思seo排名优化是什么
  • 广州网站搜索排名医疗网站建设平台价格
  • 成都公司网站seo酒店网站建设方案书
  • 深圳做微信网站多少钱可不可以异地建设网站
  • 网站标题 关键字怎么设置代码立即优化在哪里
  • 设计网站会员哪个好用信息网站开发合同
  • 个人网站建设怎么样网站微信分享怎么做
  • 网站建设哪家专业唯品会是哪做的网站
  • 青县建设银行网站网站建设高清图片
  • 做抛物线的网站高端企业网站建设服务商
  • 南昌网站页面优化网站每天更新多少文章
  • 网站的加盟代理网络策划与营销