- 浏览: 169030 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
单v纯微笑:
您好,能把dbsyn_config_quartz这个表发给我一 ...
定时器(quartz+spring)读取数据库配置 -
fenglingabc:
我用了comet4j 结果因为推送比较频繁(基本上1秒一次), ...
comet4j轮询 -
NeverGiveUpToChange:
nice,还不错哦,谢谢啦!!!
springmvc上传 -
ralfsqual:
自定义的线程中的逻辑每次都是被执行两次,不知道为什么啊。比如打 ...
comet4j轮询 -
goll2012:
我倒,原来要配置tomcat。。。果然是高手,对于只看不动手的 ...
comet4j轮询
我用的是ajax 和struts实现的一个在线查询功能,原理很简单。
首先解析网址 根据输入的内容得到一个相关文本内容,我用的网站是百度mp3
public static List<String> onlineSearch(String singer) throws IOException {
// if (singer == null)
// singer = "爱";
String name = "a";
String path = "http://nssug.baidu.com/su?wd="
+ URLEncoder.encode(singer, "UTF-8")
+ "&prod=mp3&oe=utf-8&callback=undefined";
System.out.println("path = " + path);
double fileLength = 0.0;
File parent = new File("D:\\path");
if (!parent.exists()) {
parent.mkdirs();
}
File mp3File = new File(parent, name);
System.out.println(mp3File);
OutputStream os = null;
InputStream is = null;
URL url = new URL(path);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
// 此处必须伪造referer,否则会自动返回首页.分析后,与cookie无关
con.setRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon;)");
con.setRequestProperty("Accept-Encoding", "deflate");
con.setRequestProperty("referer", "http://nssug.baidu.com");
con.setDoInput(true);
con.connect();
if (con.getResponseCode() == HttpURLConnection.HTTP_OK) {
is = con.getInputStream();
byte[] b = new byte[1024 * 5];
int length = -1;
os = new FileOutputStream(mp3File);
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
os.flush();
}
BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream(mp3File), "gbk"));
String tmp = reader.readLine();
reader.close();
Pattern p = Pattern.compile("\\(.*?\\)");
Matcher m = p.matcher(tmp);
String result="";
while (m.find()) {
result+=m.group();
}
result = result.replaceAll("\\(", "");
result = result.replaceAll("\\)", "");
Gson gson = new Gson();
HashMap object = (HashMap) gson.fromJson(result, Object.class);
ArrayList list = (ArrayList) object.get("s");
return list;
}
这是解析网站反馈给我的文本 把内容放在一个list里面 然后action调用方法
@SuppressWarnings("static-access")
public String execute() throws Exception {
// 将要返回的user实体对象进行json处理
JSONObject jo = JSONObject.fromObject(this.user);
// 打印一下,格式如下
// {"name":"风达","age":23}
System.out.println(result);
List<String> list = new ArrayList<String>();
list= onlineSearch(result);
for(int i=0; i<list.size();i++) {
System.out.println(list.get(i));
this.result += "<li>"+list.get(i)+"</li>";
}
System.out.println(result);
return this.SUCCESS;
}
接下来就是页面,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Google Maps JavaScript API Example</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery-1.4.2.min.js" />
<script type="text/javascript">
</script>
<script type="text/javascript">
function lookup(inputString) {
if (inputString.length == 0) {
// Hide the suggestion box.
$('#suggestions').hide();
} else {
$.post("jsonAction.action", {
result : "" + inputString + ""
}, function(data) {
if (data.length > 0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
$("#autoSuggestionsList li").each(function() {
$(this).click(function() {
//alert($(this).text());
fill($(this).text());
});
});
}
});
}
} // lookup
function fill(thisValue) {
$('#inputString').val(thisValue);
setTimeout("$('#suggestions').hide();", 200);
}
</script>
</head>
<body>
<h1>Nodstrum Auto Completer</h1>
<div>
<form>
<div>
Type your county (for the demo): <br /> <input id="inputString"
onkeyup="lookup(this.value);" onblur="fill(this.value);"
type="text" />
</div>
<div class="suggestionsBox" id="suggestions"
style="display: none; z-index: 500;">
<img src="js/upArrow.png"
style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
<div class="suggestionList" id="autoSuggestionsList"> </div>
</div>
</form>
</div>
<!-- INFO -->
</body>
</html>
主要代码实现了 只需要配置struts就可以 在此我就不写了。。。
首先解析网址 根据输入的内容得到一个相关文本内容,我用的网站是百度mp3
public static List<String> onlineSearch(String singer) throws IOException {
// if (singer == null)
// singer = "爱";
String name = "a";
String path = "http://nssug.baidu.com/su?wd="
+ URLEncoder.encode(singer, "UTF-8")
+ "&prod=mp3&oe=utf-8&callback=undefined";
System.out.println("path = " + path);
double fileLength = 0.0;
File parent = new File("D:\\path");
if (!parent.exists()) {
parent.mkdirs();
}
File mp3File = new File(parent, name);
System.out.println(mp3File);
OutputStream os = null;
InputStream is = null;
URL url = new URL(path);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
// 此处必须伪造referer,否则会自动返回首页.分析后,与cookie无关
con.setRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon;)");
con.setRequestProperty("Accept-Encoding", "deflate");
con.setRequestProperty("referer", "http://nssug.baidu.com");
con.setDoInput(true);
con.connect();
if (con.getResponseCode() == HttpURLConnection.HTTP_OK) {
is = con.getInputStream();
byte[] b = new byte[1024 * 5];
int length = -1;
os = new FileOutputStream(mp3File);
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
os.flush();
}
BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream(mp3File), "gbk"));
String tmp = reader.readLine();
reader.close();
Pattern p = Pattern.compile("\\(.*?\\)");
Matcher m = p.matcher(tmp);
String result="";
while (m.find()) {
result+=m.group();
}
result = result.replaceAll("\\(", "");
result = result.replaceAll("\\)", "");
Gson gson = new Gson();
HashMap object = (HashMap) gson.fromJson(result, Object.class);
ArrayList list = (ArrayList) object.get("s");
return list;
}
这是解析网站反馈给我的文本 把内容放在一个list里面 然后action调用方法
@SuppressWarnings("static-access")
public String execute() throws Exception {
// 将要返回的user实体对象进行json处理
JSONObject jo = JSONObject.fromObject(this.user);
// 打印一下,格式如下
// {"name":"风达","age":23}
System.out.println(result);
List<String> list = new ArrayList<String>();
list= onlineSearch(result);
for(int i=0; i<list.size();i++) {
System.out.println(list.get(i));
this.result += "<li>"+list.get(i)+"</li>";
}
System.out.println(result);
return this.SUCCESS;
}
接下来就是页面,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Google Maps JavaScript API Example</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery-1.4.2.min.js" />
<script type="text/javascript">
</script>
<script type="text/javascript">
function lookup(inputString) {
if (inputString.length == 0) {
// Hide the suggestion box.
$('#suggestions').hide();
} else {
$.post("jsonAction.action", {
result : "" + inputString + ""
}, function(data) {
if (data.length > 0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
$("#autoSuggestionsList li").each(function() {
$(this).click(function() {
//alert($(this).text());
fill($(this).text());
});
});
}
});
}
} // lookup
function fill(thisValue) {
$('#inputString').val(thisValue);
setTimeout("$('#suggestions').hide();", 200);
}
</script>
</head>
<body>
<h1>Nodstrum Auto Completer</h1>
<div>
<form>
<div>
Type your county (for the demo): <br /> <input id="inputString"
onkeyup="lookup(this.value);" onblur="fill(this.value);"
type="text" />
</div>
<div class="suggestionsBox" id="suggestions"
style="display: none; z-index: 500;">
<img src="js/upArrow.png"
style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
<div class="suggestionList" id="autoSuggestionsList"> </div>
</div>
</form>
</div>
<!-- INFO -->
</body>
</html>
主要代码实现了 只需要配置struts就可以 在此我就不写了。。。
- struts2_Ajax2.rar (4.8 MB)
- 下载次数: 5
发表评论
-
生成webservices代理类方法
2013-12-15 21:06 725根据wsdl成生客户端信息: 在D盘下新建一个src目录 ... -
自动补全-jquery.autocomplete.js
2013-07-08 13:58 13775研究了三天自动补全jquery.autocomplete ... -
js设置cookie
2013-06-17 13:52 1323这几天用到cookie,所以在网上搜了一下js设置cook ... -
java 获取mac地址
2013-03-20 14:20 1409一下是用java来获取mac地址,一般可用作接口权限控制 ... -
oracle数据库-使用proxool进行中断重连
2013-02-17 11:03 3217(1)proxool.xml配置项参数 <?xml ... -
jsp自定义错误页
2013-02-17 11:00 998为了给浏览者一个友好的错误提示页面,我们可以象IIS一样自定义 ... -
Spring对Hibernate事务管理的配置
2013-01-09 15:11 1010声明式事务配置主要分以下几步: 声明式事务配置 •配置 ... -
md5
2013-01-08 10:37 1111MD5是一种常用的加密算法,在项目中经常用到,我参考了网上一些 ... -
axis 自动生成webservices客户端代理类
2012-11-18 11:16 28701.新建wsdltojava.bat文件,放到C盘,文件内容如 ... -
定时器(quartz+spring)读取数据库配置
2012-08-21 15:37 19520今天把项目中的一部分移出来,主要是实现定时器任务,定时 ... -
ztree 小实例
2012-08-03 09:55 2545今天搞了一下ztree这个开源的东东,感觉很不错,很强大 ... -
java 读取.properties文件 最简单方式
2012-07-25 08:45 1139param.properties 内容如下: url ... -
Quartz入门示例
2012-05-14 17:28 1033文章出处 http://www.cnblogs.com ... -
struts2.2.3 + spring3.1.0 + mybatis3.1.0集成简单demo
2012-04-19 09:25 17641、导入相应的jar包 -
Struts2访问request,session,application的四种方式
2012-04-19 09:10 1611方式1--》访问Map类型的: package cn ... -
struts.xml动态返回结果
2012-04-11 15:51 1062今天有个难题,被我解决啦。详细的问题我就不多说了,用到的 ... -
springmvc上传
2012-04-05 15:55 5424最近一直在网上看资料,今天我在网上发现一个demo,是 ... -
jsoup解析网页
2012-03-31 09:24 4457jsoup功能很强大,我用它来解析网页很轻松。但我只用了 ... -
fileupload多文件上传
2012-03-31 09:16 1175以前做过单文件的 ... -
解析百度输入框(在线查询)
2012-03-28 14:51 1896百度大家都会用,但是相信大家用百度的时候在输入框中随便输 ...
相关推荐
总的来说,Struts2和Ajax的结合使用使得Web应用能够提供更快速、更直观的用户交互,而这个代码和jar包组合可能就是实现这一目标的一个实例。通过阅读提供的文档和使用示例,你可以深入了解并实践这一技术,从而提升...
8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必...
总的来说,这三个包是实现Struts2框架下Ajax功能的关键组件,它们协同工作,确保了数据在客户端和服务器之间的高效、流畅传递。通过熟练掌握这些技术,开发者可以构建出更加响应式和互动性强的Web应用程序。
在Struts2中实现AJAX(Asynchronous JavaScript and XML)功能,可以增强用户界面的交互性和响应性,而无需刷新整个页面。本篇文章将详细介绍在Struts2框架下实现AJAX功能所需的jar包及其作用。 首先,我们需要了解...
我们这里采用的是ajax+struts2来做的这个验证。 我们新建一个web工程。然后需要导入struts的相应包。之后我们需要写一个类来生成验证码。 博客地址:http://blog.csdn.net/sdksdk0/article/details/51755489
描述中提到"Ajax打破了使用页面重载的惯例技术组合",这指的是在传统的Web应用中,用户每次操作都可能导致整个页面的刷新,而Ajax通过XMLHttpRequest对象实现了只更新部分页面内容的功能,减少了网络传输的数据量,...
本项目"struts2ajax"是基于Struts2框架,利用jQuery库实现的Ajax功能示例。jQuery是一个轻量级的JavaScript库,它简化了DOM操作、事件处理以及Ajax交互,使得开发者更容易实现复杂的前端效果和交互。 首先,我们...
### Struts2整合jQuery实现Ajax功能 #### 一、引言 随着Web应用程序的发展,用户对交互性和响应速度的要求越来越高。传统的Web表单提交方式已无法满足这些需求,因此Ajax技术逐渐成为提升用户体验的重要手段之一。...
在这个“ajax+struts2.0+jsp下拉列表级联”的示例中,我们将探讨如何利用这三个技术实现这种功能。 首先,AJAX(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页...
struts2 用AJAX实现的上传功能,带进度条的jar包。
5. **实战示例**:提供了一些实际的开发案例,如创建一个简单的Struts 2项目,添加AJAX功能,实现无刷新的用户交互。 6. **错误处理和调试**:如何处理Struts 2中的异常,以及调试技巧和工具。 学习Struts 2和AJAX...
总结来说,Struts2整合jQuery实现Ajax功能,可以让前端和后端之间进行无缝通信,提供更加动态的用户体验。通过使用jQuery简化Ajax操作,开发者可以专注于业务逻辑而不是繁琐的异步请求处理。同时,Struts2的Action...
Struts2、jQuery和Ajax是Web开发中的三个关键组件,它们共同构成了文件异步上传的基础框架。这个项目是在MyEclipse环境下实现的一个简单的文件上传功能,让我们深入了解一下这些技术及其在文件上传中的应用。 首先...
它不仅提供了简单的API和工具,使得开发者可以快速地实现AJAX功能,同时还能充分利用现有的JSON库和浏览器的JSON支持,降低了开发复杂度。这使得Struts2在Web 2.0时代的应用开发中保持了强大的竞争力。
总的来说,Struts2、Spring和Ajax的整合使得用户登录功能更加高效、用户友好。Struts2处理请求和响应,Spring管理业务逻辑和数据访问,而Ajax则提供了流畅的用户体验。在实际开发中,开发者需要对这三个框架有深入...
Struts2是一个非常流行的Java Web框架,它提供...通过以上步骤,开发者可以在Struts2框架下轻松地实现Ajax功能,提高Web应用的交互性和用户体验。理解并熟练掌握这些知识点,对于开发高效、用户友好的Web应用至关重要。
本示例展示了如何使用Struts 2框架结合Ajax技术来实现一个登录功能。主要分为以下几个步骤: 1. **配置Struts 2的核心配置文件(struts.xml)**:定义了应用程序的行为逻辑,包括Action映射等。 2. **创建登录页面...
可以使用Struts2的AJAX验证功能,实现表单字段的实时验证,无需提交整个表单即可检查输入的有效性。 8. **AJAX分页**: 对于需要分页显示的数据,Struts2 jQuery插件提供了`sj:tabbedpanel`和`sj:datatables`等...