DWR学习笔记 - Hello World

简介

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。

使用DWR

要想在我们的项目中使用DWR,首先要获取到dwr的jar包(下载地址: http://directwebremoting.org/dwr/downloads/index.html),其次还需要下载commons-logging的jar包。

在myeclipse中新建一个web项目,把dwr.jar和commons-loggin-1.1.1.jar放入到lib目录下。

要想dwr在我们的web项目中起作用,还需要将他引入进来,Struts2使用fiter的方式引入到项目中,dwr则是通过Servlet的方式引入到我们的项目中。在web.xml中配置dwr的Servlet。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <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>
  
</web-app>

我们还可以通过<init-param>来给dwr传递参数,比如是否开启调试等。更多的参数可以参看官方的文档。

现在将dwr引入进来了,还需要在web-info目录下创建一个名为dwr.xml的文件,他就是dwr的配置文件,我们在这个文件中配置我们要暴露给javascript的java类。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
    "http://getahead.org/dwr/dwr30.dtd">
<dwr>
  <allow>
    <create creator="new" javascript="JHello">
      <param name="class" value="com.luojing.dwr.Hello"/>
    </create>
   </allow>
</dwr>

我们关注一下<create>元素,我们通过这个元素来配置我们的java类和javascript之间的关系。

creator=”new”表示对象的创建方式为使用java中的new关键字。还有其他的选项如static,none。static表示通过静态方法(默认为getInstacne)来获取对象实例。Javascript=”JHello”指定我们的类在javascript中对应的对象的名字,我们可以通过这个名字在javascript中调用我们公开的java方法。

<param class=”class” value=”com.luojing.dwr.Hello”/>用于指定我们要公开的类,当然我们还可以对类中要公开的方法进行配置(通过配置include和exclude)。

接下来编写我们需要开放的类:

public class Hello {
	public String sayHello(String name){
		return "hello " + name;
	}
}

在我们的浏览器中输入:http://localhost/dwr/dwr


这里会显示我们已经公开的类。这里可以看到,显示的模块的名字和我们在dwr.xml中指定的javascripit=”JHello”是一致的。点击名字,可以进入下一个页面:


这里可以看到在JHello中我们已经公开的方法,点击对应的方法后面的excute按钮可以执行这个方法。这里还列出了如果我们要在页面中使用javascript访问该对象时需要引进的js脚本。

下面我们编写一个Jsp页面用于测试:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>DWR TEST</title>
		<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/JHello.js"></script>
		<script type="text/javascript">
    	
    	function test(){
    		var inputValue = dwr.util.getValue("inputData");
    		JHello.sayHello(inputValue, callBackFunc);
    	}
    	
    	var callBackFunc = function (data){
    		dwr.util.setValue("serverData",data);
    	}
    	
   	</script>

	</head>

	<body>
		input data :
		<input type="text" name="inputData" />
		<br />
		server data:
		<input type="text" name="serverData" />
		<br />
		<input type="button" value="测试" onclick="test()" /> <br />
	</body>
</html>

对于js脚本引进的顺序,官方好像没做说明,但是我在测试的时候发现,如果将engine.js放在我们interface/Jhello.js之后的话,js会报错。因此最好将engine.js的引用放在最前面,他是dwr的核心成员。

在浏览器中访问我们的文件:

点击”测试按钮”:

可以看到正确的结果被显示在页面上了。

页面中我们还用到了util.js文件,他是dwr提供的辅助工具,他是独立的,我们可以直接使用它。他提供了很多有用的方法来帮助我们操作页面上的元素。

到这里,就完成了使用dwr创建的第一个应用。dwr涉及的内容也不多,学习起来还是比较简单。自己动手做了,就顺便记录下来。

YOLOv11改进 | 注意力篇 | YOLOv11引入24年最新的ELA注意力机制,并构建C2PSA_ELA 为了解决这些限制,本文介绍了一种高效的本地注意力(ELA)方法,实现了一个简单的结构,大幅度的性能改善。我们精心设计了ELA中的三个超参数,产生了四个不同的版本:ELA-T,ELAB,ELA-S和ELA-L,以满足不同视觉任务的具体要求,如图像分类,目标检测和语义分割。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~ 阅读详情

相关推荐

NLP实战:如何用CoNLL-2003数据集快速提升命名实体识别模型性能(附完整代码)

本文详细介绍了如何利用CoNLL-2003公开数据集,通过深度剖析数据特点、构建鲁棒的数据预处理流水线、选择合适的模型架构(如BERT-CRF)以及优化训练策略,来系统性地提升命名实体识别(NER)模型的性能。文章提供了完整的代码示例,并分享了处理数据不均衡、标签对齐等核心挑战的实战技巧,帮助读者从理论到实践全面掌握NER任务。

cola5的博客 494

dwr 的 helloworld

首先是:引入dwr.jar   其次,在web.xml中加入如下servlet   &lt;servlet&gt; &lt;servlet-name&gt;dwr-invoke&lt;/servlet-name&gt; &lt;servlet-class&gt;org.directwebremoting.servlet.DwrServlet&...

阿O、不拽 210

Unity事件总线第一篇:为什么你的游戏需要一个事件总线?

本文探讨了游戏开发中常见的跨模块调用导致代码强耦合的问题。通过一个攻击按钮触发角色攻击、怪物掉血和血条更新的案例,分析了直接调用方式带来的维护困难、扩展性差和模块重用性低等弊端。文章提出使用事件总线(Event Bus)作为解决方案,通过发布-订阅模式实现模块解耦。重构后的代码中,各模块只需与事件总线交互,彼此不再直接依赖。这种设计使得新增功能(如音效)无需修改现有代码,大大提高了系统的可维护性和扩展性,同时增强了模块的重用性,完美体现了开闭原则。

qq_46348216的博客 1297

DWR框架快速入门<学习随笔>

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。 它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样 1写简单java类 主要类 public class HelloDwr {      public String hello(

强强强子的博客 2303

grpc安装与简单demo测试

grpc安装: 由于工作需要,最近在学google的rpc开源框架;由于本人菜鸟一枚,而且是从Windows开发转到Linux;由于之前版本控制使用的是svn,没有使用过git,所以从GitHub上下载代码是通过浏览器下载zip格式的压缩文件,折腾了好几天了,发现了各种坑,各种缺少库,各种不知道怎么把这个库给装机器上。对于一个不熟悉Linux的人来说,这个体验简直糟糕透了。没办法了又在机器上装了...

old__captain的博客 4832

SAP OBYC自动过账全解析:从BSX到WRX的会计科目配置指南

本文深入解析SAP OBYC自动过账功能,从BSX到WRX的会计科目配置全流程,涵盖评估分组代码、事务码和评估类等核心概念。通过实战案例展示如何实现库存变动到财务过账的自动化流转,提升企业财务数据的准确性和效率。

weixin_29239279的博客 416

DWR学习详解

2007年03月12日 星期一 20:15

david2008man的专栏 1600

某联达OA任意用户登录漏洞复现

由于`/WebService/Lk6SyncService/DirectToOthers/GetSSOStamp.asm`j接口未作限制,导致可以通过该接口调用`admin`的`cookie`值,通过对`LoginCredence`和`LoginTimestamp`的参数修改,进而实现任意登录进去系统.

千寻的博客 1587

dwr实现简单的helloWorld

第一个DWR程序:Hello World有2中方法可以帮助你入门DWR,一个方法是去下载WAR文件并且去完整看一下代码,但是这样并不能帮助你发现DWR是如何简单地集成到你当前地WEB应用,所以以下几个简单地步骤推荐看一下: 1.将DWR放入你的工程1) 从官方网站下载dwr.jar包。然后将它放在你webapp的WEB-INF/lib目录下。(下载地址:http://directwebremot...

阿阳天 190

运行后选择GDB/LLDB出现这样的窗口:launch: program ‘输入程序名称,例如 D:\Desktop\新建文件夹\a.exe‘ does not exist...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1127

【AI编程】Qoder AI 编程工具从部署到深度使用实战详解

Qoder AI 编程工具从部署到深度使用实战详解

congge 8333

DWR学习笔记-Hello World篇

 刚好一个项目要用ajax, 使用的产品平台使用DWR,就顺便了解一下DWR。1. 下载DWR,首先将DWR.JAR包加到工程中2. 在web.xml添加下面代码    servlet>        description>Direct Web Remoter Servletdescription>        display-name>DWR Servletdisplay-nam

xqdd的专栏 905

【AUTOSAR-E2E】-1.4-详述E2E Transformer解决方案

共13页精讲 目录 1“Data Transformation”介绍 1.1 基于SOME/IP Transformer 1.2 基于COM Based Transformer 2 ComXf(COM Based Transformer)介绍 2.1 ComXf(COM Based Transformer)功能规范 2.2 ComXf(COM Based Transformer)提供的服务 2.3 配置注意事项 3 E2EXf(E2E Transformer)介绍 3.1 E2EX...

「汽车电子助手」的博客 4700

dwr引发的血案之三hello world

上一篇说道dwr的maven项目的搭建,这一次我们来写一个hello world。话不多说,直接上代码,web.xml中配置dwr的相关调用,            在web-inf/下的dwr.xml的配置如下 service代码如下, DwrControler的代码就是跳转到index.jsp的页面 index.jsp的页面如下

weu135的专栏 621

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

dwr java_java-DWR 的hello world

总是跟在开发商后面学习,系统使用了DWR技术,只好跟着开始琢磨这个东西,不为别的,只为能看懂他们的代码。命苦啊。接下来就是记录了:1、准备eclipse、tomcat,略过;新建web project,略过。2、下载那个dwr.jar, 放到项目的WEB-INF\lib下面(j2ee的规定目录)。3、修改WEB-INF\web.xml,在中添加:dwr-invokerorg.directwebre...

weixin_30336949的博客 148

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

DWR之HELLO world

 DWR的原理为:把JAVA类注入JS从且达到可以在JS中调用JAVA类中的方法,实现了异步调用。同GWT相比DWR的优点有一、DWR可以同JS和HTML同步调用,从且解决GWT中页面美工排版的困难。二、dwr是把JAVA类注入JS中,而不需要学习新的技术。web.xml文件配置如下:http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3

性格决定命运,专注影响成败 1007

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

DWR之 Hello world

<br />1.下载dwr。jar包,并将其加入到工程的lib目录下<br />2.建立一个java文件,供javascript调用<br />如下所示:<br /> <br />package com.test.ajax.dwr;<br />/**<br /> *<br /> * @author 夏艳华<br /> */<br />public class DWRTest {<br />    public DWRTest(){<br />    <br />    }<br />    public S

xiayanhua225的专栏 573

DWR 框架学习之<一>入门

DWR(Direct Web Remoting),能够为现有的基于JavaScript/Java的WEB应用轻松加入AJAX功能。通过DWR,可以在JavaScript里简单地使用[Java类名.方法名]的形式直接调用Java里的方法。DWR主要特点:1,异步调用。除了支持从JavaScript到Java方法(浏览器到服务器)的异步调用之外,从DWR2.0开始,DWR开始支持从服务器到JavaS...

Fusion 181

java-DWR 的hello world

    总是跟在开发商后面学习,系统使用了DWR技术,只好跟着开始琢磨这个东西,不为别的,只为能看懂他们的代码。命苦啊。     接下来就是记录了:     1、准备eclipse、tomcat,略过;新建web project,略过。     2、下载那个dwr.jar, 放到项目的WEB-INF\lib下面(j2ee的规定目录)。     3、修改WEB-INF\web....

weixin_34253539的博客 96

DWR的学习文档(Hello World,类型转换,Spring,Annotation)

DWR是作为远程调用的ajax框架,将服务端的java类,方法和浏览器的javascript的类,方法对应起来。现在官方最新的版本是DWR2.0,可以在http://getahead.ltd.uk/dwr/download下载到。 我们真对DWR2.0做一些例子讲解一下它的特性: Hello World: 新建一个web项目DWRStudy,在项目中构建路径中加入dwr.jar, 新建类Hello

龙腾专栏 979

我的dwr Hello World

公司要用到dwr(dwr2点几版本的),趁着放假在家里花了点时间弄了一下,只是helloworld。基本上是按照官方网站上的流程做的,在这里记一下,方便查看: 1,当然是下载相关包:dwr.jar,commons-logging.jar,将它们加入到应用里 2,在web.xml中加入如下配置:   &lt;servlet&gt; &lt;servlet-name&gt;dwr-invok...

Hello World 140

DWR的Hello world

1 把dwr.jar包放入到工程中,并修改web.xml文件,加入:   &lt;servlet&gt; &lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt; &lt;servlet-class&gt;org.directwebremoting.servlet.DwrServlet&lt;/servlet-class&gt; &...

喜糖 的专栏 132

第一个DWR程序:Hello World

先看看整个工程在eclipse下的结构: 第一步:安装jar开发包。 从DWR官方网站http://directwebremoting.org/dwr/下载DWR的开发包。将dwr.jar这个开发包放到{APPLICATION_ WEB_HOME} \WEB-INF\lib目录下。 第二步:修改web.xml,添加Servlet映射。 修改...

weixin_34262482的博客 117

DWR入门实例(hello world & 分页)

本人第一次发帖 有点小紧张~~ 最近学习dwr时做的例子 在前人的指点下完成了 工程里有两个例子 一个当然就是hello world了 还有一个是dwr的分页显示 希望对刚刚接触dwr的朋友们有所帮助 代码中有注释 可能就是页面上的style写的有点乱 如果是用myeclipse的话可以直接导入 有什么问题和建议希望大家和我联系 谢谢 email:java_mid4@163.com ...

java_mid4 196
上一篇: JdbcTemplate 排序查询结果不一致问题
下一篇: DWR学习笔记 - Hello World
jdluojing
博客等级 码龄17年 79粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值