- 浏览: 193422 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wentry:
java中字符带有斜杠时,比如\\x00\\x00\\x00\ ...
java中调用js脚本 -
chenzheng8975:
...
ajax -
蓝色飞扬:
有用,也碰到这个问题了,多谢!
java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion -
刘宇斌:
一篇不错的讲解Java异常的文章(转载)----感觉很不错,读了以后很有启发 -
moxiaomomo:
同样的疑问啊...对tomcat缓存仍然一知半解...
tomcat 缓存
Ajax:
1, 首先ajax是一种综合javascript和xml的技术。
2. 用来异步传输信息,for example:以往的验证用户信息的技术,都是在用户填完需要填写的信息后将整个页面提交交给后台验证,如有异常就会返回刷新让用户重新填写,这样就会浪费用户的时间等资源,也会使该网站的用量产生消减。当用了ajax以后就不用刷新就可以更新内容,也就是在等待传输的过程中, 用户就可以和系统进行交互,拿上个例子来说,如果当你填写到用户名的时候,如过系统发现你的用户名已经和系统中的重复的话就会在你填写完用户名后给你一个提示,而不用你填完整个页面向信息后在提示你,这样就会让系统更加人性化。
3.ajax的一个主要属性XMLHttpRequest,通过它可以提起和服务器的请求,所以必须首先产生一个XMLHttpRequest对象用来处理事件;
4.一些方法比如open,send在下面的例子中将会提到;
以下是项目第一版本中的ajax用来验证用户输入的用户代码是否与系统中的已有代码重复的用例:
首先必须在客户端添加一个事件用来触发我们的验证程序:
<input name="userId" type="text" class="text1" id="userId" onblur="validate()"><span id="resText"></span>
然后在javascript中添加以下方法:
var xmlHttp;
function createXMLHttpRequest() {
//表示当前浏览器不是ie,如ns,firefox
if(window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
function validate() { //主方法
createXMLHttpRequest(); //用来创建一个XMLHttpRequest对象
var userId = document.getElementById("userId").value; //得到用户输入的userid
var url = "user_validate.jsp?userId=" + userId + "×tamp=" + new Date().getTime(); //将用户填写信息交到user_validate.jsp用于判断用户是 否重复,其中timestamp用于消除缓存,也可一在user_validate.jsp页面添加以下代码用于缓存:
/*
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-store"); //HTTP1.1
response.setHeader("Pragma", "no-cache"); //HTTP1.0
response.setDateHeader("Expires", 0);
*/
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange=callback; //calllback方法用来将反馈信息出入到页面,给用户提示
xmlHttp.send(null);
}
function callback() {
if (xmlHttp.readyState == 4) { //判断页面是否处理完毕
if (xmlHttp.status == 200) { //判断user_validate.jsp页面是否找到 ,200代表页面一找到,如果没找到则返回404,你可以在这alert (xmlHttp.status )来查看代码;
var resTextSpan = document.getElementById("resText"); //根据id得到span 区域用于输出提示信息
resTextSpan.innerHTML = "<font color='red'>" +
xmlHttp.responseText + "</font>"; //在span输出提示信息,其中 xmlHttp.responseText 用来得到user_validate.jsp 的out.println信息
}
}
下面是user_validate.jsp://可以写成servlet体现mvc结构。
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="com.bjsxt.drp.sysmgr.*" %>
<%
/*
//可以采用清除缓存的方法,如下
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-store"); //HTTP1.1
response.setHeader("Pragma", "no-cache"); //HTTP1.0
response.setDateHeader("Expires", 0);
*/
String userId = request.getParameter("userId");
if (UserManager.getInstance().findUserById(userId) != null) {//其中findUserById(userId)是javabeen中的一个函数findUserById(String userId)方法
out.println("用户代码[" + userId + "]存在!");
}
%>
以下是所用到的javabeen类://只是一部分其中有一个User类没有贴出来 ,里面就是一些成员变量和get,set方法
import java.sql.*;
private static UserManager instance = new UserManager();
//私有的构造函数
private UserManager() {
}
/**
* 入口点方法
* @return UserManager实例
*/
public static UserManager getInstance() {
return instance;
}
public User findUserById(String userId) {
String sql = "select * from t_user where user_id=?";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
User user = null;
try{
conn = DB.getConn();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userId);
rs = pstmt.executeQuery();
if (rs.next()) {
user = new User();
user.setUserId(rs.getString("user_id"));
user.setUserName(rs.getString("user_name"));
user.setPassword(rs.getString("password"));
user.setContactTel(rs.getString("contact_tel"));
user.setEmail(rs.getString("email"));
user.setCreateDate(rs.getTimestamp("create_date"));
}
}catch(SQLException e) {
e.printStackTrace();
}finally {
DB.close(rs);
DB.close(pstmt);
DB.close(conn);
}
return user;
}
总结它的流程:
用户触发一个事件交给validate() 处理,在validate()方法里首先创建一个 XMLHttpRequest对象用来与服务器打交道,然后是得到用户输入的信息交给user_validate.jsp处理(因为要和数据库打交道所以新建一个页面user_validate.jsp)user_validate.jsp得到用户输入的信息,与数据库中的信息进行验证,如果数据库中有这个用户就输出(用户代码[" + userId + "]存在!");然后由xmlHttp.responseText 方法得到user_validate.jsp 的out.println信息,然后给用户打印出来。
整个过程就是这样。明天写分页组件。tomorrow is comming!!
第一次在这写,对这个编辑器不是很熟悉,没有对代码进行高亮显示,见谅!!
发表评论
-
java 修饰符
2009-10-31 16:37 1340Java语言定义了public、protected、priva ... -
Java虚拟机 堆
2009-10-25 22:27 1070Java程序在运行时创建的所有类实例或者数组都放在堆 ... -
Java虚拟机 方法区
2009-10-25 21:09 1820对于被装载的每个类,虚拟机都会把这个类的类型信息存储在方法区, ... -
Java虚拟机 体系结构
2009-10-25 21:03 1210当一个Java虚拟机运行一 ... -
java中调用js脚本
2009-10-16 18:27 14852JDK1.6加入了对Script(JSR ... -
Java 位运算
2009-09-28 16:43 4979Java 位运算[转] 一,Java 位运算 ... -
拾遗补缺-jdk6新特性
2009-08-09 17:13 12021,输出到文件 java Hello.java > he ... -
拾遗补缺-ResourceBundle
2009-08-08 23:54 2442http://gceclub.sun.com.cn/Java_ ... -
拾遗补缺-logger
2009-08-08 23:33 1153java.util.logging.Logger的使用 20 ... -
拾遗补缺-date
2009-08-08 23:22 932DateFormat 来格式化日期 2009年01月21日 ... -
classloader
2009-08-08 22:53 1095什么是ClassLoader ClassLoader是一个抽 ... -
Callable与Future
2009-08-08 22:40 1501java.util.concurrent.Callable与j ... -
concurren套件(转载)
2009-08-08 22:31 1269从J2SE 5.0开始有了java.util.concurre ... -
java多线程转载
2009-08-07 18:06 1124Java Thread API 允许程序员编写具有多处理机制优 ... -
java字符集
2009-08-04 17:05 1880ASCII 字符集 1.名称的由来 ASCII( ... -
Ajax链接servlet的一个注意事项
2007-09-23 18:02 860这是我用到的一段代码: createXMLHttpReq ... -
tomcat 缓存
2007-09-24 19:28 1449今天写项目的时候遇到一个问题: 就是当打印自定义异常的时候一 ... -
如何用javascript控制checkbox,并进行批量删除
2007-09-24 19:51 1707在做系统数据删除的时候,往往需要批量删除一些数据,如何做到呢? ... -
用servlet filter 解决编码问题的一个小例子
2007-09-24 20:02 1195当在做程序的是你也许会遇到一些很让你恼火的乱码问 ... -
转发和重定向的区别的一点理解
2007-09-24 21:54 971他们的调用分别如下例: request.getRequest ...
相关推荐
关于Ajax的常见面试题 1,Ajax和javascript的区别? javascript是一种在浏览器端执行的脚本语言,Ajax是一种创建交互式网页应用的开发技术 ,它是利用了一系列相关的技术其中就包括javascript。 Javascript是由...
本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit。这部分内容不需要读者有任何的客户端...
Android Webview虽然提供了页面加载及资源请求的钩子,但是对于h5的ajax请求并没有提供干涉的接口,这意味着我们不能在webview中干涉javascript发起的http请求,而有时候我们确实需要能够截获ajax请求并实现一些功能...
在ajax中使用post方法,用常规的参数格式:param1=a1¶m2=a2 ,当参数长度过长时,依然提交不成功。比如我们经常这样写一个ajax的post请求: $.ajax({ type: "post", // post or get contentType:"application...
ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件
ajax ajax原理 ajax代码 ajax编程 ajax学习
ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效
使用Ajax实现从服务器读取数据,包括Ajax实现的详细步骤
ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础...
学习的网上的一个ajax版注册程序,对界面进行了改变!是适合学习ajax的朋友的一个好的例子!
掌握 Ajax第 1 部分-Ajax 简介 掌握 Ajax第 2 部分-使用 JavaScript 和 Ajax 发出异步请求 掌握 Ajax第 3 部分-Ajax 中的高级请求和响应 掌握 Ajax第 4 部分-利用 DOM 进行 Web 响应 掌握 Ajax第 5 部分-操纵 DOM ...
ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件...
并应用上述知识开发了8个基于AJAX的Web应用系统,如基于AJAX的文件和图像处理、AJAX祝福墙、AJAX留言簿、AJAX聊天室、AJAX RSS阅读器、AJAX相册、基于AJAX的电子邮件处理等。最后以两个大型的AJAX Web应用系统(基于...
Ajax + JavaScript + MySQL 实现的Ajax分页功能
Ajax Ajax本质 Ajax本质源码 Ajax Ajax本质 Ajax本质源码 Ajax Ajax本质 Ajax本质源码
第 1 部分:Ajax 简介 第 2 部分:: 使用 JavaScript 和 Ajax 发出异步请求 第 3 部分: Ajax 中的高级请求和响应 第 4 部分: 利用 DOM 进行 Web 响应 第 5 部分: 操纵 DOM 第 6 部分: 建立基于 DOM 的 Web 应用程序 第...
ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子
ajax 分页ajax 分页ajax 分页
看到网上很多想用ajax的树的例子,很奇怪,明明TreeView自带AJAX功能,取非要自己去写一大堆代码, 工作量增加了,而性能又没有提高多少 正好自己这次用到了,就做了一个例子,供大家一起研究参考 注:顺便下载了一...
ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解