刚刚学了一点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后马上浏览发现有问题,然后马上调试一步步调试发现又没问题跟着设定的逻辑走,不知道是机子的原因还是啥原因。
相关推荐
这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件到服务器。在Struts2中,这通常通过表单实现,表单包含一个`<input type="file">`...
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。
在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...
在Struts2中,文件上传和下载是常见的功能需求,对于用户交互和数据交换至关重要。以下是对这些知识点的详细阐述: 1. **文件上传**: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它是一个Apache提供...
在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户在Web表单中提交的文件,如图片、文档等。下面将详细介绍Struts2中文件上传和下载的实现方法。 ### 1. 文件上传 #### 1.1 配置Struts2 首先,我们...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理用户表单提交、进行文件上传和下载。在Web应用中,文件上传和下载是常见的需求,例如用户上传头像、下载文档等。Struts2通过其Action类和...
这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件上传的基本流程。当用户通过表单提交包含文件输入字段的请求时,Struts2框架会...
在“struts2文件上传下载实例”中,我们将探讨如何在Struts2框架下实现文件的上传和下载功能,这对于许多Web应用程序来说是必不可少的特性。 首先,`pom.xml`文件是Maven项目对象模型的配置文件,它定义了项目的...
综上所述,Struts2文件上传下载和表单重复提交涉及多个技术点,包括Struts2的配置、文件操作、HTTP响应头设置、安全性和异常处理。理解并熟练掌握这些知识点,对于构建健壮的Web应用程序至关重要。
Struts2 文件上传是Web开发中的一个重要功能,它允许用户通过网页上传文件到服务器。Struts2 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,提供了丰富的特性和强大的控制层功能,使得文件上传...
在Struts2中,文件上传功能是常见的需求,比如用户可能需要上传个人照片、文档或者其他类型的文件。在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解...
总结起来,使用Struts实现文件上传下载涉及前端表单设计、后端处理逻辑、文件存储策略以及安全控制等多个方面。在实践中,我们还需要考虑到性能优化和用户体验提升,例如使用异步上传、进度条展示等技术。
在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...
1. **.struts2配置**:在Struts2框架中,需要在`struts.xml`配置文件中添加相应的action配置,声明文件上传的处理方法。通常,你需要设置`<result>`类型为`stream`,以便处理上传的文件。 2. **Action类**:创建一...
3.Struts2进行下载处理,能对上传的所有文件进行下载(多个) 4.文件保存的名称UUID生成,不过显示并下载的名称都是原文件名称 (通过UploadFiles处理) 5.对配置文件中的路径可以进行动态读取(不重启服务器) ...
在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...
在实际项目中,文件上传和下载功能是必不可少的,本实例将详细讲解如何在Struts2框架下实现单个文件及多个文件的上传与下载。 首先,我们需要在Struts2的配置文件(struts.xml)中添加相关的Action配置,以便处理文件...
下面将详细介绍这个“struts2文件上传下载(注解版)”项目的关键知识点。 1. **注解配置**: 在传统的Struts2配置中,我们需要在struts.xml文件中手动配置Action类与结果页面的映射。然而,使用注解可以在Action...