Struts2.3.1 中整合DWR3.0 实现文件上传
步骤1:导入 dwr*.jar ,
struts2-dwr-plugin-2.3.1.jar
步骤2:在web.xml中引入dwr的配置
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
注意需要修改原来配置好的 struts2 原<url-pattern>/*</url-pattern> 为<url-pattern>*.do</url-pattern> 表示struts2只负责处理 .do 结尾的请求
步骤3:在web.xml同级目录中定义一个dwr.xml 配置文件, (dwr.xml可以去dwr.jar包中获得)
dwr.xml配置如下:
<dwr>
<allow>
creator="new" :表示每一次dwr请求但是创建一个新的实例
javascript="DWRService" 表示页面通过什么名字来对应调用你的java类提供服务
<create creator="new" javascript="DWRService">
指定为前台提供服务的java类 这里的DWRDemo类在页面使用的时候使用DWRService调用
java类就是一个普通的java类
<param name="class" value="org.fd.dwr.DWRDemo"></param>
</create>
</allow>
</dwr>
步骤4:
必须引入依赖的js文件一般有2个
ajax 核心引擎
<script type='text/javascript' src='/dwr/engine.js'></script>
对应 在步骤3:中定义的 javascript="DWRService" 关联的java类
<script type='text/javascript' src='/dwr/interface/DWRService.js'></script>
可选引入依赖
提供一些方便的工具方法的使用
<script type='text/javascript' src='/dwr/util.js'></script>
步骤5:
使用
DWRService.sayHello(参数 , 如果有返回,回调方法 )
代码如下:html代码
<script type='text/javascript' src='/dwr/engine.js'></script>
<script type='text/javascript' src='/dwr/util.js'></script>
<script type='text/javascript' src='/dwr/interface/DWRService.js'></script>
<script language="JavaScript">
//dwr文件上传
var up = function(){
var headf = dwr.util.getValue("headfile");
DWRService.headUp(headf, function(flag){
if(flag){
alert("成功");
}else{
alert("不成功");
}
});
}
</script>
</head>
<body>
<img src="images/angel.jpg" id="headimage">
<input type="file" name="headfile" id="headfile">
用户名:<input type="text" name="name" id="name" onblur="up()">
<input type="button" value="上传头像" onclick="up()"/>
</body>
</html>
dwr.xml 配置
<dwr>
<allow>
<create creator="new" javascript="DWRService">
<param name="class" value="org.fk.dwr.DWRDemo"></param>
</create>
</allow>
</dwr>
java代码如下:
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.io.FileTransfer;
public class DWRDemo {
public String sayHello(String name){
System.out.println("欢迎您:"+name);
return "欢迎您:"+name;
}
/**
* dwr 文件上传
* @param ft FileTransfer 封装类前台js提交的文件数据
* @return
*/
public boolean headUp(FileTransfer ft){
WebContext wc = WebContextFactory.get();
//获得应用路径
String headImages = wc.getSession().getServletContext().getRealPath("/headImages");
File file = new File(headImages);
//如果文件夹不存在,就创建
if( !file.exists()){
file.mkdirs();
}
try{
//文件上传核心代码使用 commons-io-2.0.1.jar完成
FileUtils.copyInputStreamToFile(ft.getInputStream(), new File(headImages+File.separator+ft.getFilename()));
return true;
}catch(Exception e){
e.printStackTrace();
}
return false;
}
}
如果需要项目代码请联系我!
相关推荐
在"Dwr与Struts开发实例"中,我们将探讨如何将这两者结合起来,以实现更高效、更富用户体验的Web应用。首先,我们需要了解DWR的基本概念。DWR的核心功能在于创建一个安全的、跨域的通信层,使得JavaScript可以透明地...
【标题】"Web开发实例(DWR+Struts2)"揭示了一个综合性的Web应用程序开发案例,其中结合了Direct Web Remoting (DWR) 和Struts2框架。DWR是一种JavaScript库,它允许在浏览器和服务器之间进行实时、异步的通信,从而...
Struts2和DWR(Direct Web Remoting)的整合是Web开发中的一种常见技术组合,它们可以帮助开发者构建高效、交互性强的Web应用。Struts2作为MVC框架,提供了强大的控制层支持,而DWR则允许JavaScript在浏览器端直接...
Struts2.0和DWR(Direct Web Remoting)是两个在Web开发中常见的开源框架。Struts2.0作为MVC(Model-View-Controller)框架,主要用于构建企业级的Java Web应用,而DWR则是一种使得JavaScript可以与服务器端Java对象...
Freemarker、Struts2和DWR是Java Web开发中常用的三个组件,它们分别负责不同的职责,协同工作可以构建出高效、动态的Web应用程序。在这个实例中,我们将深入理解这三个技术,并通过具体配置来了解它们如何协同工作...
这个实例是基于DWR(Direct Web Remoting)技术和Struts框架来实现的,旨在帮助开发者更好地理解如何在实际项目中处理这种交互。以下是关于这个实例的详细知识点: 1. **DWR**:DWR是一种JavaScript库,允许在...
从标签来看,“dwr”、“ajax”、“struts2”表明这个支持包主要关注的是Web开发中的动态数据交换、异步处理以及Struts2框架的应用。而“struts”可能是标签误写,应为“struts2”。 压缩包子文件的文件名列表包括...
这个配置文件告诉DWR如何映射Java对象到JavaScript,类似于Struts中的struts-config.xml文件定义Action的映射。 2. **使用Annotation声明远程调用**: 自JDK 5.0引入Annotation后,DWR提供了使用注解的方式来声明...
DWR (Direct Web Remoting) 是一个开源JavaScript库,它允许Web应用程序与服务器端Java...通过学习和实践这些实例,开发者能够深入理解DWR的工作原理,并能将其应用于实际项目中,提高Web应用的用户体验和开发效率。
Struts2、Spring、Hibernate和DWR是Java Web开发中常用的四大框架,它们各自负责不同的功能,协同工作能构建出高效、灵活的企业级应用。在这个小实例中,开发者结合这四个框架来展示了一个完整的后端架构。 Struts2...
Struts2和Direct Web Remoting (DWR) 是两种在Web开发中常见的技术。Struts2是一个基于MVC设计模式的Java EE框架,用于构建可维护性和可扩展性高的企业级应用,而DWR则是一种使得JavaScript可以调用服务器端Java方法...
下载放到Myeclips里就可以运行、里面包含struts2环境搭建(点击按钮)、struts2+dwr整合(在文本框中输入值后会访问后台,给select动态增加option赋值、点击按钮又会显示会select被选中的option的value和text值)、...
7. **实例分析**:提供具体的应用场景,如实时数据显示、表单验证、数据检索等,帮助读者理解DWR和Ajax的实际应用。 8. **错误处理与调试**:分享在开发过程中可能出现的问题及解决策略,包括日志记录、错误回调...
采用dwr+Ajax和struts开发文件上传进度条(网络文章)
【标题】"dwr2+struts2+spring2.5+hibernate3实例!"涉及的是四个关键的Java Web开发框架和技术的整合应用。这个实例教程是为那些希望学习如何将Direct Web Remoting 2 (DWR2)、Struts2、Spring 2.5和Hibernate 3...
DWR (Direct Web Remoting) 是一种在JavaScript和Java之间进行实时通信的技术,它使得Web应用可以实现异步更新,即Ajax(Asynchronous ...在实际项目中,还可以结合Spring、Struts等框架进一步优化和扩展DWR的应用。
【Struts+Hibernate+Spring+DWR实例】是企业级Java Web开发中常见的技术栈组合,主要用于构建高效、可维护的MVC(Model-View-Controller)架构的应用程序。这四种技术分别扮演不同的角色: 1. **Struts**:是一个...
标题 "dwr2.0整合Struts1.3+hibernate3.1+spring2.5的项目" 涉及的是一个经典的Java Web开发技术集成,这其中包括Direct Web Remoting (DWR) 2.0、Struts 1.3、Hibernate 3.1和Spring 2.5。这个项目可能是为了展示...
标题 "Dwr2+Struts2+Spring2+Hiberinate" 暗示了这是一个基于四个关键开源技术构建的Web应用程序示例。这个组合在几年前非常流行,用于开发高效、模块化的Java企业级应用。下面我们将深入探讨这些技术及其在用户管理...
使用DWR时,首先要在服务器端创建一个DWR引擎实例,并配置允许客户端访问的Java对象和方法。接着,在客户端,通过引入DWR生成的JavaScript文件,就可以直接调用这些服务器端的方法。DWR简化了跨域问题,让开发者...