`
zisefeiniao
  • 浏览: 175087 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论
阅读更多
  一开始我以为只要多做项目,才能够进行更好的技能提升,但是在MLDN的学习中,我发现了,多做项目不如把一个项目做精,而且要非常牢固的掌握一个项目中可能会产生的各个问题,以及这些问题是如何解决的,今天班里的一个同学说,他一个朋友去报了什么尚学堂,那里面要做好多项目,所以晚上就搜索了一下,才发现那里还真的够假的,一共做那么多项目,怎么可能做完,估计也就是一些特别小的项目,哎,真不知道这年头的人是怎么了,这么点小问题都看不出来,AJAX改写的项目很有意思,希望大家喜欢。











No.
内容

01
今天所讲的知识点(如果表格不够,可在备注中继续填写)


主要的知识点
A
AJAX概述

B
AJAX的使用

C
AJAX的具体使用案例

D
 

E
 

02
我对知识点的分析(如果表格不够,可在备注中继续填写)


每个知识点的分析
A
AJAX概述

AJAX  à  Asychronized Javascript And Xml  (异步处理的Javascript And Xml)

之前的MVC执行过程



使用AJAX后执行过程:在进行Servlet中的操作时,JSP同时也可以继续进行操作,当Servlet执行完后,将结果放回JSP页面





B
AJAX的使用

一、AJAX的使用说明



1、AJAX是通过一个JavaScript对象来完成异步操作,再通过JavaScript控制<span>或<div>等页面元素来完成信息显示。

2、AJAX中的核心对象为XmlHttpRequest,该对象不同的浏览器创建方式也不同。

3、可以使用AJAX完成的功能:

(1)验证用户名(注册用户时)

(2)联动菜单(省市连动)

(3)分页

(4)树型列表

(5)搜索引擎中的相关关键字查询



二、AJAX的使用步骤

1、建立数据库

2、编写DAO

3、建立页面

<center>

<form action="" method="post" onSubmit="return check();">

用户ID:<input type="text" name="userid" onblur="checkUserid(this.value);" >

<span id="userMessage"></span> <br>

真实姓名:<input type="text" name="username" > <br>

密码:<input type="password" name="password" > <br>

<input type="submit" value="注册" >

</form>

</center>




4、编写javaScript方法,该方法为使用AJAX的主要方法

例如:



var xmlHttp;  //定义为全局变量

var userFlag;//保存用户名是否重复的结果,以备表单提交时检查

            

function createXmlHttp(){

// 判断浏览器,不同的浏览器生成AJAX核心对象的方法不同

       // 市面上浏览器的种类很多,但其内核基本就分为两类,IE和FireFox,腾讯、遨游其内核都是IE,世界之窗等其他比较杂的大多属于FireFox

                   

       if(window.XmlHttpRequest){

              // 表示使用的是FireFox等浏览器

              xmlHttp=new XmlHttpRequest();

       }else{

              // 表示使用的是IE等浏览器

              xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

       }

}

在页面元素的相应事件中调用该处方法

function checkUserid(userid){

// 使用AJAX都有四个步骤(2,3的顺序可变,其他不可变)

// 1、生成AJAX的XmlHttpRequest核心对象

// 此处调用createXmlHttp()方法即可

       createXmlHttp();

                   

       // 2、设置进行验证用户名的Servlet路径

       xmlHttp.open("POST","UserServlet?operateType=check&userid="+userid);

// post大小写均可

       //3、设置回调方法(即当从Servlet中回来,调用的JS方法,用来接收检验结果),此处是设置方法,不能方法名后面加(),否则成调用了

       xmlHttp.onreadystatechange=checkUseridCallback;

                   

       //4、提交,将信息发送到Servlet中进行验证

       xmlHttp.send(null);

}

执行完Servlet后,该方法被调用,和当前jsp进行衔接

function checkUseridCallback(){

       // 判断当前Servlet的进行状态

       // 一共有四个状态,不同的浏览器支持的状态不同,一般3、4状态基本都支持

     

       if(xmlHttp.readyState==4){

              var flag=xmlHttp.responseText; // 接收传回的信息,为文本格式

              if(flag=="true"){

                     document.getElementById("useridcheck").innerHTML="<font color='red'>该用户名已存在</font>";

                     userFlag=false;// 用户名重复,表单不可提交

              }else{

                     document.getElementById("useridcheck").innerHTML="<font color='blue'>该用户名可以使用</font>";

                     userFlag=true;// 用户名可用,表单可提交

              }

       }

}


5、编写相应的Servlet

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {



                   // 接收参数

                   String operateType = request.getParameter("operateType");

                   if ("check".equals(operateType)) {

                            response.setContentType("text/html");

response.setCharacterEncoding("GBK");

                            PrintWriter out = response.getWriter();

                            String userid = request.getParameter("userid");

                            // 验证

                            boolean flag = false;

                            try {

                                     flag = DAOFactory.getUserDAOInstance().checkUserId(userid);

                            } catch (Exception e) {

                                     e.printStackTrace();

                            }

                          

         // 通过out对象输出的方式返回页面,不要用println,因为会把换行符也传回去,到时候不好判断

                            out.print(flag);

                          

                            // 关闭

                            out.close();

                          

                            // 一定不能跳转

                   }

}






C
(1)验证用户名(注册用户时)参见项目

(2)联动菜单(省市连动)参见项目

(3)分页

(4)搜索引擎中的相关关键字查询



D
 
 

个人总结


当在PC-Serving项目中使用AJAX时,例如在任务管理的添加任务页使用

当某个企业被选择时,客户名称文本框、联系方式文本框、区域下拉列表、客户地址文本框,以及预估时间标签和预估费用标签的值随着该企业的信息相应改变

发现从Servlet中返回时,因为其返回的数据需要分散到页面的各个地方,不是一个span或div中,所以无法解决

分享到:
评论

相关推荐

    js写的ajax核心构造和改写alert函数

    在实际项目中,你可能需要结合库如jQuery或使用现代浏览器提供的Fetch API来简化这部分工作。不过,理解这些基础知识对于深入理解JavaScript和网络交互至关重要。通过实践和扩展,你可以构建更复杂、功能更丰富的...

    一个用ajax作的树插件,可以加载到工程里进行改写成自己的树jaca.zip

    在IT行业中,树形插件是一种常见的用户界面元素,它用于展示层次结构的数据,例如文件系统、组织结构...在实际开发过程中,掌握JavaScript、C#和Ajax的结合使用是非常重要的,这样能更好地利用这种插件来满足项目需求。

    Ajax的小封装 get,post请求

    在Web开发中,Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。...根据项目需求和浏览器兼容性,可以选择合适的封装方式。

    改写的别人的购物车模板

    在这个项目中,使用了AJAX(Asynchronous JavaScript and XML)技术来实现异步通信,这使得购物车界面可以在不刷新整个页面的情况下与服务器交换数据并更新内容。通过发送JSON(JavaScript Object Notation)数据,...

    以vue框架改写原先的博客

    本项目旨在将原有的博客应用改写为基于Vue.js的版本,以利用Vue的优势,提升用户体验和开发效率。 在改写过程中,我们需要理解Vue的核心概念和特性: 1. **Vue实例**:Vue应用始于创建一个Vue实例,它是整个应用的...

    ASP.NET AJAX入门系列1.doc

    值得注意的是,ASP.NET AJAX的前身是Atlas项目,随着技术的发展和改进,很多早期的Atlas概念和实现已被弃用或改写。学习ASP.NET AJAX时,建议参考最新的官方文档和教程,避免依赖过时的信息。 对于熟悉Atlas的...

    jQuery改写上一个城市的三级联动(解决浏览器兼容bug)

    项目使用的开发技术:hibernate+struts+ajax+jQuery+mysql 与上一个三级联动不同的是:上一个项目是使用dom技术编写的整个js代码,存在一定的不足与bug,即浏览器不兼容,只在火狐中有成效,IE、opera、google等都...

    AjaxTags(ajax标签)

    AjaxTags项目是在现有的Struts ... AjaxTags改写了Struts标签类org.apache.struts.taglib.html.FormTag和org.apache.struts.taglib.html.BaseHandlerTag,并使用Struts的plugin技术,使得Struts提供了对AJAX的支持。

    传智播客网上书城ssh2改写

    【网上书城SSH2改写】项目主要涉及的是基于Spring、Struts2和Hibernate这三大主流Java开源框架的整合应用,通常称为SSH2。这个项目是传智播客教育机构的一个教学实例,旨在帮助学习者深入理解如何在实际开发中运用...

    自己改写过的图片上传展示组件

    5. **文件上传**:通常使用Ajax或Fetch API异步上传图片,以保持页面的交互性。服务器端可能需要处理这些文件,例如存储到云存储服务或者进行缩略图生成。 6. **展示已上传图片**:组件还负责在前端展示已经上传...

    jquery序列化form表单使用ajax提交后处理返回的json数据

    本篇文章将详细讲解如何使用jQuery序列化form表单,然后通过Ajax提交这些数据,并处理返回的JSON数据。 首先,让我们理解“序列化”这个概念。在Web开发中,序列化是指将表单数据转换为字符串格式,这样可以方便地...

    JS图片翻页 可动态改写数据库

    本项目“JS图片翻页 可动态改写数据库”则聚焦于利用JS实现图片的动态展示以及与数据库的交互功能,这在网页设计和开发中是非常实用的技术。 首先,我们来详细了解一下JS图片翻页。这是一种常见的网页动态效果,...

    基于web的小型购物车的实现

    此外,使用Jquery可以轻松实现购物车商品的增删操作,提供流畅的用户交互体验。 【Ajax】(异步JavaScript和XML)技术使得网页可以不需重新加载整个页面的情况下,从后台服务器获取新数据并更新部分页面内容。在...

    基于JQuery改写的一个[可调列宽TABLE插件]

    标题中的“基于JQuery改写的一个[可调列宽TABLE插件]”指的是一个使用JavaScript库JQuery开发的,能够允许用户自定义表格(TABLE)列宽的插件。这样的插件在网页交互中十分常见,它提高了用户体验,让用户可以根据...

    通过XMLHttpRequest和jQuery实现ajax的几种方式

    例如,上面的示例使用jQuery可以改写为: ```javascript $(document).ready(function () { $("#Button1").click(function () { $.ajax({ type: "POST", url: "Handler.ashx", success: function (data) { $(...

    【Asp.Net MVC 入门Hello World】一步一步改写简单的登录注册(一)

    Asp.Net MVC 是微软开发的一款用于构建Web应用程序的框架,它基于Model-...本教程只是一个起点,随着学习深入,你可以探索更多Asp.Net MVC的功能,如路由、过滤器、 Areas、Ajax支持等,进一步提升你的Web开发技能。

    jquery资源包

    在“用于改写登陆框的资源包”中,jQuery将被用来优化登录表单的交互逻辑,如动态验证、错误提示等,同时通过Ajax技术实现无刷新的数据提交,提高用户体验。 Ajax是Asynchronous JavaScript and XML的缩写,虽然...

    ajax异步处理POST表单中的数据示例代码

    在网页开发中,异步处理是一种常见的技术,它允许用户在不刷新整个页面的情况下与服务器进行交互。Ajax(Asynchronous JavaScript ...但是,理解jQuery中的Ajax基础仍然是十分必要的,因为它在许多现存项目中广泛使用。

    kindeditor-阿里OSS上传PHP版

    【描述】提到的"自己改写项目中使用"表明这个版本可能包含了开发者针对特定项目需求的定制化修改,使得与原版KindEditor相比,更适应某些特定场景。另外,提及"另有EXTJS版kindeditor类如有需要请留言"意味着该...

    js TreeMenu 异步加载树形控件

    jQuery 是一个广泛使用的 JavaScript 库,它简化了 DOM 操作、事件处理、动画以及Ajax交互。在本例中,通过 jQuery 对原始的 TreeMenu 控件进行改写,实现异步加载功能。jQuery 提供的 AJAX 方法如 `$.ajax()` 或 `$...

Global site tag (gtag.js) - Google Analytics