mssqlserver.jar?java连接sql server的jar包存放在哪儿
无论是mssqlserver.jar还是java连接sql server的jar包存放在哪儿,它们都是当前热门话题。如果你对它们感到好奇,那么请跟随小编的脚步,一起来揭开它们的秘密吧!
如何连接sql server数据库
使用Java连接SQL Server数据库
用Java连接SQL Server2000数据库有多种方法,下面介绍其中最常用的两种(通过JDBC驱动连接数据库)。
1.通过Microsoft的JDBC驱动连接。此JDBC驱动共有三个文件,分别是mssqlserver.jar、msutil.jar和msbase.jar,可以到微软的网站去下载(http://www.microsoft.com/downloa...&displaylang=en),如果你下载的是setup.exe,还需要安装它,安装后会生成上面的三个jar文件。此JDBC驱动实现了 JDBC 2.0。
驱动程序名称:com.microsoft.jdbc.sqlserver.SQLServerDriver(即下面的classforname)
数据库连接URL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname(即下面的url)
2.通过JTDS JDBC Driver连接SQL Server数据库,此驱动的文件名为jtds-1.2.jar,下载路径为(http://sourceforge.net/project/showfiles.php?group_id=33291),此驱动支持Microsoft SQL Server(6.5, 7.0, 2000和2005)和Sybase,并且实现了JDBC3.0,是免费的。
驱动程序名称:net.sourceforge.jtds.jdbc.Driver(即下面的classforname)
数据库连接URL:jdbc:jtds:sqlserver://localhost:1433/dbname(即下面的url)
JDBC连接SQL Server数据库的Bean代码网上大把的有,下面摘录其中的一部分:(请将localhost和1433改成你实际应用中的SQL Server服务器地址和端口号,dbname改成你实际的数据库名)
1.importjava.sql.*;
2.publicclassDatabaseConn{
3.
4.privateConnectionconn;
5.privateStatementstmt;
6.privateStringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname";
7.privateStringclassforname="com.microsoft.jdbc.sqlserver.SQLServerDriver";
8.privateStringuid="sa";
9.privateStringpwd="password";
10.
11.publicDatabaseConn(){}
12.
13./**
14.*<p>通过MicrosoftJDBC驱动获得数据库连接</p>
15.*@returnConnection
16.*@exceptionClassNotFoundException,SQLException
17.*/
18.publicConnectiongetConnection()
19.{
20.try
21.{
22.Class.forName(classforname);
23.if(conn==null||conn.isClosed())
24.conn=DriverManager.getConnection(url,uid,pwd);
25.}
26.catch(ClassNotFoundExceptionex)
27.{
28.ex.printStackTrace();
29.}
30.catch(SQLExceptionex)
31.{
32.ex.printStackTrace();
33.}
34.returnconn;
35.}
36.
37.}
java连接sql server的jar包存放在哪儿
我自己总结的知识拿出来与大家分享一下吧..当然可能还有什么不对的地方,希望指出:
***msbase.jar、mssqlserver.jar、msutil.jar(支持sql2000):
早期的连接数据库Jar包:在连接数据时候需要手动导入驱动包。即手动导入class.forName(驱动名称);
***SQL Server JDBC Driver 2.0----sqljdbc.jar和sqljdbc4.jar
新版JDBC连接数据库Jar包,支持sql2005,sql2008
Sqljdbc.jar
使用 sqljdbc.jar类库时,应用程序必须首先按class.forName(驱动名称)注册驱动程序。Jdk1.6以上版本不推荐使用.
用Java连接sqlserver数据库时候几个jar包有什么区别
我自己总结的知识拿出来与大家分享一下吧..当然可能还有什么不对的地方,希望指出:
***msbase.jar、mssqlserver.jar、msutil.jar(支持sql2000):
早期的连接数据库Jar包:在连接数据时候需要手动导入驱动包。即手动导入class.forName(驱动名称);
***SQL Server JDBC Driver 2.0----sqljdbc.jar和sqljdbc4.jar
新版JDBC连接数据库Jar包,支持sql2005,sql2008
Sqljdbc.jar
使用 sqljdbc.jar类库时,应用程序必须首先按class.forName(驱动名称)注册驱动程序。Jdk1.6以上版本不推荐使用.
Sqljdbc4.jar
在 JDBC API 4.0中,DriverManager.getConnection方法得到了增强,可自动加载 JDBC Driver。因此,使用sqljdbc4.jar类库时,应用程序无需调用 Class.forName方法来注册或加载驱动程序。调用 DriverManager类的 getConnection方法时,会从已注册的 JDBC Driver集中找到相应的驱动程序。sqljdbc4.jar文件包括“META-INF/services/java.sql.Driver”文件,后者包含.sqlserver.jdbc.SQLServerDriver作为已注册的驱动程序。现有的应用程序(当前通过使用 Class.forName方法加载驱动程序)将继续工作,而无需修改。
注意: sqljdbc4.jar类库要求使用 6.0或更高版本的 Java运行时环境(JRE)。
高分java连接SQL server 2000 详细步骤
试试吧,
在JSP中访问Oracle,SqlServer,DB2, Informix,Access数据库
2007-1-13
在JSP中访问Oracle,SqlServer,DB2, Informix,Access数据库
现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发。在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建 create table test(test1 varchar(20),test2 varchar(20),然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧。
一、jsp连接Oracle8/8i/9i数据库(用thin模式)
testoracle.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl为你的数据库的SID
String user="scott";
String password="tiger";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select* from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
二、jsp连接Sql Server7.0/2000数据库
testsqlserver.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select* from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
三、jsp连接DB2数据库
testdb2.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();
String url="jdbc:db2://localhost:5000/sample";
//sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String sql="select* from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
四、jsp连接Informix数据库
testinformix.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url=
"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select* from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
五、jsp连接Access数据库
<%@page import="java.sql.*"
import="java.util.*"
import="java.io.*"
import="java.text.*"
contentType="text/html; charset=gb2312"
buffer="20kb"
%><%! int all,i,m_count;
String odbcQuery;
Connection odbcconn;
Statement odbcstmt;
ResultSet odbcrs;
String username,title,content,work,email,url,time,date;
String datetime;
%>
<%
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e)
{ out.print("驱动程序不存在");
}
try{
odbcconn= DriverManager.getConnection("jdbc:odbc:db1");
odbcstmt= odbcconn.createStatement();
odbcQuery="Select* From book where datetime>2001-4-26 Order By datetime DESC";
odbcrs=odbcstmt.executeQuery(odbcQuery);
int i=0;
while(i<130) odbcrs.next();
while(odbcrs.next())
{
//*/////////////////////////显示数据库的内容用于调试程序是用//
int ii;
try{
try{
for(ii=1;;ii++)
out.print("<br>Cloumn"+ii+" is:"+odbcrs.getString(ii));
}catch(NullPointerException e){
out.print("有空的指针");
}
}catch(SQLException e){
}
}
odbcrs.close();
odbcstmt.close();
odbcconn.close();
}catch(SQLException e)
{ out.print(e);
}
%>
查看(24)评论(0)
Hibernate快速入门
2006-11-10
其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet,甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。
在这篇文章将不涉及Eclipse, log4j, Struts, Tomcat, XDoclet,和JBoss。本文的目的是演示一下Hibernate的安装过程以及最基本的功能,从而给初学者一个低得不能再低的入门门槛。
下载文件
你需要Java SDK、 Hibernate包、Ant包、和JDBC Driver。
1、Hibernate包下载地址:
http://prdownloads.sourceforge.n... t_by=date&sort=desc
2、Ant包下载地址:
http://archive.apache.org/dist/ant/
3、JDBC Driver要根据你用的database来定,一般database官方网站上都会有。Hibernate支持常用的database,比如 MySQL, Oracle, PostgreSQL,和MS-SQL Server。这些数据库都有JDBC Driver:
Oracle JDBC Driver下载地址(下载前必须同意Oracle协议书)
http://otn.oracle.com/software/h... tdocs/jdbc9201.html
MySQL JDBC Driver下载地址
http://dev.mysql.com/downloads/connector/j/3.0.html
PostgreSQL JDBC Driver下载地址
http://jdbc.postgresql.org/download.html
MS-SQL Server JDBC Driver下载地址
http://www.microsoft.com/downloa... bf71&displaylang=en
4、将Hibernate包和Ant包分别解压至c:dev下(此目录不重要,你可以换其它任何目录)。
配置环境
1、你需要添加一个新的环境变量: ANT_HOME,让它指向c:dev<的ANT包所在目录>并在PATH环境变量里添加%ANT_HOME%in。
2、你需要添加一个新的环境变量: JAVA_HOME,让它指向你的j2sdk根目录。并在PATH环境变量里添加%JAVA_HOME%in。
3、创建一个项目ā?目录,比如c:workspaceMy1stHibernate。
在项目目录下,另外创建三个目录: src, classes, lib。
在lib目录下,创建两个目录: hibernate和db。
这样你有了如下的文件结构:
c:workspaceMy1stHibernate
c:workspaceMy1stHibernatesrc
c:workspaceMy1stHibernateclasses
c:workspaceMy1stHibernatelib
c:workspaceMy1stHibernatelibhibernate
c:workspaceMy1stHibernatelibdb
4、将c:dev<的Hibernate包所在目录>hibernate2.jar文件copy到c:workspaceMy1stHibernatelibhibernate下。
将c:dev<的Hibernate包所在目录>lib下的所有文件同样copy到c:workspaceMy1stHibernatelibhibernate下。
将你的JDBC Driver文件(一般是一个jar文件)copy到c:workspaceMy1stHibernatelibdb下。
创建数据库
1、用你最喜爱的database软件,创建一个hibernate_test的数据库。
2、在此数据库下,新建一个table名为CUSTOMER
CREATE TABLE CUSTOMER
(
CID INTEGER NOT NULL PRIMARY KEY, USERNAME VARCHAR(12) NOT NULL, PASSWORD VARCHAR(12)
);
编写Java文件
public class Customer{
private int id;
private String username;
private String password;
public int getId(){
return id;
}
public String getPassword(){
return password;
}
public String getUsername(){
return username;
}
public void setId(int id){
this.id= id;
}
public void setPassword(String password){
this.password= password;
}
public void setUsername(String username){
this.username= username;
}
}
将此类存为c:workspaceMy1stHibernatesrcCustomer.java文件。
编写Test类
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
public class Test{
public static void main(String[] args){
try{
SessionFactory sf= new Configuration().configure().buildSessionFactory();
Session session= sf.openSession();
Transaction tx= session.beginTransaction();
for(int i= 0; i<200; i++){
Customer customer= new Customer();
custoā?mer.setUsername("customer"+ i);
customer.setPassword("customer");
session.save(customer);
}
tx.commit();
session.close();
} catch(HibernateException e){
e.printStackTrace();
}
}
}
将此类存为c:workspaceMy1stHibernatesrcTest.java文件。
创建Hibernate映射文件
因为这里只有一个Class--- Customer和一个Table--- CUSTOMER,你只需要建立一个映射文件--- Customer.hbm.xml,来对应Customer类和CUSTOMER表之间的关系。
<xml version="1.0"?>
<DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<ibernate-mapping>
<lass name="Customer" table="CUSTOMER">
<d name="id" column="CID">
<enerator class="bchome-60c4-3b56-09e9-1768 increment"/>
<id>
<roperty name="username" column="USERNAME"/>
<roperty name="password" column="PASSWORD"/>
<class>
<hibernate-mapping>
把此文件存为c:workspaceMy1stHibernatesrcCustomer.hbm.xml,和Customer.java放在同一目录下。
编写Ant build.xml文件
你不一定要知道这个build.xml的细节,其实Ant也不是Hibernate所必须的。这里用Ant是为了简化一些任务,比如:编译、copy、运行,等。
<xml version="1.0"?>
<roject name="My1stHibernate" default="build" basedir=".">
<roperty name="base.dir" value="."/>
<roperty name="src.dir" value="src"/>
<roperty name="lib.dir" value="lib"/>
<roperty name="build.dir" value="classes"/>
<ath id="myclasspath">
<ileset dir="${lib.dir}">
<nclude name="**/*.jar"/>
<fileset>
<athelement location="${build.dir}"/>
<path>
<arget name="init">
<kdir dir="${build.dir}"/>
<target>
<arget name="build" depends="init" description="compile the source files">
<avac classpatrel="external nofollow" rel="external nofollow" href="myclasspath" srcdir="${src.dir}" destdir="${build.dir}"/>
<opy todir="${build.dir}">
<ileset dir="${src.dir}">
ā?<xclude name="**/*.java"/>
<fileset>
<copy>
<target>
<arget name="run" depends="build">
<ava classpatrel="external nofollow" rel="external nofollow" href="myclasspath" classname="Test" fork="true"/>
<target>
<arget name="clean">
<elete includeEmptyDirs="true">
<ileset dir="${build.dir}"/>
<delete>
<target>
<project>
配置Hibernate描述文件
Hibernate描述文件可以是一个properties或xml文件,其中最重要的是定义数据库的连接。我这里列出的是一个XML格式的hibernate.cfg.xml描述文件。
<xml version="1.0" encoding="utf-8"?>
<DOCTYPE hibernate-configuration
PUBLIC"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<ibernate-configuration>
<ession-factory name="java:/hibernate/HibernateFactory">
<roperty name="show_sql">rue<property>
<roperty name="connection.driver_class">
oracle.jdbc.driver.OracleDriver<--这里是Oracle 9i的JDBC driver class名-->
<property>
<roperty name="connection.url">
jdbc:oracle:oci8:@hibernate_test<--这里是Oracle的hibernate_test数据库URL-->
<property>
<roperty name="connection.username">
你的数据库用户名
<property>
<roperty name="connection.password">
你的数据库密码
<property>
<roperty name="dialect">
net.sf.hibernate.dialect.Oracle9Dialect<--这里是Oracle 9i的Dialect-->
<property>
<apping resource="Customer.hbm.xml"/><--指定Customer的映射文件-->
<session-factory>
<hibernate-configuration>
如果你用的不是Oracle 9i,可到C:dev<的Hibernate包所在目录>srchibernate.properties文件里找到你的数据库,然后替换以上相对应的值。
开始运行
到c:workspaceMy1stHibernate下,运行ant run。如果你严格依照以上步骤,应该看到
run:
[java] log4j:WARN No appenders could be found for logger(net.sf.hibernate.cfg.Environment).
[java] log4j:WARN Please initialize the log4j system properly.
[java] Hibernate: insert into CUSTOMER(USERNAME, PASSWORD, CID) values(?,?,?)
BUILD SUCCESSFUL
到你的hibernate_test数据库看一下,在CUSTMOR表里新添了200条记录,但你没有写任何JDBC code。
以后如果你要更换数据库,只需要改变hibernate.cfg.xml描述文件里相应的值即可。
查看(89)评论(4)
掌握 Ajax, Ajax简介
2006-11-10
Ajax由 HTML、JavaScript™技术、DHTML和 DOM组成,这一杰出的方法可以将笨拙的 Web界面转化成交互性的 Ajax应用程序。本文的作者是一位 Ajax专家,他演示了这些技术如何协同工作——从总体概述到细节的讨论——使高效的 Web开发成为现实。他还揭开了 Ajax核心概念的神秘面纱,包括 XMLHttpRequest对象。
五年前,如果不知道 XML,您就是一只无人重视的丑小鸭。十八个月前,Ruby成了关注的中心,不知道 Ruby的程序员只能坐冷板凳了。今天,如果想跟上最新的技术时尚,那您的目标就是 Ajax。
但是,Ajax不仅仅是一种时尚,它是一种构建网站的强大方法,而且不像学习一种全新的语言那样困难。
但在详细探讨 Ajax是什么之前,先让我们花几分钟了解 Ajax做什么。目前,编写应用程序时有两种基本的选择:
桌面应用程序
Web应用程序
两者是类似的,桌面应用程序通常以 CD为介质(有时候可从网站下载)并完全安装到您的计算机上。桌面应用程序可能使用互联网下载更新,但运行这些应用程序的代码在桌面计算机上。Web应用程序运行在某处的 Web服务器上——毫不奇怪,要通过 Web浏览器访问这种应用程序。
不过,比这些应用程序的运行代码放在何处更重要的是,应用程序如何运转以及如何与其进行交互。桌面应用程序一般很快(就在您的计算机上运行,不用等待互联网连接),具有漂亮的用户界面(通常和操作系统有关)和非凡的动态性。可以单击、选择、输入、打开菜单和子菜单、到处巡游,基本上不需要等待。
另一方面,Web应用程序是最新的潮流,它们提供了在桌面上不能实现的服务(比如 Amazon.com和 eBay)。但是,伴随着 Web的强大而出现的是等待,等待服务器响应,等待屏幕刷新,等待请求返回和生成新的页面。
显然这样说过于简略了,但基本的概念就是如此。您可能已经猜到,Ajax尝试建立桌面应用程序的功能和交互性,与不断更新的 Web应用程序之间的桥梁。可以使用像桌面应用程序中常见的动态用户界面和漂亮的控件,不过是在 Web应用程序中。
还等什么呢?我们来看看 Ajax如何将笨拙的 Web界面转化成能迅速响应的 Ajax应用程序吧。
老技术,新技巧
在谈到 Ajax时,实际上涉及到多种技术,要灵活地运用它必须深入了解这些不同的技术(本系列的头几篇文章将分别讨论这些技术)。好消息是您可能已经非常熟悉其中的大部分技术,更好的是这些技术都很容易学习,并不像完整的编程语言(如 Java或 Ruby)那样困难。
Ajax的定义
顺便说一下,Ajax是 Asynchronous JavaScript and XML(以及 DHTML等)的缩写。这个短语是 Adaptive Path的 Jesse James Garrett发明的(请参阅参考资料),按照 Jesse的解释,这不是个首字母缩写词。
下面是 Ajax应用程序所用到的基本技术:
HTML用于建立 Web表单并确定应用程序其他部分使用的字段。
JavaScript代码是运行 Ajax应用程序的核心代码,帮助改进与服务器应用程序的通信。
DHTML或 Dynamic HTML,用于动态更新表单。我们将使用 div、span和其他动态 HTML元素来标记 HTML。
文档对象模型 DOM用于(通过 JavaScript代码)处理 HTML结构和(某些情况下)服务器返回的 XML。
我们来进一步分析这些技术的职责。以后的文章中我将深入讨论这些技术,目前只要熟悉这些组件和技术就可以了。对这些代码越熟悉,就越容易从对这些技术的零散了解转变到真正把握这些技术(同时也真正打开了 Web应用程序开发的大门)。
XMLHttpRequest对象
要了解的一个对象可能对您来说也是最陌生的,即 XMLHttpRequest。这是一个 JavaScript对象,创建该对象很简单,如清单 1所示。
清单 1.创建新的 XMLHttpRequest对象
<script language="javascript" type="text/javascript">
var xmlHttp= new XMLHttpRequest();
</script>
下一期文章中将进一步讨论这个对象,现在要知道这是处理所有服务器通信的对象。继续阅读之前,先停下来想一想:通过 XMLHttpRequest对象与服务器进行对话的是 JavaScript技术。这不是一般的应用程序流,这恰恰是 Ajax的强大功能的来源。
在一般的 Web应用程序中,用户填写表单字段并单击 Submit按钮。然后整个表单发送到服务器,服务器将它转发给处理表单的脚本(通常是 PHP或 Java,也可能是 CGI进程或者类似的东西),脚本执行完成后再发送回全新的页面。该页面可能是带有已经填充某些数据的新表单的 HTML,也可能是确认页面,或者是具有根据原来表单中输入数据选择的某些选项的页面。当然,在服务器上的脚本或程序处理和返回新表单时用户必须等待。屏幕变成一片空白,等到服务器返回数据后再重新绘制。这就是交互性差的原因,用户得不到立即反馈,因此感觉不同于桌面应用程序。
Ajax基本上就是把 JavaScript技术和 XMLHttpRequest对象放在 Web表单和服务器之间。当用户填写表单时,数据发送给一些 JavaScript代码而不是直接发送给服务器。相反,JavaScript代码捕获表单数据并向服务器发送请求。同时用户屏幕上的表单也不会闪烁、消失或延迟。换句话说,JavaScript代码在幕后发送请求,用户甚至不知道请求的发出。更好的是,请求是异步发送的,就是说 JavaScript代码(和用户)不用等待服务器的响应。因此用户可以继续输入数据、滚动屏幕和使用应用程序。
然后,服务器将数据返回 JavaScript代码(仍然在 Web表单中),后者决定如何处理这些数据。它可以迅速更新表单数据,让人感觉应用程序是立即完成的,表单没有提交或刷新而用户得到了新数据。JavaScript代码甚至可以对收到的数据执行某种计算,再发送另一个请求,完全不需要用户干预!这就是 XMLHttpRequest的强大之处。它可以根据需要自行与服务器进行交互,用户甚至可以完全不知道幕后发生的一切。结果就是类似于桌面应用程序的动态、快速响应、高交互性的体验,但是背后又拥有互联网的全部强大力量。
加入一些 JavaScript
得到 XMLHttpRequest的句柄后,其他的 JavaScript代码就非常简单了。事实上,我们将使用 JavaScript代码完成非常基本的任务:
获取表单数据:JavaScript代码很容易从 HTML表单中抽取数据并发送到服务器。
修改表单上的数据:更新表单也很简单,从设置字段值到迅速替换图像。
解析 HTML和 XML:使用 JavaScript代码操纵 DOM(请参阅下一节),处理 HTML表单服务器返回的 XML数据的结构。
对于前两点,需要非常熟悉 getElementById()方法,如清单 2所示。
清单 2.用 JavaScript代码捕获和设置字段值
// Get the value of the"phone" field and stuff it in a variable called phone
var phone= document.getElementById("phone").value;
// Set some values on a form using an array called response
document.getElementById("order").value= response[0];
document.getElementById("address").value= response[1];
这里没有特别需要注意的地方,真是好极了!您应该认识到这里并没有非常复杂的东西。只要掌握了 XMLHttpRequest,Ajax应用程序的其他部分就是如清单 2所示的简单 JavaScript代码了,混合有少量的 HTML。同时,还要用一点儿 DOM,我们就来看看吧。
以 DOM结束
最后还有 DOM,即文档对象模型。可能对有些读者来说 DOM有点儿令人生畏,HTML设计者很少使用它,即使 JavaScript程序员也不大用到它,除非要完成某项高端编程任务。大量使用 DOM的是复杂的 Java和 C/C++程序,这可能就是 DOM被认为难以学习的原因。
幸运的是,在 JavaScript技术中使用 DOM很容易,也非常直观。现在,按照常规也许应该说明如何使用 DOM,或者至少要给出一些示例代码,但这样做也可能误导您。即使不理会 DOM,仍然能深入地探讨 Ajax,这也是我准备采用的方法。以后的文章将再次讨论 DOM,现在只要知道可能需要 DOM就可以了。当需要在 JavaScript代码和服务器之间传递 XML和改变 HTML表单的时候,我们再深入研究 DOM。没有它也能做一些有趣的工作,因此现在就把 DOM放到一边吧。
回页首
获取 Request对象
有了上面的基础知识后,我们来看看一些具体的例子。XMLHttpRequest是 Ajax应用程序的核心,而且对很多读者来说可能还比较陌生,我们就从这里开始吧。从清单 1可以看出,创建和使用这个对象非常简单,不是吗?等一等。
还记得几年前的那些讨厌的浏览器战争吗?没有一样东西在不同的浏览器上得到同样的结果。不管您是否相信,这些战争仍然在继续,虽然规模较小。但令人奇怪的是,XMLHttpRequest成了这场战争的牺牲品之一。因此获得 XMLHttpRequest对象可能需要采用不同的方法。下面我将详细地进行解释。
使用 Micr
文章到此结束,希望我们对于mssqlserver.jar的问题能够给您带来一些启发和解决方案。如果您需要更多信息或者有其他问题,请随时联系我们。