任务3基于MVC实现漫画信息的添加_第1页
任务3基于MVC实现漫画信息的添加_第2页
任务3基于MVC实现漫画信息的添加_第3页
任务3基于MVC实现漫画信息的添加_第4页
任务3基于MVC实现漫画信息的添加_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.3任务3:基于MVC实现漫画信息的添加任务描述运用MVC和三层架构,在新增漫画之前进行存在性验证,并进行相应的提示,进而完成漫画的添加功能,同时完成漫画图片的上传。任务描述技能目标用Commons-FileUpload组件实现文件上传用Commons-FileUpload组件控制文件上传技能目标5.3.1用Commons-FileUpload组件实现文件上传一、Commons-FileUpload组件简介Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件上传的子项目。1、Commons-FileUpload组件的特点使用简单,可以方便地嵌入JSP文件中,而且代码量较小;能够全程控制上传内容;能够限定上传文件的大小和类型。2、获取Commons-FileUpload组件的方式Commons-FileUpload组件依赖于Commons-IO组件,因此,必须同时导入这个两个组件,才能实现文件上传功能。5.3.1用Commons-FileUpload组件实现文件上传二、Commons-FileUpload组件的APICommons-FileUpload组件提供的接口和类,都具备了文件上传的相关功能,如获得所有上传文件的信息,包括名称、类型、大小等。1、ServletFileUpload类ServletFileUpload类用于实现文件的上传操作.5.3.1用Commons-FileUpload组件实现文件上传2、FileItem接口FileItem接口用于封装单个表单元素的数据,一个表单元素对应一个FileItem实例,在应用程序中使用的是其实现类DiskFileItem。5.3.1用Commons-FileUpload组件实现文件上传3、FileltemFactory接口与实现类创建ServletFileUpload实例需要依赖FileltemFactory工厂接口。DiskFileltemFactory是FileltemFactory接口的实现类。5.3.1用Commons-FileUpload组件实现文件上传三、Commons-FileUpload组件的应用使用Commons-FileUpload组件实现文件上传的功能。关键步骤可以总结如下:在项目中引入commons-fileupload-xx.jar和commons-io-xx.jar文件;设置表单的enctype属性为“multipart/form-data”;设置表单的method属性为“post”(不能为“get”);添加类型(type)为file的input元素;在JSP或Servlet文件中导入Commons-FileUpload组件所需的类;判断请求信息中的内容是否是multipart类型,如果是则进行处理;通过FileltemFactory工厂对象实例化ServletFileUpload对象;调用ServletFileUpload对象的parseRequest()方法将表单中元素解析成Fileltem对象的集合;通过迭代或者遍历依次处理每个Fileltem对象,如果是普通字段,通过getString()方法得到相应表单元素的值,该值与表单元素中的"name"属性对应;如果是文件元素,则通过File类的构造方法构建一个指定路径名和文件名的文件,并通过Fileltem对象的write()方法将上传文件的内容保存到该文件中。5.3.1用Commons-FileUpload组件实现文件上传三、Commons-FileUpload组件的应用5.3.1用Commons-FileUpload组件实现文件上传三、Commons-FileUpload组件的应用5.3.2用Commons-FileUpload组件控制文件上传一、控制上传文件的类型可以用Arrays类的asList()方法创建固定长度的集合,即允许文件类型的集合;然后通过集合的contains()方法匹配上传文件的扩展名来判断文件类型是否在允许范围内。可以

添加如下代码,完成文件类型的控制。List<String>fileType=Arrays.asList("gif","bmp","jpg");Stringext=fileName.substring(fileName.lastIndexOf(".")+1);if(!fileType.contains(ext)){//判断文件类型是否在允许范围内

out.print("上传失败,文件类型只能是gif、bmp、jpg");}else{//上传文件}5.3.2用Commons-FileUpload组件控制文件上传二、控制上传文件的大小可以通过ServletFileUpload类的setSizeMax(longsizeMax)方法限制文件的大小,关键代码如下:ServletFileUploadupload=newServletFileUpload(factory);//设置一个完整请求的最大限制upload.setSizeMax(1024*30);try{//……省略上传代码}catch(FileUploadBase.SizeLimitExceededExceptionex){out.print("上传失败,文件太大,全部文件的最大限制是:"+upload.getSizeMax()+"bytes!");}任务实现一、 搭建三层架构,并创建实体类根据数据表Cartoon,创建实体类。任务实现二、 完成数据访问层代码1、新增数据访问接口方法在数据访问接口CartoonDao中,新增漫画的存在性验证(booleanisCartoonExist(Stringctitle))、添加漫画(intaddCartoon(Cartoonct))两个方法。任务实现2、实现数据访问方法在数据访问类(CartoonDaoImpl)中,结合通用BaseDao,实现数据访问接口中新增的两个方法。任务实现三、完成业务逻辑层代码

在业务逻辑接口(CartoonBiz)中,新增漫画的添加方法(StringaddCartoon(Cartoonct));并在业务逻辑类(CartoonBizImpl)中,通过调用数据访问层的方法,实现这个方法。任务实现四、创建添加漫画的表单页

创建表单,并配置enctype、method和action属性。其中,action属性指定的cartoonservlet是请求处理控制器Servlet的URL。由于本次课的重点是文件上传,为了降低代码复杂度,漫画类型和编辑暂时使用固定值。任务实现五、完成请求处理控制器请求处理需要完成两个任务,一个是上传漫画图片到upload文件夹中;另一个是要把表单元素的值,包括上传成功后的图片名(或者路径+图片名)封装到漫画实体对象中,通过调用业务逻辑层的方法,存入数据库。任务实现五、完成请求处理控制器请求处理需要完成两个任务,一个是上传漫画图片到upload文件夹中;另一个是要把表单元素的值,包括上传成功后的图片名(或者路径+图片名)封装到漫画实体对象中,通过调用业务逻辑层的方法,存入数据库。拓展与提高在上传文件的操作中,如果多个用户上传的文件名称一样,则会导致文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论