简单的下载功能实现(struts2)
1.前台页面:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib prefix ="s" uri="/struts-tags"%>
<html>
<head>
<script type="text/javascript">
function changeValidateCode(obj) {
/***
* 获取当前的时间作为参数,无具体意义
* 每次请求需要一个不同的参数,否则可能会返回同样的验证码
* 这和浏览器的缓存机制有关系,也可以把页面设置为不缓存,这样就不用这个参数了。
*/
var timenow = new Date().getTime();
obj.src="randPic.action?d="+timenow;
}
</script>
</head>
<body>
<form name="" action="Login">
验证码:<s:textfield name="code"></s:textfield><img src="randPic.action" onclick="changeValidateCode(this)" title="点击图片刷新验证码"/>
<br/><input type="submit" value="登陆"/><input type="reset" value="重置"/>
</form>
<s:a href="download/view">查看图片</s:a><br/>
<s:a href="download/save">下载图片</s:a>
</body>
</html>
2.struts.xml配置:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="image" extends="struts-default" namespace="/">
<action name="randPic" class="com.org.momo.action.RandomAction">
<result type="stream">
<param name="contentType">image/jpeg</param>
<param name="inputName">inputStream</param>
</result>
</action>
<action name="Login" class="com.org.momo.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="error">/fail.jsp</result>
</action>
</package>
<package name="download_pic" extends="struts-default" namespace="/download">
<action name="view" class="com.org.momo.action.SimpleFileDownloadAction">
<result name="success" type="stream">
<param name="contentType">image/jpeg</param>
<param name="contentDisposition">filename="picture.jpg"</param>
<param name="inputName">simpleDownloadStream</param>
</result>
</action>
<action name="save" class="com.org.momo.action.SimpleFileDownloadAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<param name="contentDisposition">filename="picture.jpg"</param>
<param name="inputName">simpleDownloadStream</param>
</result>
</action>
</package>
</struts>
3.SimpleFileDownloadAction.java
package com.org.momo.action;
import java.io.InputStream;
import javax.servlet.ServletContext;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionSupport;
public class SimpleFileDownloadAction extends ActionSupport implements ServletContextAware
{
private static final long serialVersionUID = 620526993016670680L;
private ServletContext context;
public void setServletContext(ServletContext context){
this.context = context;
}
public InputStream getSimpleDownloadStream(){
return context.getResourceAsStream("/download/10.JPG");
}
public String execute(){
return SUCCESS;
}
}
分享到:
相关推荐
在这个“Struts2实现文件下载功能”的示例中,我们将深入探讨如何利用Struts2框架来实现在web应用中让用户下载文件的功能。 首先,我们需要理解文件下载的基本原理。在Web应用中,当用户点击一个链接或提交一个表单...
至此,一个基本的Struts2下载功能就实现了。用户点击下载链接,Struts2会通过`DownloadAction`处理请求,读取并返回指定文件,浏览器接收到响应后,会自动弹出文件保存对话框供用户选择保存位置。 请注意,这只是一...
在本教程中,我们将深入探讨如何使用Struts2来实现简单的功能。 首先,我们需要了解Struts2的核心概念。Action类是Struts2的核心组件,它是业务逻辑的载体,负责接收请求并进行处理。为了创建一个Action,我们需要...
这可以通过Struts2的异常处理和国际化功能实现。 10. **测试与调试** 为了确保功能的正确性,需要进行单元测试和集成测试。JUnit可以用来测试Action类,而Struts2也提供了测试插件,便于模拟请求和验证结果。 总...
在这个"Struts2SpringHibernate实现简单的添加,分页显示功能例子"中,开发者通过整合这三大框架,实现了基本的数据添加功能以及数据的分页显示。以下是对这个例子中的关键知识点的详细解释: 1. **Struts2**:作为...
Struts2是一个强大的MVC(Model-View-Controller)框架,广泛应用于Java Web开发中,提供了丰富的功能,包括文件的上传和下载。在本项目中,我们关注的是如何使用Struts2来实现实时的文件交互操作,即文件的上传与...
总的来说,"struts2实现用户登录注册"项目涵盖了Web开发中的多个关键点:前端表单处理、后端业务逻辑、数据库交互以及安全性考虑。通过实践这个项目,开发者可以深入理解Struts2框架的工作原理,以及如何在实际开发...
网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供刚上传的文件下载功能(其他的都可以在其上面进行扩充) 多文件 上传 下载...
本教程将详细介绍如何简单实现Struts框架的功能,包括配置Action、处理客户端数据以及使用拦截器。 首先,我们来看如何配置Action。在Struts框架中,Action是处理用户请求的核心组件。每个Action类通常对应一个具体...
这是一个供初学者学习参考的简单的工程文件。用 Struts2.1+Hibernate3.1.3 框架实现登录功能。 压缩包内包含了数据库和数据表的样式(以图片的形式表示) 如果觉得这个工程还不错,就点个收藏,写个评论吧。 ^_^
在Struts中实现文件下载是一项常见的功能,尤其在处理用户请求获取服务器上的静态或动态资源时。这篇博文将深入探讨如何在Struts框架下实现文件下载的功能。 首先,我们需要了解文件下载的基本原理。当用户点击下载...
本文将深入探讨如何使用Struts2来实现这一功能,并结合提供的"struts2真正实现上传下载完整源代码"进行分析。 首先,我们要了解Struts2中文件上传的基本原理。它主要依赖于Apache的Commons FileUpload库,该库处理...
Struts2、Maven、...这个实例提供了基础的整合过程,帮助开发者理解如何将这些组件结合在一起,实现一个简单的功能。通过不断实践和学习,开发者可以逐步掌握更复杂的SSM(Spring、Struts2、MyBatis)架构的应用。
- **文件上传与下载**:Struts2内置了对文件上传的支持,可以轻松实现文件上传功能;同时也可以配置下载功能,满足文件分发的需求。 - **权限控制**:利用拦截器实现细粒度的权限控制,确保只有授权用户才能访问敏感...
本教程将介绍如何使用Struts2实现一个简单的登录功能,适合初学者入门。 首先,我们需要在项目中引入Struts2的依赖。通常,这可以通过在Maven的pom.xml文件中添加Struts2的核心库来完成。Struts2的核心库包括了处理...
3. **插件(Plugins)**: Struts2支持丰富的插件系统,如Tiles、Freemarker、JSON等,这些插件可以帮助开发者快速实现特定的功能,如布局管理、模板渲染或数据交换。 4. **类型转换(Type Conversion)**: Struts2提供...
通过以上步骤,你可以在Struts2应用中实现基本的文件上传和下载功能。但实际项目中可能还需要结合具体的业务逻辑和安全策略进行更复杂的设计和实现。如果想深入了解Struts2的源码和工作原理,可以阅读相关文档或查看...
综上所述,Struts2是一个功能强大且易于使用的Java Web框架,它继承了WebWork的优秀特性,并在此基础上进行了创新和发展。对于希望构建高质量Web应用的开发者来说,深入学习Struts2将是一笔宝贵的财富。
一个简单的例子是使用`$.ajax()`函数,指定URL为Struts2 Action的路径,方法为GET或POST,根据你的需求来传递参数,如待验证的用户名。 3. **服务器端验证**:在Action类中,你需要编写一个方法来检查用户名是否已...
通过以上步骤,你可以实现一个基于Struts2和Hibernate的文件上传与动态下载系统。这个系统能够处理用户上传的文件,将其保存到服务器,同时提供动态下载功能,允许用户根据需要下载文件。在实际开发中,还需要考虑...