IT兄弟连 JavaWeb教程 AJAX常见问题】的更多相关文章

1  中文乱码问题 ●  POST提交乱码 乱码原因:所有浏览器对Ajax请求参数都使用UTF-8进行编码,而服务器默认使用ISO-8859-1去解码,所以产生乱码. 解决方法:在服务器接收请求参数前设置解析编码. request.setCharacterEncoding("UTF-8"); ●  GET提交乱码 乱码原因:IE浏览器发送请求时,会默认使用GBK字符集对请求参数进行编码,而其他浏览器会使用UTF-8.服务器默认情况下使用的时ISO-8859-1进行解码,所以产生乱码.…
案例需求:客户端发送AJAX请求服务器端获取用户信息的数据. 案例实现: 在服务器端要将Java对象转换成JSON字符串,如果使用拼接JSON字符串的方式非常繁琐,并且非常容易出错,所以一般会借助第三方Jar包来辅助我们把Java对象编程JSON字符串. 在服务器端将单个Java对象转换成JSON字符串使用JSONObject类的静态方法:formObject (Object object),该方法返回一个JSONObject对象,调用该对象的toString()方法即可完成转换. 在客户端将J…
使用Ajax发送GET请求并需要传递参数时,直接在URL地址后拼接参数,格式如下: xhr.open('get','请求路径?参数名1=参数值1&参数名2=参数值2...',true); 使用Ajax发送POSt请求并需要传递参数时,也可以直接在URL地址后拼接参数,这样的话和发送GET请求时没有区别,也可以在send方法中进行参数的传递,而且建议使用send方法进行参数传递,并且需要对请求头做特殊设置,设置Content-Type为URL编码方式,格式如下: xhr.setRequestHea…
Ajax并不是新的技术,而是之前技术的整合,其中包括JavaScript.HTML.CSS.DOM.XMLHttpRequest.XML和JSON是构成Ajax技术体系技术基石. JavaScript:JavaScript是一种弱类型.解释性的.通用的脚本语言,在Ajax技术体系中,它将各个部分粘合在一起.JavaScript定义业务逻辑.操作DOM改变和刷新用户界面.重绘或重组织用户数据.处理用户交互等. HTML:HTML定义了文档的结构,定义了元素之间的包含关系,也定义了文档中可以应用样式…
Ajax是"Asynchronous JavaScript And XML"的缩写(即:异步的JavaScript和XML),是一种实现无页面刷新获取服务器数据的混合技术,Ajax这个概念的最早提出者是Jesse James Garrett.我们知道,互联网最主要的功能在于"资源交换",当初发明互联网的科学家们也是基于这个动机.虽然在互联网中"资源交换"的主体都是计算机.但为了方便交流,我们通常将获取资源的一方称为客户端(主要的工具是浏览器),而…
1.简述对Ajax的理解 AJAX是Asynchronous JavaScript and Xml异步的JavaScript和Xml.它一种用来改善用户体验的技术其实质是使用XMLHttpRequest对象异步地向服务器发请求.服务器返回部分数据,而不是—个完整的页面,以页面无刷新的效果更改页面中的局部内容. 2.什么是JSON,在什么情况下使用? JSON(JavaScript  Object  Notation)是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON…
案例需求:编写用户登陆页面的验证码模块,在用户进行登陆时,输入验证码后不需要点击提交按钮,使用AJAX异步地向服务器发送验证验证码的请求.如果验证码正确,可以点击提交按钮,如果验证码输入错误,提示用户.如果用户看不清验证码,点击验证码还可以刷新出新的验证码. 案例实现: 验证码原理:当页面请求一个验证码的Servlet时,这个Servlet会把数据以图片的形式传给客户端,并把数据以字符串的形式存入了session中.当用户以图片为标准输入对应的验证码并发送给对应的用来验证验证码的Servlet时…
●  $.get()函数 $.get(url,data,function,dataType);参数说明如下: url:请求地址 data:请求参数 dataType:服务器返回的数据类型 function:服务器正常处理时执行的回调函数 ●  $.post()函数 $.post(url,data,function,dataType);参数说明如下: url:请求地址 data:请求参数 dataType:服务器返回的数据类型 function:服务器正常处理时执行的回调函数 ●  $.getJS…
jQuery对AJAX的支持 jQuery对Ajax请求的创建.发送.响应.注册数据处理函数.JSON的解析和缓存以及传参等都进行了相应的封装,同时也考虑了浏览器的兼容性问题. jQuery中对AJAX支持核心函数 jQuery中对Ajax支持的核心函数是$.ajax()函数,$.ajax()函数的代码结构如下: $.ajax({ url : 请求地址, type : 请求方式, async : 默认为true,表示异步请求,false表示同步请求, data : 请求参数, dataType…
POST请求用于向服务器发送应该被保存的数据,因此POST请求天然比GET请求多需要一份需要被保存的数据.那么这些数据应该放在何处呢?毕竟,我们的open()方法接收的三个参数都没有合适的位置. 答案是需要发送的数据会作为send()方法的参数最终被发往服务器,该数据可以是任意大小,任意类型. 使用Ajax发送POST请求需要使用setRequestHeader()方法设置请求头,代码如下: function PostRequest(){ var xhr = null; if(window.XM…
GET请求用于获取数据,有时候我们需要获取的数据需要通过"查询参数"进行定位,在这种情况下,我们会将查询参数追加到URL的末尾,令服务器解析. 使用Ajax发送GET请求非常简单,代码如下: function GetRequest(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject("Microsoft.XMLHttp&…
在com.xdl.servlet包下定义RandomServlet类并HttpServlet类,在该类中生成随机数并发送给客户端.RandomServlet类详细代码如下: package com.xdl.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Random; import javax.servlet.ServletException; import javax.servl…
JSON (JavaScript Object Notation)是JavaScript语言中的一种对象类型.JSON的好处是易于阅读和解析.当客户端和服务器端需要交互大量数据时,使用JSON格式传输可以简化客户端和服务器端的编程. 1  JSON对象格式 ●  JSON对象格式如下: {"key":value,"key":value,...} 例如:{"name":"兄弟连IT教育","subject":…
Ajax的核心是XMLHttpRequest对象(xhr),xhr为向服务器发送请求和解析服务器响应提供了接口,能够以异步的方式从服务器获取新数据. xhr的主要方法有: ●  void open(String method,String url,Boolean async) 用于创建请求,参数说明如下: method:请求方式,字符串类型,如GET.POST.DELETE等. url:要请求的地址,字符串类型. async:是否异步,布尔类型,默认是true,异步的. ●  void send…
●  列出提供下载的文件资源 我们要将Web应用系统中的文件资源提供给用户进行下载,首先我们要有一个页面列出上传文件目录下的所有文件,当用户点击文件下载超链接时就进行下载操作,编写一个ListFileServlet,用于列出Web应用系统中所有下载文件. ListFileServlet的代码如下: package com.xdl.servlet; import java.io.File; import java.io.IOException; import java.util.HashMap;…
在Web应用系统开发中,文件上传和下载功能是非常常用的功能. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载.common-fileupload是依赖于common-io这个包的,所以还需要下载这个包. 开发环境搭建…
感知Session绑定事件的监听器 保存在Session域中的对象可以有多种状态:绑定(session.setAttribute("bean",Object)到Session中:从Session域中解除(session.removerAttribute("bean")绑定:随Session对象持久化到一个存储设备中:随Session对象从一个存储设备中恢复. Servlet规范中定义了两个特殊的监听器接口HttpSessionBindingListener和Http…
监听域对象中属性变更的监听器 域对象中属性的变更的事件监听器就是用来监听ServletContext.HttpSession.HttpServletRequest这三个对象中的属性变更信息事件的监听器. 这三个监听器接口分别是ServletContextAttributeListener.HttpSessionAttributeListener和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的增加.删除和替换的事件,同一事件在…
4  监听HttpSession域对象的创建和销毁 HttpSessionListener接口用于监听HttpSession对象的创建和销毁. 创建一个Session时,激发sessionCreate(HttpSessionEvent event)方法. 销毁一个Session时,激发sessionDestroyed(HttpSessionEvent event)方法. 范例:编写一个MyHttpSessionListener类,实现HttpSessionListener接口,监听HttpSes…
1  基本概念 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行. JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext,HttpSession和ServletRequest等域对象的创建于销…
过滤器案例:字符编码过滤器 在JavaWeb程序开发中,由于Web容器内部所使用编码格式并不支持中文字符集,所以,处理浏览器请求中的中文数据就会出现乱码现象. 图3  无字符编码过滤器 从上图可以看出,由于Web容器使用了ISO-8859-1编码格式,所以在Web应用的业务处理中也会使用ISO-8859-1的编码格式,虽然浏览器提交的请求使用的是中文编码格式UTF-8,但经过业务处理中的ISO-8859-1编码,仍然会出现中文乱码现象.解决此问题的方法非常简单,在业务处理中重新制定中文字符集进行…
Servlet过滤器是从Servlet2.3规范开始新增的功能,并在Servlet2.4规范中得到增强,监听器可以监听到Web应用程序启动和关闭.创建过滤器和监听器需要继承相应接口,并对其进行配置. 过滤器 在现实生活中,自来水都是经过一层层过滤处理才达到食用标准的,每一层过滤都起到一种净化的作用.JavaWeb中的Servlet过滤器与自来水被过滤的原理相似,Servlet过滤器主要用于对客户端(浏览器)的请求进行过滤处理,现将过滤后的请求转交给下一个资源,它在JavaWeb开发中具有十分重要…
在JSTL Functions标签库中提供了一组常用的EL函数,主要用于处理字符串,在JSP中可以直接使用这些函数. 在JSP中使用Functions标签库,需要通过taglib指令引入该标签库: <%@ taglib prefix="fn" uri=http://java.sun.com/jsp/jstl/functions %> 使用JSTL函数 1.fn:contains函数 fn:contains函数用于判断在源字符串中是否包含目标字符串,其语法为: fn:cont…
MVC是Model-View-Controller的简称,即模型-视图-控制器.MVC是一种设计模式,它强制性地把应用程序的数据展示.数据处理和流程控制分开.MVC把应用程序分成3个核心模块:模型.视图和控制器,它们分别担当不同的任务.图1显示了这几个模块各自的功能及它们的相互关系. 图1  MVC设计模式 1  视图 视图是用户看到并与之交互的界面.视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理.视图可以向模型查询业务状态,但不能改变模型.视图还能接收模型发…
由于JSP页面由HTML.JSP.Java脚本等组成,所以在其中可以使用多种注释格式 HTML中的注释 HTML语言的注释不会被显示在网页中,但是在浏览器中选择查看网页源代码时,还是能够看到注释的信息的.其语法格式如下: //注释文本 例:在HTML中添加注释,代码如下: //显示数据报表的表格 <table> ... </table> 上述代码为HTML的一个表格添加了注释信息,其他程序开发人员可以直接从注释中了解表格的用途,无须重新分析代码.在浏览器中查看网页代码时,上述代码将…
JSP页面是指扩展名为.jsp的文件,在一个JSP页面中,可以包括指令标识.HTML代码.JavaScript代码.嵌入的Java代码.注释和JSP动作标识等内容.但这些内容并不是一个JSP页面所必须的.下面将通过一个简单的JSP页面说明JSP页面的构成. 例:编写一个JSP页面,名称为index,jsp,在该页面中显示当前时间. 代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8&q…
ServletContext是Servlet与Servlet容器之间直接通信的接口.Servlet容器在启动一个Web应用时,会为它创建一个ServletContext对象.每个Web应用都有唯一的ServletContext对象,可以把Servlet对象形象的理解为Web应用的总管家,同时一个Web应用中的所有Servlet对象都共享一个ServletContext,所有的Servlet对象都可以通过ServletContext来访问容器中的各种资源.当Servlet容器终止一个Web应用时,…
很多情况下,需要传递一些信息,从浏览器到Web服务器,最终到后台程序.浏览器使用两种方法可将这些信息传递到Web服务器,分别为GET方法和POST方法. 1.GET方法 GET 方法向页面请求发送已编码的用户信息.页面和已编码的信息中间用“?”字符分隔,如下所示: http://www.test.com/hello?key1=value1&key2=value2 GET方法是默认的从浏览器向Web服务器传递信息的方法,它会产生一个很长的字符串,出现在浏览器的地址栏中.如果您要向服务器传递的是密码…
Java Servlet是运行在带有支持Java Servlet规范的解释器的web服务器上的Java类. Servlet可以使用javax.servlet和javax.servlet.http包创建,它是Java企业版的标准组成部分,Java企业版是支持大型开发项目的Java类库的扩展版本. 这些类实现Java Servlet和JSP规范.在编写本书时,Servlet的最新版本是4.0,JSP的最新版本是2.3. 在javax.servlet包中定义了Servlet接口及相关的通用接口和类:在…
异步请求对象:XMLHttpRequest对象,通过该对象向服务器发送异步请求.它是异步请求的技术,所有的现代浏览器(IE7+.FireFox.Chrome.Safari以及Opera)都支持,老版本的IE浏览器(IE5和IE6)不支持XMLHttpRequest对象,需要使用ActiveX对象.这样的类首先由Internet Explorer以ActiveX对象引入,被称为XMLHTTP,后来其他浏览器纷纷效仿,提供了XMLHttpRequest对象,它支持微软的ActiveX对象所提供的方法…