`
weiweichen1985
  • 浏览: 140466 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

结合DWR获取远程URL数据

    博客分类:
  • jsp
阅读更多
bean.java
package com.cw.entity;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;


public class Bean {

	private String[] citys = new String[] { "杭州", "上海", "香港", "武汉", "南京" };

	public String[] getCitys() {
		return this.citys;
	}

	public String sendPost(String url) {
		String result = "";
		try {
			URL httpurl = new URL(url);
			HttpURLConnection httpConn = (HttpURLConnection) httpurl
					.openConnection();
			httpConn.setDoInput(true);
			BufferedReader in = new BufferedReader(new InputStreamReader(
					httpConn.getInputStream()));
			String line;
			while ((line = in.readLine()) != null) {
				result += line;
			}
			in.close();
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("没有结果!" + e);
		}
		return result;
	}

}


index.jsp
<%@ page language="java" pageEncoding="gbk"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">
		<title>My JSP 'index.jsp' starting page</title>
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">
		<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
		<script type="text/javascript" src="dwr/interface/bean.js"></script>
		<script type="text/javascript" src="dwr/engine.js"></script>
		<script type="text/javascript" src="dwr/util.js"></script>

		<style type="text/css">
			.tips-loading {
	PADDING-RIGHT: 3px; PADDING-LEFT: 3px; BACKGROUND: url(img/reg0.gif) lightyellow no-repeat 3px center; PADDING-BOTTOM: 1px; OVERFLOW: hidden; WIDTH: 300px; COLOR: #808080; TEXT-INDENT: 20px; LINE-HEIGHT: 16px; PADDING-TOP: 2px
}
.tips-pass {
	BACKGROUND: url(img/reg4.gif) #e9ffeb no-repeat 0px -2px; COLOR: #333
}
		</style>
	</head>
	<body>
		<div
			style="position:absolute; left: 14px; top: 49px; width: 968px; height: 70px; background:#CCCCCC">
			<label style="position:absolute; left: 52px; top: 22px;">
				<input type="text" name="url" size="50" value="http://www.baidu.com">
			</label>
			<label
				style="position:absolute; left: 422px; top: 21px; width: 140px;">
				<input name="Input" type="submit" value="获取内容" onClick="getData()">
			</label>
			<div id="status" style="position:absolute; width:278px; left: 501px; top: 24px; height: 20px; background-color:#CCCC99"></div>
		</div>
		<p>&nbsp;
			
		</p>
		<textarea
			style="position: absolute; left: 13px; top: 125px; width: 968px; height: 419px;"
			id="showresult"></textarea>

		<script type="text/javascript">
			 function $(id){
			 	return document.getElementById(id);
			 }
			 
			 function getData(){
			    $("status").className="tips-loading";
			    $("status").innerHTML="&nbsp;正在读取数据...";
			 	bean.sendPost(dwr.util.getValue("url"),function(data){
			 		$("showresult").value=data;
			 		$("status").className="tips-pass";
			 		$("status").innerHTML="&nbsp;&nbsp;读取完毕!";
			 	});
			 }
		</script>
	</body>
</html>


dwr.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">

<dwr>
	<allow>
		<create creator="new" javascript="bean">
			<param name="class" value="com.cw.entity.Bean" />
			<include method="getCitys" />
			<include method="sendPost"/>
		</create>	 
	</allow>

</dwr>


web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

	<servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<!--  <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>-->
		<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>false</param-value>
		</init-param>
		<init-param>
			<param-name>activeReverseAjaxEnabled</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>
				initApplicationScopeCreatorsAtStartup
			</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>maxWaitAfterWrite</param-name>
			<param-value>500</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>
分享到:
评论
6 楼 littlecow 2008-07-04  
顶下,下来研究下。
5 楼 weiweichen1985 2008-05-14  
这样获取远程的东西,其实现在很多公司都在用,
不过都是一些小公司。。。
如果你是做小说,股票,基金之类的网站,如果你公司没有足够的金钱和相关机构合作的话,是很难在最短时间内更新数据的。。。
当然,这也不能说你的网站也就这样挂掉,于是就这样去获取别人网站的东西,返回之后再解析之后就可以放到自己网站上去了,唉,以前没有少干过这样的事。。。
知道是违法的,那个后怕呀。。。
现在很多小说网站都是这样的,没有办法,要吃饭,只有去偷了。。。
4 楼 guo_david_wei 2008-05-13  
还有,你这样通过url从远程获取的东西,一般什么时候会用到啊?
如果是页面的话,你只需要连接下就可以了啦..
难道是个xml通过url从远程获取??
还是....
3 楼 pchg119 2008-05-13  
function getData(){  
                $("status").className="tips-loading";  
                $("status").innerHTML=" 正在读取数据...";
                bean.sendPost(dwr.util.getValue("url"),function(data){
                    $("showresult").value=data;  

                });
                                bean.getCitys(function(data){
                   $("showresult").value=data;
                });
                $("status").className="tips-pass";  
                $("status").innerHTML="  读取完毕!";  
             }  



同时运行两个方法时 getCitys的结果为什么被覆盖?

2 楼 mmt 2008-05-07  
dwr真是给人带来丰富的想象力。佩服!
1 楼 y263542662 2008-05-07  
封装了下 java 通过url类获取远程数据的方法.

挺好.

相关推荐

    Ext tree 结合dwr 调用后台数据

    "Ext tree 结合dwr 调用后台数据"这个主题涉及到两个关键的技术:Ext JS的Tree组件和Direct Web Remoting (DWR)。这两个技术的结合使得前端用户界面能够动态地展示并操作后台的数据。 首先,让我们来了解一下**Ext ...

    easyui-dwr

    在描述中提到,默认的JSON加载器是通过URL属性指定从远程服务器获取JSON数据的接口。这意味着,当我们将EasyUI组件与DWR结合使用时,我们需要对`url`属性进行特殊处理。通常,EasyUI组件如表格或下拉框等,会通过`...

    dwr实现无刷新分页

    这些方法将用于处理分页请求,例如获取特定页码的数据。 2. **创建Java服务端接口**:编写一个Java类,提供处理分页请求的方法。这个方法可能接受页码和每页大小作为参数,然后从数据库或其他数据源中检索相应的...

    DWR方式动态加载EXT.Tree

    2. `loader`:加载器配置,用于定义如何获取和处理数据,我们可以在这里配置DWR调用的URL和方法名。 3. `store`:存储数据的Store对象,通常会配置为一个TreeStore,用于处理树形结构的数据。 4. `nodeType`:如果...

    dwr框架详细介绍 讲解浅显易懂

    这将使DWR通过Spring获取名为"bookDao"的bean,并将其暴露给客户端。 总之,DWR框架通过注解简化了原本繁琐的XML配置,使得开发者能够更加专注于业务逻辑,提高了开发效率。同时,DWR提供了丰富的注解类型,覆盖了...

    一个简单dwr的使用例子,tomcat数据库连接池

    DWR(Direct Web Remoting)是一个开源的Java库,它允许在JavaScript和Java之间进行安全、高效的远程调用。这个例子展示了如何在Web应用程序中使用DWR与Tomcat数据库连接池来实现Ajax交互,从而实现实时的客户端-...

    Practical DWR 2 Projects

    而“访问零度电子书库获取更多资源.url”则可能是一个链接,指向一个包含更多DWR或其他相关技术资源的电子书库,读者可以通过这个链接获取更多的学习材料和最新资讯。 总的来说,《Practical DWR 2 Projects》是一...

    Ajax讲解,dwr配置

    4. 在JavaScript中使用DWR:通过DWR的API,可以直接调用服务器端的方法,获取或更新数据。 示例中提到的实时股市报价和Web聊天室是Ajax技术常见的应用场景。实时股市报价通过Ajax实现股票数据的实时更新,而不需要...

    DWR让Ajax如此简单

    - **简化远程调用**:DWR让远程调用如同调用本地函数一样简单,隐藏了所有与网络通信相关的复杂性。 - **JavaScript与Java无缝连接**:DWR允许开发者直接从JavaScript调用Java对象,无需了解底层的通信协议。 - **...

    DWR的访问DAO和Servlet

    例如,我们可以使用`dwr.engine.async.call`方法来发起一个远程调用,并提供一个回调函数来处理返回的结果。 为了测试这个设置,我们可以创建一个简单的Web页面(如DWRTest.html),在这个页面上使用JavaScript直接...

    DWR入门教材

    加载器配置了数据URL为`'test'`,这意味着当用户展开树节点时,DWR会向服务器请求数据。 接着,创建了一个根节点`_root`,表示“中国”,并设置了其未选中的状态。然后,将根节点设置为树的根节点,并渲染到页面上...

    DWR+JPA DWR直接访问SERVICE层,并直接处理DAO返回的BEAN.doc

    总的来说,DWR和JPA的结合提供了强大的远程方法调用能力,使得我们可以直接在客户端处理SERVER端的数据。通过正确配置DWR,处理事务和对象关系,以及优化数据传输,我们可以构建出高效、灵活的Web应用。

    采用dwr和struts上传进度条

    通过结合DWR和Struts,可以实现一个功能完善且用户体验良好的文件上传进度条。这种方式不仅提高了Web应用的交互性,还简化了开发流程,使得开发者能够更加专注于业务逻辑的实现。对于那些希望提升用户上传文件体验的...

    dwr+S2SH框架在线考试系统带数据库

    DWR通过创建远程对象(Remote Objects)使得JavaScript可以直接调用服务器端的Java方法,实现异步更新页面。这样,用户在进行在线考试时,可以实时提交答案、获取反馈,提高用户体验。同时,DWR还提供了安全机制,...

    办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).zip

    DWR通过AJAX(Asynchronous JavaScript and XML)技术提高了用户体验,用户无需刷新页面就能获取服务器的更新数据。 在项目中,源码和LW(可能指的是Lightweight或者LiveWire,一种早期的前端动态技术)的提供意味...

    Ajax无刷新技术事例

    总结,Ajax无刷新技术结合DWR框架,为Web开发者提供了高效、便捷的方式来创建动态、交互性强的页面。理解并掌握这些知识,对于提升Web应用的性能和用户体验至关重要。在实际开发中,我们应充分利用Ajax和DWR的特性,...

Global site tag (gtag.js) - Google Analytics