`
GODdaughter
  • 浏览: 105474 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

jsp-javascript-ajax的联合使用

阅读更多
一个jsp-javascript-ajax间的调用竟让我写了三天,最后朋友的二分钟就给搞定了,真的把我给郁闷坏了。这说明一个问题学习不扎实,不追根求底,(还有最近比较毛躁,没有踏实下心来,只想着完成任务赶紧找工作了),在一个就是心态问题,起初就把他给想的太复杂了,其实有的时候就是这样,程序吗掌握在人的手中,灵活一些,那样你会更快乐。

呵呵呵,记得做什么事情不要总是一味的要等待看结果,在这等待中所做的细节会比最后的结果更美好,真的,在你期待好的结果出现的时候其实你正错过了这过程的完美,真的是这样,我奉劝向我一样的朋友,都能够好好的静下心来想想这个事情,可不要小看这个问题哦,不信等你遇到了你会觉得真的要命,呵呵呵先不感慨了,咱们还是好好总结一下真正的程序经验吧!

我给大家看看我的源代码(部分内容),共分三部分
addOrderForm.jsp
orderJS.js
returnOrderInfo.jsp


addOrderForm.jsp

td1.innerHTML = curCount; 

td2.innerHTML = '<input type="text" name="spbm1" id="spbm1'+curCount+'" size="5" value="" readonly>';

td3.innerHTML = '<input type="text" name="spms1" id="spms1'+curCount+'" size="46" value="" readonly>';

td4.innerHTML = '<select name="splb1" id="splb1'+curCount+'" style="width:6em" onchange="MulSelect(\'1\',\''+curCount+'\')"></select>';

td5.innerHTML = '<select name="sppp1" id="sppp1'+curCount+'" style="width:6em" onchange="MulSelect(\'2\',\''+curCount+'\')"></select>';

td6.innerHTML = '<select name="spgg1" id="spgg1'+curCount+'" style="width:6em" onchange="orderInfo('+curCount+')"></select>';

td7.innerHTML = '<input type="text" name="sl1" id="sl1'+curCount+'" size="1" value="" maxlength="4">';

td8.innerHTML = '<input type="text" name="dw1" id="dw1'+curCount+'" size="1" style="width:1.5em;" value="">';

td9.innerHTML = '<input type="text" name="dj1" id="dj1'+curCount+'" size="2" value="">';

td10.innerHTML = '<input type="text" name="zk1" id="zk1'+curCount+'" size="2" value="" onblur="countJE(this)">';

td11.innerHTML = '<input type="text" name="je1" id="jr'+curCount+'" size="6" value=""  onblur="countZK(this)">';

td12.innerHTML = '<input type="text" name="bz1" id="bz1'+curCount+'" size="18" value="">';

td13.innerHTML = '<span onClick=\'deleteTR("tr'+curCount+'",0)\' style="cursor:pointer">删除</span>';


orderJS.js




/*此javascript用于订单信息根据类别,品牌,规格的联动而做出其它字段的显示*/

/*用ajax返回一个url*/
function fnGetURLByAjaxReturn(url)
{
/*定义一个标记*/
var http_request = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {alert("错了吧");}
}
}
if (!http_request) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}

/*我将发送的方式,发送的地址,发送是否同步装进open中*/
http_request.open("GET", url, false);

/*将信息发送指定地址*/
http_request.send(null);


var reValue = "";
try{
/*可以获取到从指定地址(addOrderForm.jsp)返回的多有text信息*/
var reValue = trim(http_request.responseText);
}catch( xe){
alert("Exception: " + xe);
}
return reValue;
}

/*去掉前后空格*/
function trim(str){  //删除左右两端的空格
return str.replace(/(^\s*)|(\s*$)/g, "");
}



returnOrderInfo.jsp


<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" language="java"%>
<%@ include file="/basicLabel.jsp" %>

<%--注意g.recycleFlag=0的情况 --%>

<%--看看from语句,不要单单写上某个表,既然了就一定要有一个关联关系,正如g.goodsID=p.goodsID否则会出现笛卡尔及 --%>
<sql:query var = "selOrderInfo" dataSource="${connectDBSource}">
select g.serialNum,g.fullName,p.price,g.units,p.discount,d.text,g.category,g.brand,g.sizeNum,g.goodsID,p.goodsID
        from goods g,price p ,datadictionary d
        where g.category='<%=request.getParameter("splb1") %>'
        and g.brand = '<%=request.getParameter("sppp1") %>'
        and sizeNum='<%=request.getParameter("spgg1") %>'
        and g.units = d.keyName
        and g.goodsID=p.goodsID
</sql:query>
<c:forEach var = "row" items="${selOrderInfo.rows}">
<c:out value="${row.serialNum}" />,<c:out value="${row.fullName}" />,<c:out value="${row.price}" />,<c:out value="${row.text}" />,<c:out value="${row.discount}" />,<c:out value="<%=request.getParameter("curCount") %>"/>
</c:forEach>



我要说的问题是在这
td4.innerHTML = '<select name="splb1" id="splb1'+curCount+'" style="width:6em" onchange="MulSelect(\'1\',\''+curCount+'\')"></select>';

td5.innerHTML = '<select name="sppp1" id="sppp1'+curCount+'" style="width:6em" onchange="MulSelect(\'2\',\''+curCount+'\')"></select>';

td6.innerHTML = '<select name="spgg1" id="spgg1'+curCount+'" style="width:6em" onchange="orderInfo('+curCount+')"></select>';

这几行信息主要是处理了一下三级联动,而当我选择完spgg1里面对应的值时,我要做的一件事是通过这三个联动信息显示出表中其它的信息,在这个过程中用到了ajax的问题。

我在spgg1里面onchange方法中必须跟传一个动态变量(因为我的订单表的每次联动的具体某条信息是根据curCount决定的),这里要注意一个问题就是当我们在处理问题时一定要从最更本的出发,既然我splb1,sppp1,spgg1的联动是根据我最后触动的spgg1决定的到底我触动的是那条信息那么我们就应该将我们触动的这条信息保存下来(一遍以后使用,当我的curCount是1是证明是第一条信息,为2时是第二条信息,为3是是第三条信息,那么4时呢........),那么我的其它表的信息根据谁决定添加到哪个联动相应的条上呢,splb1+curCount,sppp1+curCount,spgg1+curCount的变化知道到底是哪条信息触动的了,也知道返回的信息添加到哪里去了,呵呵呵。


在这个过程中我们用到了一个js代码(在addOrderForm.jsp中应用了相关的js,并且调用了其中负责主操作的代码方法 fnGetURLByAjaxReturn(url)),里面使用了ajax的内容,这个ajax的作用主要是负责发送一个请求(url,还有我们选定的信息splb1+curCount,sppp1+curCount,spgg1+curCount的信息)到服务器端,服务器端(我们写了一个程序returnOrderInfo.jsp负责查询,显示[是利用C:OUT的方式将信息输出到此页面,ajax会将此页面返回,然后我们就能够得到这个页面的所有的信息了,然后我们在得到的页面addOrderForm.jsp中利用split的方式分割,最后将每个信息添加到相应的位置上])。

在这一段 叙述中我们当注意的是有几点1。我们要使用js,那么我们就必须引入2.既然要使用引用了还不行,调用该方法,呵呵呵3.js(ajax代码)只做了一下客户端和服务器段查询了信息的操作,在此过程中js代码只是负责了一下连接的作用,我们没必要在js上大动干戈,只要在addOrderForm.jsp中调用js方法的时候把我们要处理的参数一并带上就可以了,到了处理页面用request.getParameter("")的方法处理就可以了,当信息是怎么返回的我们也不用管,只知道这样调用之后js(ajax)中会给我们返回处理页面上的值。3在得到了返回页面的值时我们用到了split方法,呵呵split方法和我们平时用的split方法是一样的,然后我们截取,最后通过document.getElementByID("").value=newRetVal[i]的方法付到相应位置上就可以了。

总结:ajax在javascript和jsp间只做了一个连接,但是很奇妙的,说了这么多不知道你明白了没有,还是更晕了,呵呵没关系的好好体会一下吧,实在不明白再问我也可以啊。










分享到:
评论
1 楼 tanglei198577 2008-07-02  

相关推荐

    JSP-Servlet-Ajax考题共享

    【JSP-Servlet-Ajax 考题解析】 在IT领域,JSP(JavaServer Pages)、Servlet和Ajax是Web开发中的关键技术。本篇将详细解释这些知识点,以帮助你在面试或学习过程中更好地理解。 1. **静态网页与动态网页**: - ...

    jsp-ajax实例

    在Web开发中,JSP(JavaServer Pages)和AJAX(Asynchronous JavaScript and XML)是两种广泛使用的技术。JSP是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,实现服务器端的数据处理。而AJAX则是一种在...

    jsp-Ajax_Login_songxv7_jsp_

    【标题】"jsp-Ajax_Login_songxv7_jsp_" 指的是一份使用JSP和Ajax技术实现无刷新登录的示例项目。在这个项目中,开发人员 "songxv7" 展示了如何在JSP页面上集成Ajax,以提供更流畅的用户体验,避免在用户进行登录...

    1.13 使用JavaScript JSP+AJAX

    1.13 使用JavaScript JSP+AJAX1.13 使用JavaScript JSP+AJAX1.13 使用JavaScript JSP+AJAX

    5 JSP-Ajax.zip

    **JSP(JavaServer Pages)和Ajax(Asynchronous JavaScript and XML)是Web开发中的两种关键技术,主要用于构建动态、交互式的Web应用。本教程适合初学者,旨在帮助理解这两种技术的基本概念和实现方式。** **JSP...

    jsp-ajax_demos_JSP源码_

    1. **简单的Ajax请求**:展示如何使用JavaScript(可能包括jQuery库)创建XMLHttpRequest对象并发送GET或POST请求到服务器上的JSP页面。 2. **服务器端响应处理**:演示JSP如何接收并处理来自Ajax请求的数据,可能...

    JSP&Servlet&JavaScript&Ajax&jQuery源代码

    这些文件名称列表揭示了一个关于Web开发的教程结构,主要涵盖了JSP(JavaServer Pages)、Servlet、JavaScript、Ajax和jQuery这五个关键的技术。接下来,我们将详细探讨这些技术及其在实际应用中的重要性。 **JSP...

    JSP预备知识-JavaScript

    JavaScript是一种广泛应用于网页和网络应用开发的轻量级脚本语言。...JavaScript的主要特点包括: 1. **解释型语言**:与编译型语言如...了解和掌握JavaScript的基础知识,对于学习和使用JSP等服务器端技术也至关重要。

    Jsp中AJAX的简单使用

    1. **引入库**:首先,你需要在JSP页面中引入jQuery或原生JavaScript的XMLHttpRequest对象,通常使用jQuery简化AJAX操作。 2. **创建AJAX请求**:创建一个新的XMLHttpRequest对象或者使用jQuery的`$.ajax()`方法。 ...

    jsp-ajax的三级联动(省市区mysql数据库表)

    3. **Ajax请求**:使用JavaScript编写Ajax代码,向服务器发送GET或POST请求,携带当前选中的省或市的ID,请求相应级别的区域数据。 4. **服务器端处理**:在JSP中,接收Ajax请求,查询数据库,根据`parent_id`获取...

    JavaScript JSP XML Ajax

    JavaScript、JSP、XML和Ajax是Java Web开发中的关键技术,它们在构建动态、交互式的Web应用程序中发挥着至关重要的作用。下面将详细阐述这些技术及其相互间的关联。 **JavaScript** 是一种轻量级的解释性编程语言,...

    基于xml、jsp、javascript页面设计ajax应用好处

    ### 基于XML、JSP、JavaScript页面设计的AJAX应用优势 #### 一、引言 随着互联网技术的不断发展,用户对于网页交互性的需求日益增加。传统的Web应用程序在处理用户请求时,通常需要重新加载整个页面,这不仅降低了...

    ko.rar_ajax_ajax jsp_javascript_jsp

    本实例“ko.rar_ajax_ajax jsp_javascript_jsp”显然是关于如何在JSP(JavaServer Pages)环境中运用Ajax技术的教程,旨在帮助学习者更好地理解和实践Ajax与JSP的结合。 首先,让我们详细了解一下Ajax的基础。Ajax...

    JSP-Example.rar_javascript

    6. **AJAX(异步JavaScript和XML)**:在JSP中利用JavaScript实现局部刷新,提高用户体验。 7. **错误处理和调试**:在JSP和JavaScript中设置断点,查看和解析日志,以找出并修复问题。 8. **页面导航和路由**:使用...

    利用ajax和jsp,JavaScript实现的注册系统

    在IT领域,尤其是在Web开发中,利用Ajax、JSP(JavaServer Pages)和JavaScript构建注册系统是一项基础且重要的技能。这个“luckregister”项目显然旨在教授开发者如何将这些技术结合起来,创建一个用户友好的前端...

    struts-ajax.zip_ajax struts _javascript_struts ajax_struts-aj_ti

    4. 在JSP页面中使用JavaScript或jQuery进行Ajax调用,以及处理返回的结果。 5. 如何设计和组织MVC架构,使得Struts和Ajax能够有效地协同工作。 通过深入研究这个示例,你可以更好地理解和掌握Struts与Ajax的结合...

    基于jsp-ajax的网上书城.doc

    - **AJAX(Asynchronous JavaScript and XML)**:AJAX不是一种单一的技术,而是一种利用JavaScript进行异步数据交换和更新页面的技术,无需刷新整个页面即可实现部分内容的实时更新。在本系统中,AJAX提高了用户...

    JSP-char.rar_JSP 聊天_JSP-char_jsp 论坛 聊天室_jsp 聊天室_聊天室jsp

    JSP可以通过AJAX(Asynchronous JavaScript and XML)来实现异步通信,使用户无需刷新页面即可接收新消息。 3. **页面渲染**:JSP模板允许开发者将HTML结构与Java逻辑分离,便于设计和维护。在聊天室界面中,JSP会...

    上传下载仿163网盘无刷新文件上传 for Jsp-fileupload-jsp-project

    5. **前端框架**:尽管未明确指出,但很可能使用了jQuery或其他类似的JavaScript库来简化Ajax调用和DOM操作,提供更流畅的用户体验。 6. **文件管理**:项目可能涉及到文件的存储策略、权限控制、文件重命名、大小...

    JSP+Servlet+AJAX的dao设计模式

    - **使用AJAX发送异步请求**:在JSP页面中,使用JavaScript(如jQuery的$.ajax)发送异步请求,获取Service层处理后的数据。 - **更新页面**:根据AJAX回调的结果,动态更新JSP页面的部分内容。 在`TestJSP`这个...

Global site tag (gtag.js) - Google Analytics