当前位置: 首页 > 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/14471881/

相关文章:

  • 网站对企业的作用jsp类型网站托管费用
  • python做的网站北京网站开开发公司
  • 淘宝开网站建设店铺分析多用户商城系统价格
  • i深建官方网站网站广告出价平台
  • 网站首页引导页模版在线设计的软件
  • 佛山技术支持 骏域网站建设网站内容有什么
  • 网站建设分享芜湖市建设厅网站
  • 公司网站建设注册免费建设一个网站
  • 煎蛋网站用什么做的一般做个小程序多少钱
  • 友情链接出售郑州厉害的seo优化顾问
  • 荣耀手机商城官方网站thinkphp做网站好吗
  • 常用的网站开发技术有哪几种河北建设广州分公司网站
  • 电影网站建设目的做PPT素材用到的网站
  • 中国那些企业做网站做得好wordpress配置教程
  • 广西兴业县建设局网站泰安住房和城乡建设局网站
  • 如何做网站清风制作咸阳网站建设哪家专业
  • 网站开发毕设设计论文建立个人网站要钱吗
  • 哪些公司做网站比较好微信网页插件 wordpress
  • 网站信息化建设总体情况wordpress照片主题
  • 北大荒建设集团网站厦门网站建设680元
  • 网站建设-部署与发布的题目网店如何推广自己的产品
  • 广州知名网站建设东莞北京网站建设价格
  • jq网站特效插件下载沈阳男科医院哪家好医
  • 潜江哪里做网站成都seo公司
  • 杭州倍世康 做网站软件平台介绍
  • 风景名胜区建设部网站天津做网站费用
  • 企业网站包含内容网站建设所用系统
  • 湖北网站建设公司哪家好苏州嘉盛建设工程有限公司网站
  • 手机建站官网湖州网站建设服务公司
  • 网站建设为风险分析潍坊网站开发公司