`
明天会更浩
  • 浏览: 5790 次
  • 性别: Icon_minigender_1
社区版块
存档分类

struts2文件上传下载及笔记整理

阅读更多

         刚刚学了一点struts2的使用及邮件的发送,就迫不及待的将之前的作业升级了下,以下是通过刚学的东西添加的以下功能。

第5.1个版本,实现以下功能:

     i,对注册功能做了优化,用户在登录的时候必须输入邮箱,提交注册后服务器会自动发邮件到用户邮箱完成后续的注册,在utils中添加了一个MailUtil类用于发送邮件,主要实现思路是,在用户注册的时候将用户提交的表单封装起来存到session中, 同时产生一个UUID同样将其存放到session中,且将它以url参数的形式发送到用户的邮箱中,用户点击邮箱中的链接后获取链接 后的参数,如果和session中的值一致,则获取session中封装的表单完成注册。
       
      j,使用struts框架替代view的servlet,程序的维护性和扩展性得到扩展。
            1)添加struts开发所用的jar包,使用user包统一存放,方便管理。
            2)在web-xml中添加struts核心的过滤器。
            3)在src目录下创建一个struts.xml配置文件
            4)创建一个cn.itcast.web.control包,用于存放处理customer和login表的Action,在包下还创建了Customer.xml 和Login.xml用于分别配置两张表的action,在struts.xml分别引入两个第一是方便管理维护,第二是struts.xml中的内容不至于太多。
        
      k,在Login添加一个image字段,用于存放用户的头像路径,提供登录用户除密码外所有信息的页面。可以点击下载头像。使用struts2的文件上传下载实现功能。

-------------------------------------------------------------------------------------------------------------------------------------

        以下是作业过程中遇到的一些需要注意的地方。

                                1)使用strut2核心过滤器以后,想要使用自定义过滤器则必须在web.xml中strut2核心过滤器注册之前注册才能使用,否则自定义的过滤器不会执行(原因未知,只是发现这个现象)。

                                2)文件的上传下载和之前有不同,文件上传:和之前的表单一样,同样要声明是enctype="multipart/form-data"的表单。其他代码如下

                                Action中: private File fileimage;
                                               private String fileimageFileName;  // 文件名
                                               private String fileimageContentType;  // 文件类型

                                                .......//getset方法省略

                                  public String uplodeFile(){

try {
    //上传头像
    String path=ServletActionContext.getServletContext().getRealPath("/userImage");
    File destfile=new File(path, this.fileimageFileName);
    FileUtils.copyFile(fileimage, destfile);
   } catch (IOException e) {
    ServletActionContext.getRequest().setAttribute("message", "对不起,文件上传失败!");
    return INPUT;
   }

}

                                                  struts.xml中:

   <action name="loginRegister" class="cn.itcast.web.control.RegisterAction"
   method="loginRegister">
   <result name="self">/WEB-INF/jsp/register.jsp</result>
   <result name="input">/WEB-INF/jsp/message.jsp</result>
   <!-- 限制上传的文件类型 -->
   <interceptor-ref name="defaultStack">
    <!-- 根据文件类型限制 <param name="fileUpload.allowedTypes">文件的MIME类型</param> -->
    <!-- 根据文件扩展名限制 ; 如果文件类型与文件扩展名同时使用,会取交集! -->
    <param name="fileUpload.allowedExtensions">jpg,png,jpeg</param>
   </interceptor-ref>
  </action>

想要限制上传文件的大小则还得加上这句:

 <!-- 修改上传文件大小限制:10M -->
 <constant name="struts.multipart.maxSize" value="10485760"></constant>

文件下载:

             文件下载相对步骤多些比较重要的几点是,1给配置文件中加上几个参数,且result的类型必须为stream,2在action中为这几个参数在struts调用之前赋值,参数分别是下载文件类型、文件流、缓冲大小、下载文件的响应头(里面需要设置文件名)具体代码如下:

 

<action name="down" class="cn.itcast.web.control.DownLodeAction" method="down">
   <!-- 返回结果名称为 :downFile 对应的应该是文件流-->
   <result name="success" type="stream">
      <!-- 下载的文件类型:二进制文件 -->
      <param name="contentType">application/octet-stream</param>
      <!-- 对应的action中的返回流的属性名称 --> 
      <param name="inputName">inputStream</param>
      <param name="contentDisposition">attachment;filename=${downLoadFileName}</param>
      <param name="bufferSize">1024</param>
   </result>
  </action>

也可以使用之前的方式,不使用struts的方法(及只操作fileuplode组件实现下载),只需要在action方法中添加实现下载的代码,返回值设置为null,同样result中的type指定为stream即可。

 

 

-------------------------------------------------------------------------------------------------------------------------------

使用struts的时候发现发布后马上使用可能会出现更新不及时的情况,好几次都是发布到tomcat后马上浏览发现有问题,然后马上调试一步步调试发现又没问题跟着设定的逻辑走,不知道是机子的原因还是啥原因。

0
0
分享到:
评论

相关推荐

    struts2文件上传下载源代码

    这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件到服务器。在Struts2中,这通常通过表单实现,表单包含一个`&lt;input type="file"&gt;`...

    struts2实现文件上传下载

    Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。

    struts2文件上传下载

    在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...

    struts2文件上传和下载

    在Struts2中,文件上传和下载是常见的功能需求,对于用户交互和数据交换至关重要。以下是对这些知识点的详细阐述: 1. **文件上传**: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它是一个Apache提供...

    struts2文件上传与下载

    在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户在Web表单中提交的文件,如图片、文档等。下面将详细介绍Struts2中文件上传和下载的实现方法。 ### 1. 文件上传 #### 1.1 配置Struts2 首先,我们...

    Struts2文件上传与下载

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理用户表单提交、进行文件上传和下载。在Web应用中,文件上传和下载是常见的需求,例如用户上传头像、下载文档等。Struts2通过其Action类和...

    struts2文件上传jar

    这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件上传的基本流程。当用户通过表单提交包含文件输入字段的请求时,Struts2框架会...

    struts2文件上传下载实例

    在“struts2文件上传下载实例”中,我们将探讨如何在Struts2框架下实现文件的上传和下载功能,这对于许多Web应用程序来说是必不可少的特性。 首先,`pom.xml`文件是Maven项目对象模型的配置文件,它定义了项目的...

    Struts2文件上传下载和表单重复提交问题

    综上所述,Struts2文件上传下载和表单重复提交涉及多个技术点,包括Struts2的配置、文件操作、HTTP响应头设置、安全性和异常处理。理解并熟练掌握这些知识点,对于构建健壮的Web应用程序至关重要。

    struts2 文件上传

    Struts2 文件上传是Web开发中的一个重要功能,它允许用户通过网页上传文件到服务器。Struts2 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,提供了丰富的特性和强大的控制层功能,使得文件上传...

    Struts2之struts2文件上传详解案例struts011

    在Struts2中,文件上传功能是常见的需求,比如用户可能需要上传个人照片、文档或者其他类型的文件。在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解...

    struts实现的文件上传下载功能

    总结起来,使用Struts实现文件上传下载涉及前端表单设计、后端处理逻辑、文件存储策略以及安全控制等多个方面。在实践中,我们还需要考虑到性能优化和用户体验提升,例如使用异步上传、进度条展示等技术。

    Struts2多个文件上传

    在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...

    struts2文件上传实例

    1. **.struts2配置**:在Struts2框架中,需要在`struts.xml`配置文件中添加相应的action配置,声明文件上传的处理方法。通常,你需要设置`&lt;result&gt;`类型为`stream`,以便处理上传的文件。 2. **Action类**:创建一...

    struts2实现多文件上传下载

    3.Struts2进行下载处理,能对上传的所有文件进行下载(多个) 4.文件保存的名称UUID生成,不过显示并下载的名称都是原文件名称 (通过UploadFiles处理) 5.对配置文件中的路径可以进行动态读取(不重启服务器) ...

    基于Struts2的文件上传下载功能的完整源代码。

    在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...

    Struts2多文件上传下载实例

    在实际项目中,文件上传和下载功能是必不可少的,本实例将详细讲解如何在Struts2框架下实现单个文件及多个文件的上传与下载。 首先,我们需要在Struts2的配置文件(struts.xml)中添加相关的Action配置,以便处理文件...

    struts2文件上传下载(注解版)

    下面将详细介绍这个“struts2文件上传下载(注解版)”项目的关键知识点。 1. **注解配置**: 在传统的Struts2配置中,我们需要在struts.xml文件中手动配置Action类与结果页面的映射。然而,使用注解可以在Action...

Global site tag (gtag.js) - Google Analytics