版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第8章SpringMVC框架
03文件上传下载及异步数据传输框架程序设计(Java)28.3.0学习目标前台上传文件到后台1文件下载2异步数据传输3软件工程系本科课件框架程序设计java38.3.1文件上传例子1上传一个文件到工程中的upload目录,上传后显示上传成功上传文件abc.txt操作成功提示同时,在服务器的upload目录中可以看到该文件已经存在软件工程系本科课件框架程序设计java48.3.1文件上传-环境配置步骤1:环境配置(1)引入文件上传所需的jar包commons-fileupload-1.3.3.jar下载地址:/proper/commons-fileupload/download_fileupload.cgicommons-io-2.0.jar下载地址:/proper/commons-io/download_io.cgi软件工程系本科课件框架程序设计java58.3.1文件上传-环境配置(2)在springMVC的基本配置文件中配置MultipartResolver来解析文件上传请求<!--配置MultipartResolver--><beanid="multipartResolver"class="mons.CommonsMultipartResolver"><propertyname="defaultEncoding"value="UTF-8"></property></bean>说明,上述配置仅仅只需要一次软件工程系本科课件框架程序设计java68.3.1文件上传步骤2:在WebContent/jsp目录下编写上传文件操作页面upload.jsp<formaction="upload_submit"method="POST"enctype="multipart/form-data">文件:<inputtype="file"name="file"/><inputtype="submit"value="上传"/></form>说明:表单提交方式一定是post表单要指定enctype属性为multipart/form-data,在使用包含文件上传控件的表单时,必须使用该值文件选择控件<inputtype="file"name="file"/>软件工程系本科课件框架程序设计java78.3.1文件上传步骤2’:在WebContent/jsp目录下编写文件上传成功页面download.jsp<h1>文件上传成功!</h1>软件工程系本科课件框架程序设计java88.3.1文件上传步骤3:新建上传控制器类springmvc_demo.controller.UploadController@ControllerpublicclassUploadController{ @RequestMapping("/upload") publicStringupdoad(){ return"upload"; }}软件工程系本科课件框架程序设计java98.3.1文件上传步骤3’:在控制器中加入处理表单提交请求的action@RequestMapping("/upload_submit") publicModelAndViewfileUpload(@RequestParam("file")MultipartFilefile,HttpServletRequestrequest) throwsIOException{ //获取文件名 Stringfilename=file.getOriginalFilename(); //获取文件保存到服务器上的地址 Stringpath=request.getServletContext().getRealPath("")+”/upload/”+filename; Filef=newFile(path); //判断upload文件夹是否存在,如果不存在则创建 if(!f.getParentFile().exists()){ f.getParentFile().mkdirs(); } //将上传的文件传输到指定路径 file.transferTo(f); //返回视图 ModelAndViewmv=newModelAndView("download"); mv.addObject("filename",filename);//将文件名传递到下一个页面 returnmv; }软件工程系本科课件框架程序设计java108.3.1文件上传步骤4:因为题目要求在download.jsp页面中显示文件名,一次download.jsp页面修改如下:<h1>文件${filename}上传成功!</h1>软件工程系本科课件框架程序设计java118.3.2文件下载例子2上传一个文件到工程中upload目录,上传后显示上传成功上传文件abc.txt操作成功提示同时,单击下载超链接可以下载文件到本地软件工程系本科课件框架程序设计java128.3.2文件下载步骤1:修改文件上传成功页面download.jsp<h1>文件${filename}上传成功!</h1>需要时可以<ahref="">下载</a>该文件。大家思考一下,下载的超链接应该是什么?/springmvc_demo/upload/上传的文件名说明:绿色部分代表项目部署在tomcat中的路径(项目路径)蓝色部分代表路径下的upload文件夹红色部分代表用户上传的文件名称软件工程系本科课件框架程序设计java138.3.2文件下载步骤2:修改UploadController@RequestMapping("/upload_submit") publicModelAndViewfileUpload(@RequestParam("file")MultipartFilefile,HttpServletRequestrequest) throwsIOException{ //获取文件名 Stringfilename=file.getOriginalFilename(); //获取上传文件路径 Stringpath=request.getServletContext().getRealPath("/upload/")+filename; Filef=newFile(path); //判断upload文件夹是否存在,如果不存在则创建 if(!f.getParentFile().exists()){ f.getParentFile().mkdirs(); } //将上传的文件传输到指定路径 file.transferTo(f); //返回视图 ModelAndViewmv=newModelAndView("download"); mv.addObject("filename",filename);
//将下载该文件的url传递到前台 Stringuripath="/springmvc_demo/upload/"+filename; mv.addObject("uripath",uripath); //获取服务器上 returnmv; }软件工程系本科课件框架程序设计java148.3.2文件下载步骤3:修改文件上传成功页面download.jsp<h1>文件${requestScope.filename}上传成功!</h1>需要时可以<ahref="${uripath}">下载</a>该文件。软件工程系本科课件框架程序设计java158.3.2文件下载单击下载发现:页面报404(找不到文件)的错误原因何在?软件工程系本科课件框架程序设计java168.3.2文件下载分析404原因:web.xml文件中配置的DispatcherServlet的映射地址<servlet-mapping> <servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern> </servlet-mapping>DispatcherServlet可以拦截所有用户请求,因此,当我们访问静态资源时,它也会拦截并且寻找相应的action去处理,当然我们没有定义action处理,因此就会报404错误现在,我们想直接访问项目中的js/css/jpg/gif等静态资源,怎么办呢?软件工程系本科课件框架程序设计java178.3.2文件下载有三种办法,这里用最简单的一种在spring的配置文件中添加如下行:问题得到解决<mvc:annotation-driven/><mvc:default-servlet-handler/>软件工程系本科课件框架程序设计java188.3.2文件下载上述下载功能遇到的问题:左键点击下载是打开文件,右键选择链接另存为时才打开下载对话框,感觉怪怪的,有没有更好的方式呢?软件工程系本科课件框架程序设计java198.3.2文件下载例子3在例2基础上使用springMVC框架实现下载上传文件abc.txt操作成功提示点击下载弹出提示(注:不同浏览器效果不同)软件工程系本科课件框架程序设计java208.3.2文件下载步骤1:修改UploadController,增加接收下载请求的action@RequestMapping("/download") publicResponseEntity<byte[]>downloadFlie(Stringfilename,HttpServletRequestrequest)throwsIOException{
//获取要下载文件字节流 ServletContextservletContext=request.getServletContext(); InputStreamin=servletContext.getResourceAsStream("/upload/"+filename);
//设置下载页面的内容:将字节流文件转换为字节数组body byte[]body=newbyte[in.available()]; in.read(body);
//设置下载页面头 HttpHeadersheaders=newHttpHeaders(); headers.add("Content-Disposition","attachment;filename="+filename);
//设置下载页面的状态 HttpStatusstatusCode=HttpStatus.OK;
//根据页面内容、页面头、页面状态创建并跳转到该页面(实际返回的是下载文件数据) ResponseEntity<byte[]>response=newResponseEntity<byte[]>(body,headers,statusCode); returnresponse; }软件工程系本科课件框架程序设计java218.3.2文件下载步骤2:修改文件上传成功页面download.jsp<h1>文件${filename}上传成功!</h1>需要时可以<ahref=”/工程名/download?filename=${filename}">下载</a>该文件。说明:下载链接其实是提交到后台的action进行处理的第十二次作业根据本节课例子,实现图片的上传和下载。上传文件要求放在工程文件夹下的files文件夹中框架程序设计java22软件工程系本科课件框架程序设计java238.3.3异步数据传输同步:必须等待用户当前操作完成之后才能继续下一个操作异步:无需等待用户操作完成,即可进行下一个操作同步:比如跳转页面的请求异步:比如ajax请求ajax异步请求是在企业项目开发中应用的最多的请求方式,可以提高用户体验软件工程系本科课件框架程序设计java248.3.3异步数据传输例子4用户登录:输入用户名、密码,登录成功到成功页面,登录失败到失败页面,这里不访问数据库,假定用户名:张三、密码:111为登录成功,使用springmvc实现。运行如下什么都不输入,提交,登录失败输入用户名张三、密码111,登陆成功显示用户名软件工程系本科课件框架程序设计java258.3.3异步数据传输步骤1:修改登录页面login.jsp将jquery-3.3.1.min.js文件放到工程WebContent/scripts文件夹中在页面中引入jquery文件<scripttype="text/javascript"src="scripts/jquery-3.3.1.min.js"></script>修改提交按钮,加入onclick事件<inputtype="button"value="登录"onclick="login_submit();"/>软件工程系本科课件框架程序设计java268.3.3异步数据传输修改登录页面login.jsp编写js函数login_submit<scripttype="text/javascript"> functionlogin_submit(){
//异步请求的url varurl="/springmvc_demo/ajax_submit";
//异步请求的参数 varparam={username:$("input[name='username']").val(),password:$("input[name='password']").val()};
//使用$.post方法进行异步提交 //data为后台返回的数据 $.post(url,param,function(data){ alert(data); }); } </script>软件工程系本科课件框架程序设计java278.3.3异步数据传输步骤2:在LoginCont
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 结核性脊柱裂护理查房
- 2026年广东省深圳市南山外国语集团中考历史一模试卷
- 深度解析(2026)《GBT 35386-2017无损检测 工业计算机层析成像(CT)检测用密度分辨力测试卡》
- 《DLT 270-2022钢弦式位移计》从合规成本到利润增长全案:避坑防控+降本增效+商业壁垒构建
- 高中政治哲学主观题题目及详解
- 园林绿化设计公司绩效管理办法
- 农艺师作物栽培试题及解析
- 云计算试卷及详解
- 破产法试卷及分析
- 养老护理员轮椅使用试卷及分析
- 知行合一 - 社会实践•创新创业学习通超星期末考试答案章节答案2024年
- 公安机关保密协议
- 老年人能力评估师理论知识考核要素细目表一级
- 厂房转租合同模板协议
- 湖北省武汉市2024年中考物理真题试题(含答案)
- JCT 841-2024《耐碱玻璃纤维网布》
- BB∕T 0047-2018 气雾漆行业标准
- 人工智能训练师理论知识考试题库(浓缩500题)
- 护理翻转课堂
- 二氧化碳捕集与资源化利用
- 《儿童孤独症讲座》课件
评论
0/150
提交评论