`
逆风的香1314
  • 浏览: 1440547 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

10月20日Ajax与jsp培训日记

阅读更多

明后两天梁言兵老师来讲Ajax及其最近作过的一个真实的Ajax项目,所以,我今天讲解梁老师的课程所需要的一些前置知识。
因为大家对Javascript不是很熟悉,所以我首先讲解Javascript的DHTML功能。本来入学考试要求大家很好地掌握Javascript的,但是大家都不能理解我们的苦衷,并没有专心去对待Javascript。想想我前两年强调javascript和css的重要性时,一些培训中心的人居然对此不屑一顾,当他们咨询学员时,也以此来攻击我,学员们也对这些培训中心的蛊惑深信不疑!随着Ajax的流行,这些人又跟风觉得Javascript重要了,现在同学们应该能静下心来去好好学习Javascript了。
通过DHTML和Javascript可以实现网页显示的局部更新,先用一个动态生成表格内容的Javascript来讲解,两种方式:
表格专用的数据模型来实现:
<Script   language=javaScript>  
  function   LianJie()  
  {  
  //selValue=mainTab.rows[0].cells[0].childNodes[0].innerText;  
  //selValue=window.sel.innerText  
  selValue=window.sel.options[window.sel.selectedIndex].text  
  texValue=window.text1.value;  
  innValue=selValue+texValue;  
  newRow=window.mainTab[1].insertRow()  
  alert(newRow);
  newCell=newRow.insertCell()  
  newCell.innerText=innValue;  
  }    
  </Script>  
  <Table   id="mainTab">  
  <TR>  
  <TD>  
  <select   style="width:200px;"   id="sel"   Name="sel">  
  <option>sdfsdfsdfdsfsdf</option>  
  <option>1111111111111</option>  
  <option>222222222222</option>  
  </select>  
  </TD>  
  <TD>  
  <input   type=text   Name="text1"   id="test1">  
  </TD>  
  <TR>  
  <input   type=button   value="连接"   onClick=LianJie()>  
  <Table>  
  <Table   border=1   id="mainTab">  
  </Table>
通过标准的DOM对象模型来实现:
<html>
  <head>
    <title>MyHtml.html</title>
   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
   
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  <SCRIPT type="text/javascript">
   function addRow()
   {
    alert("hehe");
    var tbody = document.createElement("tbody");
    var tr = document.createElement("tr");
    var td = document.createElement("td");
    var value = document.createTextNode("1111");
    td.appendChild(value);
    tr.appendChild(td);
    tbody.appendChild(tr);
    document.getElementById("t1").appendChild(tbody);
    //background="#FF0000";
    //.addChild(obj);
   }
 
  </SCRIPT> 
  </head>
 
 
  <body>
    This is my HTML page. <br>
    <TABLE id="t1">
    <tr><td>2222</td></tr>
    </TABLE>
    <a href="#" onclick="addRow()">test</a>
  </body>
</html>

有了动态生成表格的直观印象后,我再告诉大家动态需要的数据不是直接从网页的文本框中直接获取,而是从Web服务器上去获取。不能让浏览器直接去访问web服务器,因为这样将得到一个新的网页,而不是继续保持原来的网页。要保持原来的网页,让javascript在原来的网页中继续运行,应该使用网页中的一个对象去连接web服务器,例如applet,论坛发帖也是一个不错的ajax应用。
在javascript可以直接使用一个XMLHttpRequest对象,来向Web服务器发送请求和接受Web服务器返回的结果,HTML、CSS、JavaScript、XMLHttpRequest等基本知识的结合使用就是Ajax。
接着通过一个简单的例子讲解了XMLHttpRequest的应用。
什么时候用Ajax,在一个页面中提交请求后,服务器回复的页面还是原来的,只是数据不同,或者是对页面中的某些字段提前进行校验。

讲解了jsonrpc这种Ajax框架的作用和运行原理,它封装了底层通讯和Javascript对象的序列化和反序列化。

jsonrpc的客户端的构造方法先向服务器发请求,获得有哪些对象和方法,然后将这些对象和方法增加到客户端对象上,所以,客户端可以调用jsonrpcclient.hello.sayHello这样的方法。有时间的话,参照这个写一个能动态向对象增加方法的实验例子。

根据王涛的提问,详细讲解url编码(大家对这块实际很糊涂,出乎我的意料!),为了便于大家理解,我先从
base64编码开始讲起,接着再讲url编码。

http://www.baidu.com/s?wd=ajax+%BF%F2%BC%DC&cl=3
reqeust.getParameter("wd")得到的不是ajax+%BF%F2%BC%DC串,
getParameter返回的是一个字符串,java串是unicode码.怎样把ajax+%BF%F2%BC%DC串变成真正的串,是getParamter的内部问题了.但它内部实在是没有做得很好。因为HTTP协议中没有办法说明URL编码时的字符集编码,我预料在下一代的HTTP协议中应该增加这方面的功能。

想到一个学员面试时的考题:"a中b国"的GB2312编码是一个字节数组,从这个数组中识别出有几个字符?首先要明白英文字符的最高bit位为0,中文字符的最高bit位为1。示例代码:
byte buf[] = "a中b国".getBytes("GB2312");
int count = 0;
for(int i=0; i<buf.length; i++)
{
 count++;
 if((buf[i] & 0x80) != 0)
 {
  i++;
 } 
}

因为梁言兵老师的项目中要用到jsp,我参照《深入体验Java Web开发内幕》的书稿给大家先简单过了一下jsp和jsp中如何使用JavaBean。注重强调了JSP的视图作用,尽量将jsp放在WEB-INF或其子目录中,why?JSP只作为视图组件,不要在其中编写业务逻辑,例如,不要访问数据库。但JSP页面中可以有显示逻辑。注意区分视图model和业务model的区别,用TreeMode来理解,业务模型给TreeMode,TreeMode给视图。

 

分享到:
评论

相关推荐

    Java Ajax分页,jsp ajax分页

    Java AJAX(Asynchronous JavaScript and XML)分页与JSP(JavaServer Pages)相结合,可以提供无需刷新整个页面即可动态加载更多内容的能力,提高用户体验。本教程将深入探讨如何使用AJAX、JavaScript以及MySQL...

    ajax与jsp清除缓存

    ### JSP与缓存清除 在JSP环境下,同样需要关注缓存问题,尤其是对于动态生成的内容。以下是一些常用的JSP缓存清除策略: 1. **设置响应头**:通过设置`response.setHeader()`方法,可以控制HTTP响应头,从而控制...

    Ajax+JSP.rar_ajax_ajax jsp download_java ajax jsp_jsp ajax_jsp在线

    当Ajax与JSP结合时,可以在客户端使用Ajax进行异步请求,而后端由JSP处理请求并返回数据,两者配合能构建高效且响应快速的Web应用。 **Ajax的工作原理:** 1. 用户触发一个Ajax事件,例如点击按钮。 2. JavaScript...

    Ajax的JSP例子

    这个例子是基于JSP(JavaServer Pages)实现的,展示了如何利用Ajax与服务器进行异步通信,从而提高用户体验。下面我们将深入探讨这个Ajax JSP例子中的关键知识点。 1. **XMLHttpRequest对象**: 在JavaScript中,...

    ajax 和jsp最简单实例

    总结起来,这个例子展示了如何使用Ajax与JSP结合,实现在不刷新页面的情况下进行后台数据验证。Ajax提供了无刷新用户体验,而JSP处理了服务器端的业务逻辑和数据验证。这是一个基础但实用的Web开发技术组合,对于...

    ajax+jsp局部页面刷新

    通过结合Ajax与JSP技术,开发者可以实现在不完全重载整个页面的前提下,仅更新特定部分的数据,这一过程不仅提高了网页响应速度,还优化了用户的交互体验。本文将深入探讨如何运用Ajax与JSP实现局部页面的自动刷新,...

    Ajax+JSP网站开发从入门到精通

    《Ajax+JSP网站开发从入门到精通》的源代码,全书共分为16章,包括JSP的基础知识、JSP访问外部数据、JSP高级技术、Ajax概述、Ajax相关技术、Ajax开发基础、Ajax开发模式、Ajax框架、Ajax常用技巧。本书最后介绍了6个...

    ajax 与jsp 实例

    【Ajax与JSP实例详解】 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新。JSP(JavaServer ...

    Ajax+jsp注册验证用户

    在IT行业中,Ajax(Asynchronous JavaScript and XML)与JSP(JavaServer Pages)结合使用时,可以实现网页的异步数据交互,提升用户体验。在这个"Ajax+jsp注册验证用户"的示例中,我们将深入探讨如何利用这两种技术...

    ajax+jsp分页控件

    在IT行业中,Ajax(Asynchronous JavaScript and XML)与JSP(JavaServer Pages)结合使用能够创建高度交互且响应迅速的Web应用。这里的“ajax+jsp分页控件”是一种技术解决方案,它允许用户在不刷新整个页面的情况...

    Ajax网站开发典型实例JSP源码包

    在本"Ajax网站开发典型实例JSP源码包"中,我们可以深入学习如何使用Ajax与JavaServer Pages (JSP) 结合,创建高效动态的Web应用。 1. **Ajax基础** Ajax的核心是JavaScript对象XMLHttpRequest,它允许JavaScript在...

    ajax实现jsp页面表格

    通过研究这些文件,初学者可以学习到如何结合AJAX和JSP实现动态表格,以及如何与数据库交互。同时,这也是一个了解前端与后端交互、异步编程和JSON格式的好机会。 总之,"ajax实现jsp页面表格"是一个基础但实用的...

    ajax和JSP实现购物车

    【Ajax与JSP实现购物车】\n\n在Web开发中,购物车功能是一个常见的需求,它涉及到用户选择商品、查看商品数量、调整数量以及结算等操作。在本项目中,“ajax实现购物车,无数据库操作”意味着我们将利用Ajax技术进行...

    AJAX于jsp结合的一个例子

    本例子中,AJAX与JavaServer Pages (JSP) 结合使用,提供了一种高效的方法来提升用户体验,因为用户无需等待整个页面刷新即可获取新数据。 首先,让我们深入了解一下AJAX的工作原理。AJAX的核心是XMLHttpRequest...

    超简单的ajax+jsp实现2级联动!!

    在这个"超简单的ajax+jsp实现2级联动"的例子中,我们将探讨如何利用AJAX(Asynchronous JavaScript and XML)技术和JavaServer Pages (JSP)来实现这种功能。 首先,我们需要了解AJAX的基本原理。AJAX允许网页在不...

    Jquery+ajax+jsp分页

    Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页的技术。在分页中,Ajax允许我们异步地请求下一页或上一页的数据,使用户无需等待整个页面刷新就能看到新...

    Ajax+jsp无刷新验证码实例

    Ajax+jsp无刷新验证码实例 包含 :Ajax+jsp无刷新验证码实例.docx img.jsp net.js num.jsp random.jsp

    ajax和JSP实现文件上传

    Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术,它允许在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容。JSP(JavaServer Pages)是Java的一个动态网页技术,可以将...

    ajax+jsp digg 掘客

    这个系统的核心是利用Ajax(异步JavaScript和XML)技术与JavaServer Pages(jsp)结合,模拟Digg网站的投票机制,让用户能够“顶”或者“踩”内容,从而对文章或信息进行推荐。 【Ajax】Ajax是一种在无需刷新整个...

    ajax +jsp 页面跳转

    ajax+jsp 带参数的页面跳转。

Global site tag (gtag.js) - Google Analytics