jsp+ajax_javascriptjavascript日

jsp+ajax_javascriptjavascript日明后两天梁言兵老师来讲Ajax及其最近作过的一个真实的Ajax项目,所以,我今天讲解梁老师的课程所需要的一些前置知识。因为大家对Javascript不是很熟悉,所以我首先讲解Javascript的DHTML功能。本来入学考试要求大家很好地掌握Javascript的,但是大家都不能理解我们的苦衷,并没有专心去对待Javascript。想想我前两年强调javascript和css的重要性时,一些培训中

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

明后两天梁言兵老师来讲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=”#” οnclick=”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给视图。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/194910.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • sublimetext3激活码(注册激活)

    (sublimetext3激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlS32PGH0SQB-eyJsa…

  • golang激活码2021_通用破解码

    golang激活码2021_通用破解码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • JAVA-常用API之StringBuilder

    JAVA-常用API之StringBuilderJAVA-常用API之StringBuilder

  • Matlab 计算均方误差MSE的三种方法

    Matlab 计算均方误差MSE的三种方法Matlab计算均方误差MSE的三种方法数据说明:ytest测试集y,真实的y值,是一维数组;ytest_fit基于测试集x预测的y值,是一维数组;test_error是预测误差。第一种方法直接使用matlab中的mse函数,亲测可用。/*ytest测试集y,真实的y值,是一维数组ytest_fit预测的y值,是一维数组test_error是预测误差*/test_error=ytest-ytest_fit;test_mse=mse(test_er

  • 项目管理第五章项目范围管理内容_项目范围管理在规划过程组四个模块

    项目管理第五章项目范围管理内容_项目范围管理在规划过程组四个模块项目管理第五章项目范围管理项目范围管理:范围管理确保项目做且只做所需的工作,项目范围管理过程包括:规划范围管理:为记录如何定义、确认和控制项目范围及产品范围,而创建范围管理计划的过程。收集需求:为实现项目目标而确定、记录并管理相关方的需要和需求的过程。定义范围:制定项目和产品详细描述的过程。创建WBS:将可交付成果和工作分解为较小、易于管理的组建过程。确认范围:正式验收已完成的项目可交付成果的过程。控制范围:监督项目和产品的范围状态管理范围基准变更的过程。范围管理的核心理念:

  • 获取token

    今天咱们来说说怎么通过代码来获取token获得token的话首先会有甲方提供一些数据给你们类似于这种,token的入参和出参。接着咱们就可以写代码了。/** *获取token *@return */ publicStringgetToken(){ StringshortUrl=WEIXIN_SHORT_TOKEN; //这是一个token的入参url只是…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号