0 0

上手ajax遇到的问题5

问题在注释中。谢谢!
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script language="javascript">
	function doCaculate() {
		var f = document.form1;
		
		if ((f.number_1.value != "") && (f.number_2.value != "")) {
			document.getElementById("feedback").innerHTML = "正在计算,请稍候...";
			send_request("process.jsp?number_1="+f.number_1.value+ "&number_2="+f.number_2.value);
		
		}
		else if (f.number_1.value == "") {
			document.getElementById("feedback").innerHTML = "乘数不能为空。";
			}
		else if (f.number_2.value == "") {
					document.getElementById("feedback").innerHTML = "被乘数不能未空。";
			}
	}

	var http_request = false;

	function send_request(url) {
		http_request = false;
		if (window.XMLHttpRequest) {
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
				http_request.overrideMimeType('text/xml');
			}
		}
		else if (window.ActiveXObject) {
			try {
				http_request = new ActiveXObject("Msxml2.XMLHttp");
			}
			catch (e) {
				try {
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) {}
			}
		}

		if (!http_request) {
			window.alert("不能创建XMLHttpRequest对象实例.");
			return false;
		}

		http_request.onreadystatechange = processRequest;
		http_request.open("GET", url, true);
		http_request.send(null);
	}

	function processRequest() {
		var f = document.form1;
		if (http_request.readyState == 4) {
		
			if (http_request.status == 200) {
				var returnStr = http_request.responseText;
				
				if (returnStr.indexOf("Error") == -1) {
					alert(returnStr);
                                        // 这儿得到returnStr怎么是html?还要自己解析才能等得到计算值吗?
					document.getElementById("feedback").innerHTML = returnStr;
					f.result.value = returnStr;
				}
				else {
					f.result.value = "";
					document.getElementById("feedback").innerHTML = returnStr;
				}
			}
			else {
				alert(http_request.status);
				alert("您所请求的页面有异常.");
			}
		}
	}
</script>
</head>
<body>
	<form action="process.jsp" method="post" enctype="application/x-www-form-urlencoded" name="form1" target="_self">
    <table width="400" cellpadding="4" cellspacing="1" border="0">
    	<caption>简单乘法计算</caption>
        <tr>
        <td align="center">
        	<input type="text" name="number_1" size="10">
            *
            <input type="text" name="number_2" size="10">
            =
            <input type="text" name="result" size="10">
        </td>
        </tr>
        <tr align="center">
        <td> &nbsp;
        	<input type="button" name="Caculate" value="开始计算" onClick="doCaculate()">&nbsp;
            <input type="reset" name="reset" value="重新计算">
        </td>
        </tr>
        <tr><td align="center" height="25"><label id="feedback">&nbsp;xx</label></td>
        </tr>
    </table>
 </body>
</html>

<%@ page language="java" contentType="text/html; charset=gb2312"
    pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Insert title here</title>
</head>
<body>
	<% 
		String number_1 = request.getParameter("number_1");
		String number_2 = request.getParameter("number_2");
		int num_1 = 0, num_2 = 0;
		boolean status = true;
		if (number_1 != null) {
			try {
				num_1 = Integer.parseInt(number_1);
			}
			catch (Exception ex) {
				status = false;
				out.println("Error,乘数必须是整数.");
			}
		}
		if (number_2 != null) {
			try {
				num_2 = Integer.parseInt(number_2);
			}
			catch (Exception ex) {
				status = false;
				out.println("Error,被乘数必须是整数.");
			}
		}
		if (status) out.println(num_1*num_2);
	%>
</body>
</html>
2008年8月28日 18:14

1个答案 按时间排序 按投票排序

0 0

采纳的答案

这里的Ajax请求得到的响应文本,是执行完JSP之后所返回的html代码,所以你的JSP页面整体输出什么,它的值就是什么。
由于你的页面中包含的<html>、<body>等标签,所以返回的页面中同样也包含了这些标签,输出的值自然就是html了。
若只想得到结果,只要保留JSP页面的这一部份就好了:

<%@ page language="java" contentType="text/html;charset=gb2312" pageEncoding="gb2312"%>
<% 
	String number_1 = request.getParameter("number_1");
	String number_2 = request.getParameter("number_2");
	int num_1 = 0, num_2 = 0;
	boolean status = true;
	if (number_1 != null) {
		try {
			num_1 = Integer.parseInt(number_1);
		}
		catch (Exception ex) {
			status = false;
			out.println("Error,乘数必须是整数.");
		}
	}
	if (number_2 != null) {
		try {
			num_2 = Integer.parseInt(number_2);
		}
		catch (Exception ex) {
			status = false;
			out.println("Error,被乘数必须是整数.");
		}
	}
	if (status) out.println(num_1*num_2);
%>

2008年8月28日 18:37

相关推荐

    快速上手Ajax中文实例

    在快速上手Ajax的过程中,有几个关键知识点是必须掌握的: 1. **JavaScript基础**:Ajax的核心是JavaScript,因此熟悉JavaScript语法和DOM操作是必不可少的。你需要了解如何创建和执行JavaScript函数,以及如何通过...

    ajax.dll以及说明文档和demo

    提供的`说明文档`会详细阐述如何正确使用`ajax.dll`,包括安装步骤、API接口的使用方法、示例代码以及可能遇到的问题和解决方案。阅读并理解这份文档对于高效地集成和使用`ajax.dll`至关重要。 **Demo的实践意义** ...

    apex,ajax相关资料

    此外,Salesforce.com提供了丰富的在线资源,包括文档、示例代码和社区论坛,帮助开发者快速上手并解决开发过程中遇到的问题。 #### APEX与AJAX的关键概念 **Synchronous and Asynchronous Calls with the AJAX ...

    ajax实战中文版pdf

    书中还涵盖了跨域问题,这是一个在Ajax开发中经常遇到的挑战。通过CORS(Cross-Origin Resource Sharing)策略和其他解决方案,开发者可以安全地处理跨域请求,扩大Ajax应用的范围。 不仅如此,本书还介绍了Ajax在...

    ajax-ext框架

    4. **文档查阅**:充分利用官方文档和社区资源,遇到问题时及时查找解决方案。 5. **版本控制**:使用版本控制系统如Git,便于团队协作和版本回溯。 总结来说,Ajax-ext框架是建立在Ajax技术和ExtJS基础上的一个...

    AJAX四天学会,简单易懂,容易上手

    9. **安全考虑**:了解AJAX在安全方面可能遇到的问题,如CSRF(Cross-Site Request Forgery)攻击,以及如何通过设置令牌防止此类攻击。 10. **实践项目**:通过实际的项目练习,将所学知识应用到实际场景,例如...

    ajax tool 使用

    最后,如果你在使用Ajaxtool过程中遇到任何问题,可以参考博客链接,博主Staynight2010可能分享了一些实用技巧和解决常见问题的方法。同时,积极参与社区讨论,与其他开发者交流经验,也是不断提升自身技能的好方式...

    Ajax的控件

    而"ReadMe.txt"文件通常包含了安装指南、版本信息、更新日志以及可能遇到的问题和解决方案,对于初次使用者来说,这是获取初步信息和帮助的重要来源。 总的来说,Ajax控件通过提供丰富的用户界面组件和便捷的异步...

    Ajax版本的工作搜索引擎.rar

    `[XML]XMLHTTP 乱码 的解决方法-编程-冷酷空间 - 陈正伟 - blog_czw_name.mht`文件可能讲述了在使用XMLHTTP(现在通常称为XMLHttpRequest)对象进行Ajax请求时遇到的字符编码问题及其解决方案。这对于确保从服务器...

    Advanced.ASP.NET.AJAX.Server.Controls.For.dot.NET.Framework.3.5.

    它不仅介绍了如何使用现有的工具和方法来交付互动型 AJAX 功能,还深入探讨了开发过程中可能遇到的问题及解决方案。 对于那些希望超越 UpdatePanel 基础功能,进一步探索自定义控件开发的开发者来说,《高级 ASP...

    Ajax新手快车道及书中源码

    总的来说,"Ajax新手快车道"是一本适合初学者的教材,它不仅提供了Ajax的基础知识,还包含了丰富的实战案例,是快速上手Ajax技术的好帮手。通过阅读这本书和实践提供的源码,你将能够熟练地运用Ajax来增强网页的交互...

    ajax4jsf中文用户指南

    Ajax4JSF(Ajax for JavaServer Faces)是一个开源框架,专为JavaServer Faces(JSF)应用程序添加Ajax功能。这个框架使得开发者无需编写JavaScript...如果你在JSF开发过程中遇到问题,可以在中国的JSF论坛上寻求帮助。

    ajax4jsf使用中文手册

    总之,"Ajax4JSF使用中文手册"是一份详尽的指南,旨在帮助开发者快速上手并精通Ajax4JSF。通过阅读这份手册,你将能够掌握如何在JSF项目中有效地使用Ajax4JSF,构建出响应迅速、用户体验优良的Web应用。

    Ajax.NET专业版

    9. **文档和支持**:虽然不如商业产品那样全面,但Ajax.NET专业版有一份详尽的文档和社区支持,开发者可以在遇到问题时寻求帮助。 10. **跨浏览器兼容**:Ajax.NET专业版致力于与各种主流浏览器兼容,包括Internet ...

    AjaxDWR_Manual

    通过阅读手册,你可以了解如何创建第一个DWR应用,以及如何解决遇到的问题。 总之,AjaxDWR为Java开发者提供了一个高效、易用的Ajax框架,使得前后端通信变得简单而直接。通过深入学习和实践AjaxDWR手册中的内容,...

    Telerik_UI_for_ASP.NET_AJAX_2019_1_115_Dev

    8. **文档和示例**:官方提供详尽的API文档、教程和示例代码,帮助开发者快速上手并解决开发中遇到的问题。 9. **持续更新与支持**:作为开发版本,Telerik UI会定期发布更新,修复已知问题,添加新功能,并提供...

    Ajax动态库 直接调用

    - **跨域问题**:Ajax请求可能遇到同源策略限制,需要了解CORS(跨源资源共享)机制来解决。 - **缓存策略**:可以通过设置HTTP头来控制Ajax请求是否缓存,以提高性能。 - **预加载和懒加载**:对于大型应用,...

    ajax新手快车道 超经典

    **Ajax新手快车道:超经典** Ajax,全称Asynchronous JavaScript and...- Stack Overflow:解决Ajax编程中遇到的问题,学习社区经验。 通过深入学习和实践,你可以熟练掌握Ajax技术,提升Web应用的交互性和用户体验。

Global site tag (gtag.js) - Google Analytics