ajax的json传值方式在jsp页面中的应用_AJAX相关

jsp页面

复制代码 代码如下:

$(document).ready(function() {
setInterval(function myTimer()
{
//alert('a');
getViews();
},1000);
});
//播放
function getViews(){
$.ajax({
'url':"${pageContext.request.contextPath}/video/getVideos.action?r="+Math.random()+"&open=1",
'data': '',
'dataType': 'json',
'type': 'get',
'error': function(data){
alert("error");
return false;
},
'success': function(data) {
if(null != data && '' != data){
//alert(data.updateFlag);
if(data.updateFlag==0){//如果data.updateFlag=0 不刷新
//alert("data.updateFlag=0");
}
else{
if(data.videoIds != null && data.videoIds != ""){
var listIds=data.videoIds;
var i=0;
for(;i<listIds.length;++i){
//alert("show:"+i+"id=:"+listIds[i]);
showView(listIds[i],i);//播放
}
for(var j=listIds.length;j<9;++j){
//alert("Stop:"+j);
StopPlayVideo(j);
}
}
}
}
}
});
}

此处由于此代码实现的功能是通过ajax定时访问后台Hashtable,所以为了是系统区别url不同、ajax返回值不同,特意在url后加上r=+Math.random()
java后台处理方法

复制代码 代码如下:

/**
* 双服务器九宫格显示
*
* @return
*/
@Action(value = "getVideos" ,results={
@Result(name = SUCCESS,location="videos2.jsp")
})
public String getVideos() {
if (open == 301) {
return SUCCESS;
} else {
try {
VideoHashTable videoHashTable = VideoHashTable.getInstance();
Hashtable<Long, Long> hashTable = videoHashTable.getRht();
Map map = new HashMap<String, List<Long>>();
if (videoHashTable.isUpdateFlag() == true) {
Enumeration en = hashTable.keys();
videoIds = new ArrayList<Long>();
while (en.hasMoreElements()) {
Long key = (Long) en.nextElement();
// vth.get(key);
videoIds.add(key);
}
map.put("videoIds", videoIds);
map.put("updateFlag", 1L);
videoHashTable.setUpdateFlag(false);
System.out.println("getVideos:" + videoIds);
SendMessage.sendObject(map);
} else {
map.put("updateFlag", 0L);
SendMessage.sendObject(map);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}

关键要把传到jsp的页面存到map中,在通过json传值。
SendMessage.sendObject(map)方法所在类及方法

复制代码 代码如下:

package com.supcon.honcomb.utils;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.HttpResponse;
import org.apache.struts2.ServletActionContext;
public class SendMessage {
public static void sendMessage(String responseText){
try {
PrintWriter out = ServletActionContext.getResponse().getWriter();
out.print(responseText);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void sendObject(Object obj) throws Exception {
PrintWriter pw;
String rtn = "";
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
rtn = JsonUtil.JsonFromObject(obj);
pw = response.getWriter();
pw.write(rtn);
pw.flush();
pw.close();
}
}

时间: 2024-10-06 05:15:12

ajax的json传值方式在jsp页面中的应用_AJAX相关的相关文章

ajax的json传值方式在jsp页面中的应用

jsp页面: 复制代码 代码如下: $(document).ready(function() { setInterval(function myTimer() { //alert('a'); getViews(); },1000); }); //播放 function getViews(){ $.ajax({ 'url':"${pageContext.request.contextPath}/video/getVideos.action?r="+Math.random()+"

使用ajax技术实现txt弹出在页面上的方法_AJAX相关

使用ajax技术实现点击按钮,将TXT文本里的内容通过弹出框显示到页面上 /*事件会在页面加载完成后触发.*/ <script> window.onload = function(){ /*获取按钮的id*/ var oBth=document.getElementById('btn'); /*点击按钮触发的函数*// oBth.onclick = function(){ /*打开浏览器*/ var xhr = new XMLHttpRequest(); /*在地址栏输入地址,这里的1txt代

请问如何操作可以使不同的action获取同一个jsp页面中的数据

问题描述 我用struts2开发并运用了它对Ajax技术的支持,在一个jsp页面中分成了四个div(<s:divtheme="ajax"href={%}updateFreq="1000">)分别为div1,div2,div3,div4.div1由action1处理,处理完成后返回jsp1页面显示在div1区域内.div2中应用了<s:tabbedPanel>标签,其中包含四个tab页,在这个标签下,每一个tab页就是一个单独的div.(可以写

jsp页面传值,第一个页面中的内容不固定,如何在第二个页面中显示

问题描述 jsp页面传值,第一个页面中的内容不固定,如何在第二个页面中显示 要写个jsp页面之间传值的功能.第二个页面展示第一个页面中某一个记录的详情,但是详情内容不固定,有的详情是一条记录,有的详情是多条记录,不知道该怎么在第二个jsp页面上显示出来. 具体的功能:第一个页面上显示公司类型和每个类型下公司的总数量,当双击公司类型的时候就会跳转到第二个页面,显示该类型下的所有公司,每个公司的详细信息都要列出来,每个公司后面都跟着一个修改按钮,每个公司的部分信息都可以被修改 第一个页面已经做出来了

JSP页面中的自定义标签

js|页面 JSP页面中的自定义标签 JSP页面中的自定义标签 Stephanie Bodoff 用于调用Javaean组件中的操作和执行请求分派的标准JSP标签简化了JSP页面的开发和维护.JSP技术还提供了在自定义标签中封装其他动态功能的机制,这种自定标签是JSP语言的扩展.自定义标签通常是以标签库的形式出现的,它定义了一组相关的自定义标签,并包含实现这些标签的对象. 可以由自定义标签执行的任务包括对隐式对象的操作.处理表单.访问数据库和其他企业级服务,如电子邮件和目录.以及执行流程控制.J

JSP页面中的自定义标签2

js|页面 JSP页面中的自定义标签2 带属性的标签 在标签handler中定义属性对于每一个标签属性,都必须在标签handler中定义一个属性以及符合JavaBean结构规范的get和set方法.例如,logic:present标签的标签handler <logic:present parameter="Clear"> 包含下列声明和方法: protected String parameter = null;public String getParameter() { r

如何在一个JSP页面中调用另一个JSP页面中的变量

在jsp学习中,经常需要在一个jsp页面中调用另一个jsp页面中的变量,下面就这几天的学习,总结一下. jsp页面之间的变量调用有多种方法: 1.通过jsp的内置对象-request对象获取参数: (1)通过超链接传参: 例:把a.jsp中i的值传到b.jsp中: 在a.jsp页面中的核心代码为: <a href="b.jsp?i=1">传参</a>     (说明:给i赋值时也可以用jsp表达式,例如i=<%变量名 %>) 在b.jsp页面中的核心

jsp页面中的代码执行加载顺序介绍

 本篇文章主要是对jsp页面中的代码执行加载顺序进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 1. java是在服务器端运行的代码,jsp在服务器的servlet里运行,而javascript和html都是在浏览器端运行的代码.所以加载执行顺序是是java>jsp>js.   2. js在jsp中的加载顺序   页面上的js代码时html代码的一部分,所以页面加载的时候是由上而下加载.所以js加载的顺序也就是页面中<script>标签出现的顺序.<scrip

jsp页面-如何获取TXT文档中指定的一行数据,并打印到JSP页面中呢?

问题描述 如何获取TXT文档中指定的一行数据,并打印到JSP页面中呢? 如何获取TXT文档中指定的一行数据,并打印到JSP页面中呢? 解决方案 try { String encoding="GBK"; File file=new File(filePath); if(file.isFile() && file.exists()){ //判断文件是否存在 InputStreamReader read = new InputStreamReader( new FileInp