java 配合 Hibernate ,struts 的上传下载的总结
用的数据库是 sqlserver2000 数据库中大对象的类型是 image
1,上传文件的页面,使用了Struts 标签
<html:form action="/dmdcollect/submit/slsave" method="post" enctype="multipart/form-data" >
<tr>
<td class="td1value"> </td>
<td class="td1value" colspan="3">
<table>
<tr><td>
<html:file property="data" size="50" />
</td></tr>
</tbody>
</table>
</tr>
<tr>
<td colspan="4" class="td1bottom" align="center" >
<html:button property="save" value="保存" onclick="dosave()" />
</td>
</tr>
</html:form>
<script language="javascript">
function dosave(){
var dat = document.getElementById("data");
if(dat.value==""){
alert("请选择上传文件");
return ;
}else{
document.forms[0].submit();
}
}
</script>
Struts 的配置文件
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<form-bean name="DemandDataForm"
dynamic="true"
type="org.apache.struts.action.DynaActionForm">
<form-property name="data" type="org.apache.struts.upload.FormFile" />
</form-bean>
</form-beans>
<action-mappings>
<action path="/dmdcollect/submit/slsave"
type="com.htjc.web.struts.action.dmdcollect.submit.SlSave"
name="DemandDataForm"
scope="request"
validate="false">
<forward name="view" path="/jsp/dmdcollect/submit/sllist.jsp" />
</action>
<action path="/dmdcollect/submit/sldown"
type="com.htjc.web.struts.action.dmdcollect.submit.SlDownLoad"
name="DemandDataForm"
scope="request"
validate="false">
</action>
</action-mappings>
</struts-config>
struts de Action
public class SlSave extends CollectAction{
public ActionForward execute(ActionMapping mappings, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
DynaActionForm dForm = (DynaActionForm)form;
FormFile file = (FormFile) dForm.get("data");
String fileName = file.getFileName();
//获得后缀
String suffix = "";
if(fileName.lastIndexOf(".")!=-1){
suffix = fileName.substring(fileName.lastIndexOf("."));
}
//DemandInfoData 的数据是类型是byte[]
//file.getFileData() 的返回类型也是byte[]
DemandInfoData data = new DemandInfoData();
data.setDataID(dataID);
data.setData(file.getFileData());
HibernateHelper.save(data);
}
}
-------------------------------数据保存成功了---下面是数据下载-----------------------------
jsp 页面
<td width="30%">
<a href="<%=imgpath %>/dmdcollect/submit/zldown.do?infoID=<%=info.getInfoID() %>&dataID=<%=info.getDataID() %>">
<%=info.getFileName() %>
</a>
</td>
public class SlDownLoad extends CollectAction{
public ActionForward execute(ActionMapping mappings, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
String dataID=request.getParameter("dataID");
String infoID = request.getParameter("infoID");
DemandInfo info = collectSystem.getCollectManager().getDemandInfo(infoID);
DemandInfoData data = collectSystem.getCollectManager().getDemandInfoData(dataID);
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition","attachment;" +
" filename="+new String(info.getFileName().getBytes(), "ISO-8859-1"));
ServletOutputStream sout = response.getOutputStream();
try {
InputStream in = new ByteArrayInputStream(data.getData());
byte[] b = new byte[1024];
int i = 0;
while ((i = in.read(b)) > 0) {
sout.write(b, 0, i);
}
sout.flush();
in.close();
sout.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
------------------说明:最好是右键 目标另存为,迅雷下载比较慢------------------
分享到:
相关推荐
Struts2和Hibernate是两种非常流行的Java开源框架,它们在Web开发中有着广泛的应用。Struts2主要用于控制应用程序的流程,而Hibernate则是一个强大的对象关系映射(ORM)框架,用于处理数据库操作。在这个“Struts2+...
总结来说,"Struts2+hibernate雇员部门操作"项目是一个典型的Java Web应用实例,结合了强大的MVC框架和ORM工具,实现了对雇员和部门的CRUD操作及分页显示。这个项目可以帮助开发者更好地理解和掌握Struts2与...
Struts与Hibernate是两个非常重要的Java Web开发框架。Struts主要用于控制应用程序的流程,而Hibernate则是一个对象关系映射(ORM)工具,负责将Java对象与数据库中的表进行映射,简化数据访问。让这两个框架协同...
这需要使用SQL语句来插入记录,而Struts可以配合Hibernate或MyBatis等持久化框架进行数据库操作。 5. **JSP页面显示**:JSP(JavaServer Pages)是Java EE平台的一部分,用于创建动态web内容。在本例中,JSP将用来...
在Spring和Struts2的配合下,可以通过拦截器或Action实现文件上传的处理,包括文件大小检查、类型验证以及存储路径的设置。下载则涉及URL重写和响应头的设置,以指示浏览器如何处理返回的内容。 然而,系统的分页...
### Struts2、Spring、Hibernate使用XML的整合方式 #### 概述 本文档将详细介绍如何使用XML配置文件实现Struts2、Spring以及Hibernate(通常称为SSH)这三种技术的整合,以支持一个简单的商品管理系统。这个系统...
Struts2、Spring和Hibernate(SSH2)是Java Web开发中的三大框架,它们的整合使用可以构建出高效、模块化且易于维护的企业级应用。在这个简单的“人力资源管理系统”实例中,我们将探讨如何将这三个框架有效地集成在...
本系统——基于Struts+Hibernate的采购管理系统,是一个典型的企业级Java Web应用,它巧妙地结合了Struts、Hibernate两大框架,为企业的采购管理提供了一套高效、灵活的解决方案。下面,我们将深入探讨这个系统的...
在实现分页功能时,通常会结合Spring和Hibernate,使用Spring的数据库抽象层(如JdbcTemplate或HibernateTemplate)配合Hibernate的Criteria或Query来执行分页查询。对于上传下载,Struts2提供了文件上传和下载的API...
2. **IO包**:在Struts2中,`struts2-core`库中包含了处理输入和输出的工具,如流处理、文件上传和下载等功能。`org.apache.struts2.util`包下的`FileItem`和`FileUpload`类是实现文件上传的关键,它们帮助开发者...
在Struts框架中,通常使用`struts.multipart.parser`配置来处理文件上传,配合ActionForm或Action类来接收上传文件。 6. **Email组件**:项目中提到的Email组件可能是指使用JavaMail API或第三方库如Apache Commons...
总结来说,这个压缩包中的JAR文件是构建基于Struts2、Spring3和Hibernate3的Java Web应用的基础,它们协同工作,为开发者提供了一个高效、灵活且可维护的开发环境。理解并熟练掌握这三个框架,对于Java后端开发者来...
总结来说,"Struts1文件上传小项目"是一个涵盖了Struts1框架、Hibernate ORM以及基本Web开发技能的综合练习,它要求开发者具备良好的Java基础、MVC设计模式理解、数据库操作经验以及一定的前端交互知识。通过这个...
此外,Struts2还有丰富的插件和拦截器,支持国际化、验证、文件上传下载等功能。 接下来,Hibernate4是对象关系映射(ORM)框架,它允许开发者用Java对象来操作数据库。Hibernate4通过提供Session API,简化了...
3. **租赁合同**:系统可能提供合同模板,供用户在达成租赁协议后生成合同,涉及到文件上传和下载功能,这通常会利用Servlet处理。 4. **支付管理**:如果系统支持在线支付,可能会集成第三方支付接口,如支付宝或...
Struts2是一个非常流行的Java Web框架,用于构建企业级应用。SSH是Struts2、Spring和Hibernate三个开源框架的组合,常被用来构建强大的、基于MVC(Model-View-Controller)架构的Web应用程序。在Struts2中,实现文件...
在3.3.1版本中,主要依赖于`hibernate-entitymanager`、`hibernate-core`以及`hibernate-jpa-2.0-api`等,这些包实现了JPA(Java Persistence API),支持实体对象的映射。`slf4j-api`作为日志接口,需要配合具体的...
Struts可以结合后台的业务逻辑,配合Hibernate查询出指定页码的数据,再由前端展示出来,实现数据的动态加载。 最后,权限控制是企业管理系统的必备模块。系统可能有不同级别的用户,如管理员、普通员工等,他们对...
在开发Java Web应用时,Struts2通常与Oracle这样的关系型数据库配合使用,进行数据持久化。通过JDBC或者ORM框架(如Hibernate、MyBatis)连接Oracle,执行SQL语句,实现数据的增删改查操作。 综上所述,Struts2是一...
通常,一个基于这些技术的项目会包含配置文件(如Struts的struts.xml,Hibernate的hibernate.cfg.xml,Spring的applicationContext.xml),源代码(.java文件),Web资源(JSP、HTML、CSS、JavaScript),以及可能的...