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

网站建设珠海 新盈科技公司免费建站工具

网站建设珠海 新盈科技公司,免费建站工具,网站发布之后上传文件路径变了,网页框架结构有哪些目录 项目准备JSONJSON作用JSON演示ResponseBody注解日期返回json格式 文件上传与下载文件上传准备工作文件项上传文件完成 文件下载文件下载页面下载业务代码 SpringMVC的执行流程 项目准备 大体步骤#xff1a; 新建dynamic web project#xff0c; 修改默认输出的class路… 目录 项目准备JSONJSON作用JSON演示ResponseBody注解日期返回json格式 文件上传与下载文件上传准备工作文件项上传文件完成 文件下载文件下载页面下载业务代码 SpringMVC的执行流程 项目准备 大体步骤 新建dynamic web project 修改默认输出的class路径修改content directory名勾选生成web.xml拷贝SpringMVC核心配置文件 开启扫描包路径 放行静态资源 使spring注解生效 视图解析器拷贝web.xml 前端控制器过滤器部署Tomcat导包编写TestControllerwebapp\WEB-INF\views下新建index.jsp 测试 JSON JSON作用 在实际开发中通常需要和别的系统交换数据数据交换的格式通常有XML和JSON等JSONJavaScript Object NotationJavaScript对象表示法是一种基于JavaScript 语法开放的轻量级数据交换格式使用js语法来描述数据对象JSON作为一个轻量级的数据格式相对于XML文档更小结构清晰简洁读写效率更高XML需要很多的标签在数据传输的时候无疑会消耗更多网络资源和流量 (1)用XML表示一个对象 person id1nametom/nameage20/agesalary5000.0/salary /person(2)用JSON表示一个对象{“id”:1,“name”:“tom”,“salary”:5000.0} JSON演示 html head meta charsetUTF-8 titleInsert title here/titlescript typetext/javascript// 定义jsonvar obj {id:123,name:王天霸,age:30};// 弹出框alert(obj.name);alert(obj.age);var arr [{name:tom,age:20},{name:jack,age:30}];alert(arr[1].age)alert(arr[0].name)/script /head body/body /htmlResponseBody注解 会把数据转成json格式并且不会走视图解析器了 Controller public class JsonController {/*** 返回一个json格式的user对象 * tips406:缺少jar*/RequestMapping(/user)ResponseBody // 会把数据转成json格式并且不会走视图解析器了 public User json1(){User user new User(111, 力很弱, 20); return user; }RequestMapping(/list)ResponseBody // 会把数据转成json格式并且不会走视图解析器了 public ListUser json2(){User user1 new User(111, 力很弱, 20); User user2 new User(222, 王天霸, 21);User user3 new User(333, 阮经天, 22);ListUser list new ArrayList();list.add(user1);list.add(user2);list.add(user3);return list;} }日期返回json格式 User public class User {private Integer id;private String name;private Integer age;JsonFormat(patternyyyy^_^MM^_^dd HH^_^mm^_^ss,timezoneGMT8)private Date date;public User() {super();}public User(Integer id, String name, Integer age) {super();this.id id;this.name name;this.age age;}public User(Integer id, String name, Integer age, Date date) {super();this.id id;this.name name;this.age age;this.date date;}public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public Date getDate() {return date;}public void setDate(Date date) {this.date date;}Overridepublic String toString() {return User [id id , name name , age age ];}}JsonController /*** 日期格式问题*/RequestMapping(/date)ResponseBodypublic User json3(){User user new User(111, 力很弱, 20, new Date()); return user; }文件上传与下载 文件上传与下载实质都是IO流的读写操作 文件上传 文件上传把本地资源上传到服务器即将本地磁盘中的文件复制到服务器指定的地方 输入流(读) - 输出流(写) 准备工作 1.新建upload.html填写上传表单 html head meta charsetUTF-8 titleInsert title here/title /head body!-- 上传三要素表单的提交的方式必须是postinput中必须有typefile enctype:值必须是multipart/form-data-- form action/upload methodpost enctypemultipart/form-data username: input typetext nameusernamebr/图片input typefile namephotobr/input typesubmit value上传/form /body /html2.导包 commons-fileupload-1.2.2.jarcommons-io-1.4.jar 3.上传解析器 SpringMVC.xml bean idmultipartResolver classorg.springframework.web.multipart.commons.CommonsMultipartResolver!-- 设置上传文件的最大尺寸为1MB --property namemaxUploadSize!-- spring el写法1MB --value#{1024*1024}/value/property!-- 效果同上 -- property namemaxUploadSize value1048576 / /bean文件项 以前写的usernamepassword。。。 简单的表单项 文件上传 复杂表单项 tips文件名和路径名尽量不要重复如upload UploadController Controller public class UploadController {/*** photo: 复杂表单项---以前获取参数的方式不行了* MultipartFile:文件项 接收的是一个地址值---包含了上传的内容了*/RequestMapping(/upload)public String uploadFile(MultipartFile photo){boolean empty photo.isEmpty();if (!empty) {String filename photo.getOriginalFilename();System.out.println(filename);}return null;}; }上传文件完成 Controller public class UploadController {/*** photo: 复杂表单项---以前获取参数的方式不行了* MultipartFile:文件项 接收的是一个地址值---包含了上传的内容了*/RequestMapping(/upload)public String uploadFile(MultipartFile photo,HttpServletRequest request) throws IOException{if (!photo.isEmpty()) {// 获取当前项目路径String realPath request.getServletContext().getRealPath(/upload1);// 获取文件名 u19008.jpgString filename photo.getOriginalFilename(); // 获取上传文件的后缀int index filename.lastIndexOf(.);// 后缀String suffix filename.substring(index); // 随机生成一个文件名 1610434039685.xml// 获取时间戳long i System.currentTimeMillis(); // 拼接之后的名字String name isuffix; // 通过File构造获取一个完整的file路径File file new File(realPath, name); // 输入流InputStream input photo.getInputStream(); // 获取输出流FileOutputStream output new FileOutputStream(file); // 上传的核心代码IOUtils.copy(input, output); // 关流output.close();input.close();}// 重定向到当前页面return redirect:/uploadFile.html;} }文件下载 从服务器将文件复制到本地磁盘中 重点输入流输出流 把download目录放入工程中代表服务器资源 文件下载页面 新建download.jsp %page importjava.net.URLEncoder% % page languagejava contentTypetext/html; charsetUTF-8pageEncodingUTF-8% !DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd html head meta http-equivContent-Type contenttext/html; charsetUTF-8 titleInsert title here/title /head bodya href/download?filename%URLEncoder.encode(美女.jpg, utf-8) %美女.jpg/abr/a href/download?filenamestar.mp4star.mp4/abr/a href/download?filenamesuiji.zipsuiji.zip/abr/a href/download?filenamewords.txtwords.txt/abr/ /body /htmltips要解决IE浏览器点击有中文的A标签报错400的问题用uff-8编码解决 下载业务代码 tips 1.要解决浏览器能打开就直接打开不下载的问题 2.要解决中文乱码的问题文件名乱码 DownloadController Controller public class DownloadController {RequestMapping(/download)public void download(String filename,HttpServletRequest req,HttpServletResponse resp) throws IOException{// 获取download路径String realPath req.getServletContext().getRealPath(/download); // 完整的file文件File file new File(realPath, filename); // 不同的浏览器去处理中文乱码方式if(req.getHeader(User-Agent).toUpperCase().indexOf(TRIDENT)!-1){filename URLEncoder.encode(filename, utf-8);//电脑自带edge【edʒ】浏览器 }else if(req.getHeader(User-Agent).toUpperCase().indexOf(EDGE)!-1){ filename URLEncoder.encode(filename, utf-8);}else{//其他浏览器filename new String(filename.getBytes(UTF-8),ISO-8859-1);//转码的方式}; // 告诉浏览器我要以下载的方式处理这个文件resp.setHeader(Content-Disposition, attachment; filename filename); // 获取输入流FileInputStream input new FileInputStream(file); // 获取响应输出流ServletOutputStream output resp.getOutputStream(); // 核心代码IOUtils.copy(input, output); // 关流output.close();input.close();} }SpringMVC的执行流程 四大器前端控制器、处理器映射器、处理器适配器、视图解析器 前端控制器之前还有一个过滤器之后有三个阶段的拦截器
http://wiki.neutronadmin.com/news/380635/

相关文章:

  • 如何在网站上做用工登记龙岩做网站公司有哪些
  • 设计师查询网站免费贴图素材网站
  • 网站地图怎么提交wordpress 制作首页模板
  • 网站页面用什么软件做建设网站的实验报告
  • 晋江市规划局建设网站wordpress 开发 知乎
  • 成品网页网站房产信息网二手房
  • 17网站一起做网店睡衣最便宜手机网站建设
  • 网站建设全屏营销策划公司介绍
  • 烟台网站建设合肥公司wordpress不显示标题
  • 驻马店市旅游网站建设东莞视频网站制作
  • 阳谷网站建设网络推广火车头采集网站
  • 六安市公司网站建设大航母网站建设案例
  • 有了域名 怎么做网站平台建设网站公司
  • 如何做公证网站网页发布时间哈尔滨专业的制作网页
  • cnnic网站网站建设概括
  • 我的世界做封面网站宝应网站设计
  • 做h5的网站哪个好化妆品wordpress主题
  • 买别人做的网站能盗回吗杭州租车网站建设
  • 英雄联盟怎么做直播网站wordpress 大前端 插件
  • 网站建设文献综述知乎东莞网站建设服务
  • 网站运行速度慢的原因厦门哪些企业做视频网站的
  • flask做的购物网站我要开网店
  • 商品网站开发需求表百度搜索优化关键词排名
  • 深圳建站公司 企网站免费 free 服务器 终身 永久
  • 合肥知名网站建设公司公司网站域名怎么续费
  • 网站建设预算申请如何写投放广告网站
  • 陕西省西安市建设局网站加强网站和新媒体建设管理的意义
  • 网站开发部职责qq推广设置中心
  • 怎么样才能找到网站后台网址注册邮箱免费注册
  • 电商网站前端页面内容编写可以发布免费广告的平台