- 浏览: 138441 次
- 性别:
- 来自: 无锡
文章分类
最新评论
-
yh443042575:
楼主造福社会呀,顶顶顶!!!
jfreechart学习笔记三 带刻度的蜘蛛图 -
twtja1:
最后一句"如果需要在父类中仍然要使用类型字段,需要在 ...
hibernate继承之一,单表继承映射 -
qq361837213:
更换新版dwr的jar包就行了,新版本解决了这个问题
dwr文件上传在chrome下的问题及解决方法 -
无象心:
无象心 写道改为这样就可以了
loadingComple ...
dwr文件上传在chrome下的问题及解决方法 -
无象心:
loadingComplete:function(ba ...
dwr文件上传在chrome下的问题及解决方法
因为jquery的ajax有跨域问题,使用java来读取rss源,用jquery解析返回回来的xml文件并显示
1、html代码,tab页面样式
<div class="adlike dcsbox">
<div class="h">
<h3> </h3>
<a class="dcsbox-h-more" href="/templates/index.jsp" target="_blank">更多</a>
<ul class="poptab" id="poptab1"></ul>
</div>
<div class="b" id="poptab1-c"></div>
<div class="f"><b></b></div>
</div>
2、jquery代码
<script type="text/javascript">
//tab插件
(function($){
$.poptab=function(tabs,targets,num){
var curtab=$('poptab'),curtarget=curtab,
add=function(k,v,n){
if(!k) return false
k.each(function(i,o){
$(o).mouseover(function(){
curtab.removeClass("cur");
curtab=$(o).addClass("cur");
curtarget.hide();
curtarget=v.eq(i).show();
});
if(n===i){
$(o).mouseover();
}
});
return add;
};
if(tabs){
if(tabs.size()==0) return add;
add(tabs,targets,num);
if(num===undefined){
tabs.eq(0).mouseover();
}
};
return add;
}
})(jQuery);
//jQuery.poptab(jQuery("#poptab1>li"),jQuery("#poptab1-c>div"),2)
(function($){
var poptab=$.poptab($("#poptab1>li"),$("#poptab1-c>div"));
//var poptab=$.poptab(),
hasTumb=function(o){
if(o.getElementsByTagName("description").length>0){
return o.getElementsByTagName("description")[0].firstChild.data.match(/<img\s.*?src=.*?>/i);
}
},
markrss=function(title,src,num){
var tt,url="/static/downloadService?action=rssDown";
if(src.indexOf("http://")<0) url=src;
if(this instanceof $){
tt=this;
}else{
tt=$("<li><span></span>"+title+"</li>").appendTo("#poptab1");
};
$.ajax({
url:url,
type:"POST",
data:{url:src},
dataType:"xml",
success:function(m){
var pho=null,//图片新闻
photitle="",
pholink="",
head="",//标题新闻
list=[],//新闻列表
items=m.getElementsByTagName("item");
for(var i=0,len=items.length;i<len;i++){
if(pho==null){
pho=hasTumb(items[i]);
photitle=items[i].getElementsByTagName("title")[0].firstChild.data;
pholink=items[i].getElementsByTagName("link")[0].firstChild.data;
if(pho!=null){
pho=unescape(pho.toString()).replace("http://t1.baidu.com/it/u=","").replace("&fm=30","");
pho=pho.replace('src="images/','src="/templates/images/');
continue;
}
};
if(head==""){
head='<a href="'+items[i].getElementsByTagName("link")[0].firstChild.data+'" class="p-news-head" target="_blank">'+items[i].getElementsByTagName("title")[0].firstChild.data+'</a>';
continue;
};
if(list.length<5){
list.push('<li><a href="'+items[i].getElementsByTagName("link")[0].firstChild.data+'" target="_blank">'+items[i].getElementsByTagName("title")[0].firstChild.data+'</a></li>');
}
};
tt.find("span").remove();
poptab(tt,
$('<div class="p-news" style="display:none">\
<div class="p-news-pho">\
<a class="p-news-pho-img" href="'+pholink+'" target="_blank">'+pho+'</a>\
<a href="'+pholink+'" target="_blank"><span>'+photitle+'</span></a>\
</div>\
<div class="p-news-list">\
'+head+'\
<ul>\
'+list.join("")+'\
</ul>\
</div>\
</div>').appendTo("#poptab1-c").find("img").bind("load",function(){
var w=this.width,h=this.height,_w=145,_h=131;
if(w==0){
var t=this,f=arguments.callee,
fixIE=function(){
tt.unbind("mouseover",fixIE)
f.apply(t);
};
tt.bind("mouseover",fixIE);
return false;
}
if(w/h>_w/_h){
this.style.height=_h+"px";
this.style.width=_h*w/h+"px";
this.style.marginLeft="-"+(_h*w/h-_w)/2+"px";
}else{
this.style.width=_w+"px";
this.style.height=_w*h/w+"px";
this.style.marginTop="-"+(_w*h/w-_h)/2+"px";
};
}).end(),num);
},
error:function(){
tt.find("span").remove();
$("<a href='#'>刷新</a>").click(function(){
markrss.apply(tt,[title,src,num]);
$(this).remove();
tt.prepend("<span/>");
return false;
}).appendTo(tt);
}
});
};
//rss来源:http://www.baidu.com/search/rss.html#02
//markrss("新闻","/templates/cnrss.xml",0);//公司
markrss("公告","/templates/ggrss.xml",0);//公告
//markrss("行业","/templates/hyrss.xml");//行业
markrss("热点","http://news.baidu.com/n?cmd=1&class=civilnews&tn=rss");
markrss("国际","http://news.baidu.com/n?cmd=1&class=internews&tn=rss");
markrss("财经","http://news.baidu.com/n?cmd=1&class=finannews&tn=rss");
markrss("社会","http://news.baidu.com/n?cmd=1&class=socianews&tn=rss");
})(jQuery);
</script>
这里用的是百度的源
3、servlet读取源信息
response.setContentType("text/xml;charset=utf-8");
System.out.println("rss");
String url = request.getParameter("url");
System.out.println(url);
StringBuffer content = new StringBuffer();
String line = "";
String xml = "";
Element el = null;
//先从缓存中获取
Cache rssCache = MyEcache.getCache("rsscache");
el = rssCache.get(url);
if(el!=null)
{
xml = (String) el.getObjectValue();
if(xml!=null && !"".equals(xml) && !xml.contains("访问出错"))
{
response.getWriter().print(xml);
response.getWriter().flush();
response.getWriter().close();
return;
}
}
URL ser = new URL(url);
HttpURLConnection con = (HttpURLConnection) ser.openConnection();
//con.connect();
InputStream in = con.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in,"gb2312"));
while((line=br.readLine())!=null)
{
content.append(line);
}
in.close();
con.disconnect();
xml = content.toString();
//byte[] b = cc.getBytes("UTF-8");
//String xml = new String(b, 0, b.length, "UTF-8");
// Document doc = DocumentHelper.parseText(xml);
// System.out.println("(2)"+xml);
xml = xml.replace("gb2312", "UTF-8");
el = new Element(url, xml);
rssCache.putQuiet(el);
response.getWriter().print(xml);
response.getWriter().flush();
response.getWriter().close();
注:百度的rss源会判断你是否机器读取,如果你不停的链接它的话,会屏蔽你哦,使用采用ehcache做个缓存,5分钟,或者半个小时读取一次,就可以解决这个问题
发表评论
-
javascript闭包理解
2018-01-14 12:56 0关于javascript的闭包,牵涉作用域,因为js为词法 ... -
JS冻结表头和列
2017-12-27 16:44 0可冻结表头和列,但是表格需区分thead和tbody,原理是覆 ... -
锁定表头的JS写法,支持动态宽度
2017-12-26 17:32 0<style type="text/css& ... -
easyui-treegrid加载问题
2017-07-20 08:51 0关于easyui treegrid的loadData的加载 ... -
tomcat部署多个项目注意点
2016-11-22 21:45 01、启动老是报jdbc.driver的错。把jar都从 ... -
JS日期类型字符串转日期类型
2015-03-17 13:58 0var fdate = eval('new Date(' + ... -
EXT 3.2 总结
2014-10-16 00:42 01、关于window的滚动条。 在IE兼容模式下,只写a ... -
EXT DOM
2014-08-31 15:11 01.获取dom 通过id获取: var el = Ext.g ... -
EXT URL字符集
2014-08-31 15:10 0为什么java.net.URLEncoder.e ... -
maven学习笔记六 构建配置
2014-07-02 22:22 0maven一直致力于使构建 ... -
maven学习笔记五 POM
2014-06-26 00:27 0POM project object model项目对象模 ... -
maven3读书笔记 第一个maven工程
2014-06-17 10:06 0在命令行中输入: mvn archetype:gener ... -
关于南车项目的一些技术性总结
2013-11-06 10:15 0写道 set JAVA_OPTS=-Xms512m ... -
php5.5 win7 64位系统安装配置
2013-07-23 21:04 0本人系统是win7 64 位所以需要安装64位的php ... -
Hibernate middleGen工具使用
2013-07-16 23:01 0本文所用数据库版本为MySQL5.0.15、Oracle10 ... -
springAOP后对象代理和hibernate不识别问题
2013-07-16 23:03 1026场景:自定义注解,AOP拦截,处理前置业务。然后从spri ... -
tomcat7内存溢出错误的一些原因和解决方案
2013-01-11 19:42 10978今天在做公司一个工程2个版本的运行时,突然出现新版的工程在t ... -
maven3读书笔记一 认识maven
2013-01-08 18:35 0maven是什么,简单来说,它是一个构建和管理你工程的一个工 ... -
分享两个数据库转换小工具,挺有用的
2013-01-08 17:07 948一个是oracle转mysql的 另一个是mysql转ora ... -
jfreechart学习笔记三 带刻度的蜘蛛图
2013-01-08 16:58 3193其实带刻度的蜘蛛图网上也有不少资料,我这个也是参照别人的资料 ...
相关推荐
Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...
例如,index.html通常是网站的主页,crud.html可能涉及CRUD(创建、读取、更新、删除)操作的演示,jst_demo.html可能包含JavaScript或jQuery的示例,而rss_reader.html可能是RSS订阅功能的实现。auto_suggest.html...
对于Spring MVC框架,需要配置DispatcherServlet、ApplicationContext以及相关的XML或Java配置文件来定义服务和数据源。此外,C#项目中可能还需要配置.NET Framework、数据库连接字符串等。 相关路径的设定则关系到...
Web2.0的出现改变了互联网应用的格局,它强调用户参与和交互,如博客、RSS、Wiki、SNS等。Ajax是Web2.0的重要技术之一,它允许在不打断用户交互的情况下与服务器交换数据并局部更新页面。这显著提升了网页的响应...
- **FeedReader**:RSS/Atom源读取器组件。 - **Fieldset**:用于组织表单字段的容器组件。 - **FileDownload**:文件下载组件,允许用户下载文件。 - **FileUpload**:文件上传组件,支持多文件上传。 - **Focus**...
- **文档存储**:如DocBook用于技术文档,RSS用于新闻订阅。 - **数据存储**:数据库如MongoDB支持XML存储,便于数据交换。 - **软件集成**:通过XML描述接口,实现不同系统间的集成。 5. **XML验证** - **DTD*...