- 浏览: 707568 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- Struts1.x (7)
- 事务 (2)
- Hibernate (11)
- 数据库 (14)
- JavaScript&Ajax (43)
- JSP&Servlet (2)
- Flex (1)
- 其它 (9)
- Java (22)
- 框架集成 (1)
- WebService (3)
- Tomcat (3)
- 加密和安全登录 (13)
- 基于原型的JavaScript (0)
- JavaDoc和Java编码规范 (3)
- CAS (1)
- 加密 (1)
- Axis2 (10)
- Ext2.x (3)
- SSH整合 (2)
- Ext (0)
- 正则表达式 (1)
- 设计模式 (4)
- 对象序列化技术 (3)
- CVS (2)
- Struts2 (6)
- Spring 2.x (7)
- Spring Security (2)
- Java 课程 (20)
- 程序员之死 (1)
- 软件测试 (6)
- UML (5)
- NetBeans (1)
- cxf (1)
- JMS (13)
- 设计 (5)
- ibatis2.x (3)
- Oracle (1)
- WebSphere (7)
- 概要设计 (1)
- DB2 (10)
- PowerDesigner (0)
- 软件工程 (5)
- rose (1)
- EA (1)
- LDAP (7)
- Portal&Portlet (3)
- MQ (10)
- ESB (4)
- EJB (2)
- JBoss (2)
最新评论
-
typeRos:
只有配置文件,没有代码么大神
Spring实现IBMMQ的JMS消息发布/订阅模式 -
panamera:
如果ActiveMQ服务器没有启动,这个时候消息生产者使用Jm ...
Spring JMSTemplate 与 JMS 原生API比较 -
lian819:
顶1楼, 引用文件, 配置属性, 太方便了
EXTJS 同步和异步请求 -
wilhard:
说得清楚明白
<%@ include file=""%>与<jsp:include page=""/>区别 -
刘琛颖:
总结的很好。受益了
javascript 父窗口(父页面)— 子窗口 (子页面)互相调用的方法
参考《深入浅出Ajax》一书,并且阅读了一位高人的《深入认识javascript中的eval函数》
一文,有很多启发,于是我写了一个使用Ajax从服务器段动态生成JavaScript代码的例子,并且使用了eval函数,我是初学者,写此文的目的其实是想让大家给我的代码多提建议,谢谢!!
index.jsp
<%@ page
language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<html>
<head>
<meta
http-equiv="Content-Type" content="text/html;
charset=GBK">
<script
language="JavaScript"
type="text/javascript">
<!--
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp =
new ActiveXObject("Microsoft.XMLHTTP");
}
else
if(window.XMLHttpRequest)
{
xmlHttp =
new XMLHttpRequest();
}
}
function choose()
{
xmlHttp.open("GET",
"ProcessServlet?choose="+document.getElementById("choosejsfile").value,
true);//这个open方式是使XMLHttpRequest提交到一个Servlet
//xmlHttp.open("GET",
"ajaxstudy/secondgeneratejs.jsp?choose="+document.getElementById("choosejsfile").value,
true);//这个是使XMLHttpRequest提交到一个jsp
//其实以上两种提交方式没什么本质区别。
xmlHttp.onreadystatechange =
processRequest;//processRequest回调函数
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send(null);
}
function processRequest()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)//信息已经成功返回
{
alert(xmlHttp.responseText);
invoke(xmlHttp.responseText);
}
else
{
alert("您请求的页面有异常");
}
}
else
{
//信息还没有返回,请等待
}
}
//下面的代码是用来动态执行由服务器段传回来的字符串
//"var fun =
function(){alert( '执行第一段代码,我是由服务器端的Servlet传来的');return
'执
//行第一段代码';}"
//不能直接使用eval函数是因为eval只能声明局部的变量。需要使用如下方式。
//在《深入认识javascript中的eval函数》一文中讲的非常详细。
var X2 = {}
X2.Eval = function(code)
{
if(window.attachEvent &&
!window.opera)
{
//ie
window.execScript(code);
}
else
{
//not
ie
window.eval(code);
}
}
function invoke(code)
{
X2.Eval(code);
}
//-->
</script>
<title>Insert
title here</title>
</head>
<body
onload="createXMLHttpRequest()">
<select
id="choosejsfile">
<option
value="1">第一段代码</option>
<option
value="2">第二段代码</option>
<option
value="3">第三段代码</option>
</select>
<input type="button" onclick="choose()"
value="提交">
<input type="button" onclick="fun()"
value="测试">
<!--
注意fun并没有声明,它是在服务器段以字符串的形式传过来的,eval执行这个字符串,
动态声明了一个函数fun。我下面把服务器段的代码贴上。
-->
</body>
</html>
服务器段代码:
xmlHttp.open("GET",
"ProcessServlet?choose="+document.getElementById("choosejsfile").value,
true);//这个open方式是使XMLHttpRequest提交到一个Servlet
假设open方法指定提交到一个Servlet,名字叫ProcessServlet,我现在把这个Servlet的代码贴出来,
如果是提交到一个jsp,代码相同,提交到哪里不是关键。
ProcessServlet.java(只贴doGet方法了)
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException
{
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");
String
choose = request.getParameter("choose");
StringBuffer
sb = new StringBuffer();
if(choose !=
null &&
!choose.equals(""))
{
if(choose.equals("1"))
//下拉菜单选择“第一段代码”
{
System.out.println("返回第一段代码");
response.addHeader("Content-Type","text/html");
sb.append("var fun = function(){alert(
'执行第一段代码,我是由服务器端的Servlet传来的');return
'执行第一段代码';}");
}
else
if(choose.equals("2"))
//下拉菜单选择“第二段代码”
{
System.out.println("返回第二段代码");
response.addHeader("Content-Type","text/html");
sb.append("var fun = function(){alert(
'执行第一段代码,我是由服务器端的Servlet传来的');return
'执行第一段代码';}");
}
else
if(choose.equals("3"))
//下拉菜单选择“第三段代码”
{
System.out.println("返回第三段代码");
response.addHeader("Content-Type","text/XML");
sb.append("var fun = function(){alert(
'执行第一段代码,我是由服务器端的Servlet传来的');return
'执行第一段代码';}");
}
//服务器返回给index.jsp的response
response.getWriter().write(sb.toString());
}
else
{
System.out.println("bad reqest");
}
}
运行界面:
起始页:
先点击“提交”按钮,提交到Servlet,在Servlet中拼出来一个字符串:
"var fun = function(){alert( '执行第一段代码,我是由服务器端的Servlet传来的');return
'执行第一段代码';}"
通过response把这段字符串传回index.jsp,index.jsp通过eval方法执行上述字符串,就动态声明了一个叫fun的JavaScript函数。
点击“测试”按钮,点击事件中调用fun函数。
就是这些,希望朋友们看完多提宝贵的意见,互相促进,谢谢!!!
在附件里是全部代码。
- DongTaiJiaZaiDaiMai.rar (95.9 KB)
- 描述: 使用Ajax从服务器段动态生成JavaScript代码的全部源代码
- 下载次数: 42
发表评论
-
JavaScript 代码压缩工具
2011-02-16 15:15 945见附件,免费工具。 -
在服务器端判断request来自Ajax请求(异步)还是传统请求(同步)
2009-11-26 13:38 10714在服务器端判断request来自Ajax请求(异步)还是传 ... -
转:用Javascript来关闭IE浏览器和FireFox浏览器
2009-06-03 11:08 2181原文地址:http://hi.baidu.com/suen ... -
JavaScript 解析 JSON
2009-02-25 20:36 0JSON (JavaScript Object Not ... -
JavaScript的四舍五入运算
2009-02-02 13:49 1786function ForDight(Dight,How) { ... -
JavaScript 使用面向对象的技术创建高级 Web 应用程序
2009-01-19 21:44 1515转载: JavaScript 使用面 ... -
在JavaScript中使用面向对象
2009-01-18 17:05 1129原文地址:http://www.cnblo ... -
应当这样编写 JavaScript 代码吗?
2009-01-17 23:09 1126应当这样编写 JavaScript 代码吗? 您已经看到Ja ... -
JavaScript模拟命名空间
2009-01-17 17:35 1332JavaScript模拟命名空间 在C++和C#中,命名 ... -
JavaScript 从类继承
2009-01-17 17:32 1279从类继承 到这里,我们已经了解了构造函数和原型对象如何使您在 ... -
模拟私有属性
2009-01-07 15:46 1134模拟私有属性 现在介绍闭包如何帮助模拟私有成员。正常情况 ... -
闭 包
2009-01-07 15:10 1242闭包 我没有自觉地学习过JavaScript。我必须快点了解 ... -
静态属性和方法
2009-01-05 18:15 1315静态属性和方法 有时,您需要绑定到类而不是实例的属性或方法, ... -
原 型
2009-01-05 17:58 1065原型 在使用JavaScript的面向对象编程中,原型对象 ... -
构造函数而不是类
2009-01-04 23:15 1397构造函数而不是类 前面提到过,有关JavaScript ... -
JavaScript 函数是最棒的
2009-01-04 19:25 1473JavaScript 函数是最棒的 在很多编程语言中,函数和 ... -
insertAdjacentElement方法
2008-12-29 18:08 2472语法: oElement = object . inse ... -
javascript 中定义private 方法
2008-12-26 12:40 2301出处:http://aoqi1883.blog.163.co ... -
event.returnValue和return false的区别
2008-12-25 19:52 26618<!DOCTYPE html PUBLIC " ... -
按“回车”键提交表单
2008-12-25 19:17 2564<!DOCTYPE html PUBLIC " ...
相关推荐
ASP是微软开发的一种服务器端脚本环境,用于生成动态网页。在ASP中集成Ajax,可以创建交互性强、响应速度快的Web应用。 6. **示例代码**:压缩包中的`foundations-of-ajax-examples`可能包含了基础的Ajax应用示例,...
通过学习和实践这些源代码,你可以了解到如何使用JSP创建动态网页,如何利用Servlet处理HTTP请求,如何运用JavaScript和jQuery增强用户交互,以及如何使用Ajax实现页面的无刷新更新。这些技术的结合使用,是构建现代...
在本项目中,我们将探讨如何使用Ajax、Struts2框架以及Dojo库来动态地从数据库中获取数据并生成树型菜单。这个功能常见于网站的导航系统,允许用户以层级结构浏览和操作数据。 首先,`Ajax`(Asynchronous ...
AJAX(Asynchronous JavaScript and XML)允许我们在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容,而`jquery.pagination.js`则提供了简洁的分页解决方案。 首先,我们需要理解AJAX的工作原理。AJAX...
好友列表可以通过AJAX从服务器获取,可能包括好友ID、昵称、头像等信息。这些信息可以存储在数据库中,通过API接口按需提供给前端。前端根据返回的数据动态创建列表项,实现列表的实时更新。 5. 聊天室架构: 本...
总的来说,"使用ajax动态树生成"涉及到的技术栈包括:前端的JavaScript(Ajax、JSON处理)、后端的JSP(Servlet)、以及数据库操作(MySQL)。通过合理运用这些技术,我们可以构建出交互性良好、响应快速的动态树形...
在IT行业中,Ajax(Asynchronous JavaScript and XML)技术是一种用于创建快速、动态网页的重要方法。它允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容,从而提升了用户体验。本文将深入...
标签"ajax的动态树的生成代码"提示我们在服务器端(这里是JSP)需要生成树的数据。这通常涉及到数据库查询或者静态数据的读取。例如,使用Java的Servlet或JSP内置对象来处理请求: ```jsp ;charset=UTF-8" ...
1. **服务器端生成验证码**:服务器上需要有一个生成验证码的逻辑,这通常涉及到随机生成一组中文字符或数字,然后将其存储到服务器会话(session)或者Cookie中,以供后续验证使用。 2. **Ajax请求**:当用户触发...
在网页开发中,"Ajax(异步JavaScript和XML)读取XML动态生成树"是一种常见的交互式数据展示技术。这个过程通常涉及到前端JavaScript库或框架,如jQuery、Vue.js或React,通过Ajax请求获取服务器上的XML数据,然后...
在.NET平台上,结合AJAX(Asynchronous JavaScript and XML)技术,可以实现动态生成可选择列表,从而提升用户体验,提供高效且交互性强的Web应用程序。AJAX的核心在于利用JavaScript异步地与服务器进行数据交换,...
- 当需要在JavaScript中动态获取服务器数据时,通常使用AJAX(Asynchronous JavaScript and XML)技术。虽然名字中有XML,但现代的AJAX请求通常使用JSON格式传输数据。 - 示例中没有直接展示AJAX请求,但`$.search...
在这里,它会创建一个新的Store对象,用于存储从服务器获取的数据,以及新的ColumnModel对象,包含所有动态生成的列。最后,利用这些信息实例化一个新的GridPanel,并将其附加到之前定义的`grid_div`元素上。 后端...
当我们谈论Ajax图表生成时,我们指的是使用Ajax技术动态地创建和更新图表的过程。这种功能在数据分析、监控系统、商业智能应用等领域广泛应用,因为它能实时展示数据变化,帮助用户直观理解大量复杂信息。 要实现...
1. AJAX基础:AJAX的核心是JavaScript对象XMLHttpRequest,它允许前端向服务器发送异步请求,获取数据并更新页面。在本实例中,当用户点击树形目录的某个节点时,AJAX会向服务器发送请求,获取下一级目录的信息,...
Ajax Tree的核心在于使用XMLHttpRequest对象与服务器通信,获取树节点的数据,然后利用JavaScript动态构建或更新DOM树。这一过程通常分为以下几个步骤: 1. **初始化**:在用户界面加载时,创建一个空的树结构,...
在IT行业中,Ajax(异步JavaScript和XML)与ASP(Active Server Pages)的结合常常用于构建动态、交互性强的Web应用程序。本项目“Ajax+Asp实现批量生成静态页面进度条”提供了一个实用示例,教你如何利用这两种技术...
在我们的场景中,TCPDF接收从AJAX请求传来的数据,然后根据这些数据生成PDF文件。TCPDF提供了丰富的API,可以设置字体、颜色、边距、页面方向等,以及插入图像、表格、链接等复杂元素。 生成PDF的过程大致如下: 1....
DWR在服务器端生成JavaScript代码,然后将其发送到客户端,客户端可以使用这些JavaScript对象来访问服务器端的对象。这样,DWR使得Java开发者可以轻松地在Web开发中使用AJAX技术,而不需要编写复杂的JavaScript代码...