JSP入门教程 .pdf
1.JSP 入门教程(一)作者:SUN/网猫第一课:真正的开始dukebanner.html helloworld.jsp Hello,World Hello,World!页面说明:在很多 JSP文件中你都要写上这样的说明。在helloword.jsp 中:傻瓜也看得出来,这句话没什么大用,只是简要的说明一下这段代码的作用。你可以在 JSP文件中的任何地方写这种代码,但是好的习惯是把他写在最前面,还有,因为他是 JSP标签,记住一定要放在 前面,呵include 说明:include 用来在主JSP 文件中调用本地的一个其他文件,通常是一些版权信息啦,脚本语言啦等其他任何你想在其他文件中重复使用的代码。在这个例子中就是调用了一个图片其实。大家明白这个意思就得了。随便说两句:在 JSP中对写法非常敏感,不可以有一点错误。举个例子,把写成 那样服务器会出现错误信息。一些如类名,包名,路径名还有其他的敏感的标签等千万不要写错。有一些JSP 标签拿不准的话就去查一下JavaServer Pages语法卡片。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 41 页 -代码写好了,如何试验一下呢?我这里写的UNIX下的方法,如果你用Windows,那么换一下路径就可以了1、先建一个目录:./jswdk-1.0/examples/jsp/tutorial/helloworld 2、把这些文件拷过去background.gif,duke.waving.gif,dukebanner.html,and helloworld.jsp 3、cd./jswdk-1.0,然后 startserver 4、开一个浏览器,5、http:/yourMachineName:8080/examples/jsp/tutorial/helloworld/helloworld.jsp 2.JSP 入门教程(二)作者:SUN/网猫第二课:用HTML表单大多数情况下,商业的网站都要有一些表单,比如说输入一下消费者的姓名啦,地址啦,或者敲一个词来用搜索引擎来查一下啦,或者市场人员从来访者处收集一些数据供参考什么的。那些表单传回的数据怎么处理的?来访者通过表单向JSP引擎输入了数据,并保存在了request对象中,那么接下来怎么办?首先,JSP 引擎把存放在request 对象中的数据发到JSP 页面指定的服务器端的组件(JavaBeans组件,servlet,或者 enterprise bean),组件收到这些个数据以后,有可能再存这些数据到数据库或者其他的地方存放起来,同时,返回一个response对象给 JSP引擎。JSP 引擎再把 response对象传给JSP页面,这时的页面包含了定义好的格式和从服务器端得到的数据。这时JSP 引擎和 Web 服务器再发送一个整理好的完整的页面给客户,也就是这们在浏览器上看到的结果。客户和服务器间的通信协议可以用HTTP,当然也可以用其他的。Request 和 Response对象在你制作的JSP原代码中起作用。到于request 对象到底怎么用,我要在接下来详细的讲给你听。如何创建表单用 HTML 定义一些有代表性的表单做成一个JSP文件,然后用JSP标签在表单和服务器端对象(通常都用Bean)传递数据。一般情况下是这么干的:1、写 JSP原文件,创建一些HTML的表单并命名。2、在 Java 文件里写Bean,定义属性,GET 或者 SET 方法来配合已经被你指定好名字的表单。3、回到 JSP原文件中,增加标签来创建一个或者调用一个现成的Bean。4、增加 标签设置HTML 表单中需要SET 方法的 Bean 的属性。5、增加 标签设置 HTML表单中需要GET 方法的 Bean 的属性。6、如果需要处理更多的用户数据,用request对象。说了半天你可能看不懂,其实看一个例子你就懂了。先看一个简单的hello 的例子吧:这段程序其实还是计算机程序里那个最经典的“hello,world”的程序,只不过呢,我使他挠了一点弯儿,使他看起来比较智能和复杂。首先你输入你的名字,然后 Duke 跟你说:“hello!”看看代码吧:dukebanner.html 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 41 页 - 主 JSP文件:hellouser.jsp Hello,User My name is Duke.Whats yours?td width=150 回应文件:response.jsp Hello,!名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 41 页 -处理数据的Bean:(namehandler.java)package hello;public class NameHandler private String username;public NameHandler()username=null;public void setUsername(String name)username=name;public String getUsername()return username;建立 HTML 表单一个 HTML的窗分为三个部分:标签,输入方法,提交按钮发数据到服务器。一般的 HTML 页面里,是这么写的,在其他的页面里的action属性可能是其他特殊的CGI 程序或者其他能处理数据的程序,那么在JSP 里边是怎么用的呢,呵,如果你想把数据发到Bean 里的话那么你可以省略action 里边的东西了,直接写标签或者其他特定的JSP 文件了。接下来的那些表单和普通的HTML 差不多了,的方法,然后加一个提交按钮,可能还有一个Reset按钮,对了,别忘了,还得给每一个input 表单加一个名字。这么写:使用 GET 和 POST 方法用 GET 和 POST 方法可以发数据到服务器,在 JSP程序中 GET 和 POST 方法可以发数据到Bean、servlet、或者其他服务器端的组件。理论上说,GET 是从服务器上请求数据,POST 是发送数据到服务器。事实上,GET 方法是把数据参数队列(query string)加到一个URL上,值和表单是一一对应的。比如说,name=John。在队列里,值和表单用一个&符号分开,空格用+号替换,特殊的符号转换成十六进制的代码。因为这一队列在URL 里边,这样队列的参数就能看得到,可以被记录下来,或更改。通常GET 方法还限制字符的大小。事实上POST 方法可以没有时间限制的传递数据到服务器,用户在浏览器端是看不到这一过程的,所以 POST 方法比较适合用于发送一个保密的(比如信用卡号)或者比较大量的数据到服务器。写 Bean 如果 JSP程序用到了Bean,你就得按照JavaBeans API 的说明设计你的Bean。记住下面两个关键部分。如果 JSP程序里用 标签,那你就得在Bean 里边配合的GET 方法。如果 JSP程序进而用标签,那你就得在Bean 里边配合的Set方法。设置参数到Bean 或者从里边取参数将在以后的部分详细介绍。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 41 页 -传数据到 Bean 把 HTML 表单的数据传到Bean里需要两个工作:?用 标签创建或者定位到Bean?在 Bean里面用 设置属性值第一步用标签创建或者定位到Bean 一定要用在 之前,首先按照你指定的名字查找Bean,如果没找到,会给你指定一个。允许在一个 JSP文件中创建一个Bean,然后再另一个文件中调用,这就给了Bean 一个很广泛的运行空间。第二步在 Bean 里面用 设置属性值。最简单的方法是把值定义成与表单名相配合。举个例子,如果你把表单名定义成“username”那么,你就在 Bean里定义属性“username”然后用方法getUsername 和 setUsername。当然也可以定义成不同的名字,只要你不认为麻烦。谁让你记忆力好呢!Request对象用户输入的数据用来存放在Request 对象里,用javax.servlet.HttpServletRequest 来执行(你也可以用其他不同的工具来执行,但他们其实都是javax.servlet.HttpServletRequest 的子集)你也可以直接用scriptlet 来直接访问Request 对象。Scriptlet 将在下一讲里边详细的讨论,现在你只需要知道他是用脚本语言写的一段放?lt;%和%之间的代码就足够了。在 JSP 1.0中,你必须用JavaTM 程序语言作为你的脚本语言。你经常会用到如下方法处理Request对象:方法说明执行结果getRequest Javax.servlet.jsp.PageContext 返回当前 Request 对象getParameterNames javax.servlet.ServletRequest 返回当前 Request 对象参数名getParameterValues javax.servlet.ServletRequest 返回当前 Request 对象参数值你将会发现其他方法包括ServletRequest,HttpServletRequest 或者其他任何ServletRequest的子集。JSP引擎经常在scenes之后使用 Request 对象,即使你没有明确地在JSP 文件中调用。从 Bean 中调数据到JSP页面一旦用户的数据被传到Bean,你就想重新得到数据,然后在JSP 面页中显示出来。想达到这一步,你就得用到 标签。传Bean 名和属性名:Hello,!,和 标签必须相配,举个例子:hellouser.jsp:名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 41 页 -response.jsp:Hello,!在这个例子里,标签被放在两个文件中,但是指定的名字都是相同的,如果不同的话,那么系统会返回一个错误信息。如何运行例子我用的是主机,如果你用windows,那么改相应的路径即可。创建路径./jswdk-1.0/examples/jsp/tutorial/hellouser.把文件 background.gif,duke.waving.gif,dukebanner.html,hellousr.jsp和 response.jsp文件放进去。创建一个目录,./jswdk-1.0/examples/WEB-INF/jsp/beans/hello 把文件 NameHandler.java 和 NameHandler.class 放进去。3.JSP 入门教程(三)作者:SUN/网猫使用脚本在有些地方,你大概要加一些好的,成熟的程序到你的JSP页里,JSP的标签虽然很强大,但是完成某些工作还是比较费力的困难的。这时你可以使用脚本语言段来补充JSP标签。使用的 JSP引擎是支持脚本语言的,SUN 的 JSP参考文说明,必须使用Java 程序语言来编写脚本,但是其他第三方的JSP引擎允许使用其他语言来写脚本程。如何增加脚本首先,你必须了解一些增加脚本元素到JSP页中的一些基本规则1、在 JSP页面里用Page指令定义脚本(默认值是Java,一般不需要定义)2、声明语法 声明变量和方法(函数)。3、表达式语法 定义脚本语言表达式4、脚本语法%可以操作声明、表达式和其他类型合法的代码段在页脚本语言。5、一定要在结尾加%标签声明、表达式、脚本使用起来有一些相似,但也有一些不同让我们用一些例子来讲述一下相同点和不同点吧。声明 包含了一个或多个变量和方法,结尾以分号分隔。例:在页面中使用变量和方法之前必须声明声明的范围通常是JSP页,但如果页面中使用INCLUDE指令包含其他页面,范围应变得扩展到被包含的页面。表达式 可以在页面中包含任何合法的语言表达式,不用分号。例:名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 41 页 -表达式和脚本的一个关键的不同点就是不需要分号。如果你需要在脚本中使用表达式就必须加分号。脚本 允许你写的任何数量的脚本语言例:记住在脚本中必须使用分号结尾。猜数字游戏猜数字游戏非常的有趣,而且从这里你还可以学到很多表达式的用法。代码显示用的主屏幕(numguess.jsp)Number Guess 4.JDK 安装作者:东方一蛇/我的家一、前言JDK(Java Development Kit)是一切 java 应用程序的基础,可以说,所有的java 应用程序是构建在这个之上的。它是一组API,也可以说是一些java Class。目前已经正式发布的最新版本是JDK1.3。考虑到我对linux 不熟悉,而且大多数都是在MS 系统下,所以,在这里我用的是win2000。二、下载,安装下载地址为JAVA 官方站点:,国内也到处都是。Windows 下,直接运行.exe 文件,安装到一个目录,我这里用F:jdk13 作为例子。三、配置桌面上选择“我的电脑”(右键)高级环境变量在“系统变量”-“新建”名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 41 页 -在变量名中输入:CLASSPATH,变量值中输入:F:JDK13LIBdt.JAR;F:JDK13LIBTOOLS.JAR;F:JDK13BIN;然后确定;好了,配置完了,要重新启动计算机后,环境变量才能有效的。四、测试(1)用文本编辑器写一个简单的java 程序:public class HelloWorld public static void main(String args)System.out.println(Hello World!);这个例子就是著名的“Hello World”,它的功能就是显示“Hello World”。注意:该文件名称必须为“HelloWorld.java”,大小写也区分。细心的朋友会注意到就是和public class 后的名字一样的。(2)编译:在dos 命令提示符下执行:(注意大小写)javac HelloWorld.java 如果正常的话,将生成HelloWorld.class 文件。(3)运行:在dos 命令提示符下执行:(注意大小写)java HelloWorld 这里有一个java 初学者很有可能遇到的问题(不怕笑话,我也是)就是输入:java HelloWorld.class 多了后面的.class,一定要注意,否则会出现下面的错误:Exception in thread main java.lang.NoClassDefFoundError:HelloWorld/class(本人猜想,是不是java 翻译“.”的时候换成了“/”,或者是其他的本人不知道的原因)好了,运行java HelloWorld 应该会出现伟大的“Hello World”了。到这一步,你已经成功配置好了JDK,可以开始漫长而痛苦(对于象我一样的,以前不懂java的朋友来说,可以用“痛苦”来形容,不理解的概念,不熟悉的java api.,不过,不要急,我将和大家一起慢慢入门,慢慢提高.)的 Java 过程了。5.Tomcat 安装作者:东方一蛇/我的家一、前言对于初学者来说,要执行JSP 和 Servlet,Tomcat 是一个很不错的选择,。Tomcat 是Apache 组织的产品,sun 公司对它的支持也相当不错。二、下载,安装下载地址为JAVA 官方站点:jakarta.apache.org,国内也比较多。从这个地址可以下载:http:/jakarta.apache.org/builds/tomcat/release/,我下载的是Tomcat32b4版本。下载完,解压到一个目录,我这里用F:tomcat32b4 作为例子。名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 41 页 -三、配置桌面上选择“我的电脑”(右键)高级环境变量在“系统变量”-“新建”在变量名中输入:JAVA_HOME,变量值中输入:F:JDK13 然后确定;在“系统变量”-“新建”在变量名中输入:TOMCA T_HOME,变量值中输入:F:tomcat32b4 然后确定;好了,配置完了,要重新启动计算机后,环境变量才能有效的。注意,对于Tomcat 其他设置,如果没有必要,是可以不改的,我这里讲的都是最简单而可行的方法,如果对你的改动没有把握,还是建议不要改动。四、测试(1)启动 tomcat:在 F:tomcat32b4bin 下有一个:startup.bat,运行它,将出现一个Dos 窗口。(2)浏览在浏览器中输入:http:/localhost:8080/看看有什么效果(Tomcat 默认端口为8080,在不冲突的前提下,你可以改动的),是不是可以看到一只可爱的小猫(其实,我个人认为,无论从颜色还是样子,更象一只老虎)(3)运行在这个页面有JSP Examples和 Servlet Examples,好了,自己测试运行它们吧。(4)退出 tomcat 在 F:tomcat32b4bin 下有一个:shutdown.bat,运行它,将关闭Dos 窗口(如果坚持直接关闭这个 DOS 窗口也是可以的,但是,既然有这个shutdown.bat,应该有它存在的理由)。6.Resin+Apache 的安装作者:东方一蛇/我的家一、前言对于初学者来说,要执行JSP 和 Servlet,Tomcat 是一个很不错的选择。你也可以用Resin,这两个产品都是可以不花一分钱的。Resin 对 Xml 的支持是很好的。二、下载,安装下载地址为Resin 官方站点:http:/ 版本。下载完,解压到一个目录,我这里用E:resin114 作为例子。三、配置在这之前,当然我们要先安装了Apache,而且能正常运行了。(1)配置 Apache 打开 apache的 conf 子目录下的httpd.conf 文件,用文本编辑工具编辑它。加入如下几行:名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 41 页 -LoadModule caucho_module E:resin114srunwin32-1.3.6mod_caucho.dll AddModule mod_caucho.c CauchoConfigFile E:resin114confresin.conf SetHandler caucho-status 注意:上面的步骤也可以通过更加简单的方式实现,就是直接运行目录下的setup.exe,勾上 apache,然后 Apply,最后 OK。这样,上面这些行应该会自动加上的。(2)配置 Resin 在 resin 的 conf 子目录下有个resin.conf 文件,将该文件备份一个。然后建立 resin.conf 文件,如下内容:四、测试(1)启动 Resin:在 resin 的 bin 下有一个srun.exe,运行它,将出现一个窗口。(2)做一个简单的jsp 文件 test.jsp(我们用resin 站点的例子)该文件放在:apache/htdocs/test.jsp 内容如下:2+2=(3)运行在浏览器中输入:http:/localhost/test.jsp,应该出现下面结果:2+2=4 好了,到这里你已经安装成功了,你可以在htdocs 下建立一些自己的子目录,管理文件。注意:在四(1)中,启动 resin 可以将 srun 加在 Win2000 的服务中,让每次这个resin 服务自动启动,不必每次都运行srun.exe。7.Orion App Server 的安装作者:东方一蛇/我的家一、前言名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 41 页 -Orion 这个东西,小巧,但是功能却非常多,废话不讲,看它目前的支持就知道了:(1)Servlets/JSP(2)EJB(3)HTTP(注:说明不再需要Apache 或者 IIS 等 Web Server)二、下载,安装下载地址为Orion Application Server官方站点:http:/ Orion1.4 版本。下载完,解压到一个目录,我这里用E:Orion 作为例子。三、配置(1)根据 Orion 官方站点的安装说明,如果要支持JSP等技术的话,要将 JDK 的 tools.jar复制到 e:orion 目录下,tools.jar 文件在你安装的JDK 目录的 lib 子目录下。到现在,其实已经成功了缺省的配置了,如果你的80 端口没有被占用,而且你也想用80作为端口的话,你到这里已经完成了,否则,请继续下面的配置。(2)配置端口在 E:orionconfig 目录下有个default-web-site.xml 文件,找到文件中下面行:将这行改为:注意,我这里使用的是8008 端口。四、测试(1)启动 Orion:在 Orion 目录下,command 方式运行:java-jar orion.jar 将出现 Orion/x.x.x initialized,我这里版本是1.4 所以显示:Orion/1.4.0 initialized 到此,说明你已经成功了。(2)执行 jsp 文件在浏览器中输入:http:/localhost:8008/出现:Orion Application Server 1.4.0-Up and running,下面有 JSP examples你可以试着运行。8.JDBC-ODBC 翻页例子作者:东方一蛇/我的家一、运行前准备建议了一个MS SQLServer7 数据库DNS,名称为:Test_DB 数据库中有一个表:guestbook字段为:name(varchar),email(varchar),body(text)数据库用户为sa 密码空,可以自己修改的。二、代码 名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 41 页 -%/变量声明java.sql.Connection sqlCon;/数据库连接对象java.sql.Statement sqlStmt;/SQL 语句对象java.sql.ResultSet sqlRst;/结果集对象java.lang.String strCon;/数据库连接字符串java.lang.String strSQL;/SQL语句int intPageSize;/一页显示的记录数int intRowCount;/记录总数int intPageCount;/总页数int intPage;/待显示页码java.lang.String strPage;int i,j,k;/设置一页显示的记录数intPageSize=5;/取得待显示页码strPage=request.getParameter(page);if(strPage=null)/表明在 QueryString 中没有 page 这一个参数,此时显示第一页数据intPage=1;else/将字符串转换成整型intPage=java.lang.Integer.parseInt(strPage);if(intPageintPageCount)intPage=intPageCount;/设置获取数据SQL 语句strSQL=select name,email,body from guestbook;/执行 SQL 语句并取得结果集sqlRst=sqlStmt.executeQuery(strSQL);名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 41 页 -/将记录指针定位到待显示页的第一条记录上i=(intPage-1)*intPageSize;for(j=0;j JSP 数据库操作例程-数据分页显示-JDBC-ODBC jdbc-odbc 留言版%/显示数据i=0;while(i 姓名:邮件:第 页 共 页%if(intPage a href=mssql.jsp?page=下一页 1)%a href=mssql.jsp?page=上一页 三、怎么去运行?将代码存为文件test.jsp Orion Application Server下:Copy 到 orion 的 default-web-app 目录下,通过:http:/localhost:port/test.jsp 访问测试对于 Resin,Tomcat,JWS 等等,都可以运行通过。9.MySQL 翻页例子作者:东方一蛇/我的家一、运行前准备下载了 mysql 的 jdbc 驱动(一个jar 文件)并加载在CLASSPATH(方法见 JAVA/JSP学习系列之四(JDK 安装)(如果找不到,请从本站下载)建一个 MySQL 数据库 test 数据库中有一个表:note,字段为:name(varchar)二、下载,安装%java.sql.Connection sqlCon;/数据库连接对象java.sql.Statement sqlStmt;/SQL 语句对象java.sql.ResultSet sqlRst;/结果集对象java.lang.String strCon;/数据库连接字符串java.lang.String strSQL;/SQL语句int intPageSize;/一页显示的记录数int intRowCount;/记录总数int intPageCount;/总页数int intPage;/待显示页码java.lang.String strPage;int i;/设置一页显示的记录数intPageSize=2;/取得待显示页码strPage=request.getParameter(page);if(strPage=null)/表明在 QueryString 中没有 page 这一个参数,此时显示第一页数据intPage=1;else/将字符串转换成整型intPage=java.lang.Integer.parseInt(strPage);if(intPageintPageCount)intPage=intPageCount;%JSP 数据库操作例程-数据分页显示-JDBC 2.0-mysql 姓名 0)/将记录指针定位到待显示页的第一条记录上sqlRst.absolute(intPage-1)*intPageSize+1);/显示数据i=0;while(i 第 页 共 页%if(intPagea href=mysqlpage.jsp?page=下 一 页 1)%a href=mysqlpage.jsp?page=上一页 三、怎么去运行?见前文 JAVA/JSP 学习系列之八(JDBC-ODBC 翻页例子)。10.Orion 下自定义Tag 作者:东方一蛇/我的家一、前言(本文译自Orion 官方站点)本文将一步一步介绍在Orion Application Server 下定义自己的标签,然后,实现该标签的功能,最后用一个jsp 例子测试。二、建立标签,实现该标签的功能。1.命名 package为:com.acme.mytags(为了和原文相同,我不做改动)package com.acme.mytags;2.import 相关 class import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;3.实现 javax.servlet.jsp.tagext.Tag 接口:public class HelloWorld implements Tag 4.定义局部变量private PageContext pageContext;private Tag parent;5.调用标签开始的实现方法public int doStartTag()throws javax.servlet.jsp.JspException return SKIP_BODY;名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 41 页 -注意:这个方法返回SKIP_BODY,就是标签的body 为空的时候,将返回这个值,否则将返回:EVAL_BODY_INCLUDE 6.调用标签结束的实现方法public int doEndTag()throws javax.servlet.jsp.JspException try pageContext.getOut().write(Hello World!);catch(java.io.IOException e)throw new JspException(IO Error:+e.getMessage();return EVAL_PAGE;这样将在jsp 文件的自定义标签结束地方输出“Hello World!”7.还不够,我们还要写下面的方法:public void release()对于本简单的例子,上面的方法不需要任何实现。8.JSP的容器要调用下面的方法:public void setPageContext(final javax.servlet.jsp.PageContext pageContext)this.pageContext=pageContext;JSP容器通过上面的方法调用标签,而且上面的方法用来设置标签的PageContext.9.JSP的容器还要调用下面的方法:public void setParent(final javax.servlet.jsp.tagext.Tag parent)this.parent=parent;JSP容器通过上面的方法设置标签的parent-Tag,因为每个标签的PageContext 都要保留它的parent 标签。10.最后,实现方法:public javax.servlet.jsp.tagext.Tag getParent()return parent;11.编译标签。三、描叙标签现在将要写一个描叙文件,描叙该标签。1.建立一个taglib.tld 文件,2.taglib.tld 是一个 XML 格式的文本文件,XML 的头如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 41 页 -3.描叙标签库 1.0 1.1 mt http:/ My first Tag library 4.描叙标签 helloWorld com.acme.mytags.HelloWorld empty A Hello world Tag 5.结束 四、打包名称为:mytags.jar 其目录结构为:com/acme/mytags/HelloWorld.class META-INF/taglib.tld 五、在 jsp 文件中使用自定义标签建立 hello.jsp 如下:Hello World!六、测试运行在 orion 目录下,建立如下结构,其中,tag 是自己建立的,前面的目录是本来就有的。E:oriondefault-web-apptag 将 jar 文件和 jsp 文件全部放到这个目录下。然后,访问:http:/localhost:port/tag/hello.jsp 将出现:-名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 41 页 -Hello World!-七、恭喜,你已经成功了!附:mytags.jar 和 hello.jsp 文件本站下载地址:http:/ 11.改写 MySQL 翻页例子作者:东方一蛇/我的家一、前言其实,改写后的JDBC Data-Source 是运行在 Servlet 中的,通过JNDI 去查找数据源。我用 Orion 试的,将本站 JAVA/JSP 学习系列之九(MySQL 翻页例子)简单改写了一下。二、配置(1)JDBC 需要将用到的JDBC 驱动 Copy 到ORION/lib目录下(2)data-source 在ORION/config/data-sources.xml文件中加入如下:data-source class=com.evermind.sql.DriverManagerDataSource name=mySqlDbpage location=jdbc/HypersonicCoreDS xa-location=jdbc/xa/HypersonicXADS ejb-location=jdbc/mysqlDbPage connection-driver=org.gjt.mm.mysql.Driver username=root password=url=jdbc:mysql:/localhost/test inactivity-timeout=30/需要注意的是:(1)ejb-location 这个后面的“jdbc/mysqlDbPage”是 JNDI 要来查找的。(2)connection-driver 为 JDBC 数据库驱动(3)url 是 JDBC 中的 URL(4)username为数据库用户名(5)password 为用户密码(6)inactivity-timeout为数据库连接超时,默认为30 秒对于其他的地方不要改。三、改写后的代码如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 41 页 -%/建立一个JNDI 查找对象InitialContext JNDI_Context=new InitialContext();/JNDI 查找数据源DataSource ds=(DataSource)JNDI_Context.lookup(jdbc/mysqlDbPage);/得到一个数据源连接Connection conn=ds.getConnection();int intPageSize;/一页显示的记录数int intRowCount;/记录总数int intPageCount;/总页数int intPage;/待显示页码java.lang.String strPage;int i;/设置一页显示的记录数intPageSize=2;/取得待显示页码strPage=request.getParameter(page);if(strPage=null)/表明在 QueryString 中没有 page 这一个参数,此时显示第一页数据intPage=1;else/将字符串转换成整型intPage=java.lang.Integer.parseInt(strPage);if(intPageintPageCount)intPage=intPageCount;%JSP 数据库操作例程-数据分页显示-JDBC 2.0-mysql 名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 41 页 -姓名 0)/将记录指针定位到待显示页的第一条记录上sqlRst.absolute(intPage-1)*intPageSize+1);/显示数据i=0;while(i 第 页 共 页%if(intPagea href=mysqlpage.jsp?page=下 一 页 1)%a href=mysqlpage.jsp?page=上一页 三、怎么去运行?见前文 JAVA/JSP 学习系列之八(JDBC-ODBC 翻页例子)。注意:MySQL 数据库为test,中间有个表test,有个字段f1(varchar)12.理解构造器作者:东方一蛇/我的家理解构造器构造器和方法的区别名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 41 页 -摘要要学习Java,你必须理解构造器。因为构造器可以提供许多特殊的方法,这个对于初学者经常混淆。但是,构造器和方法又有很多重要的区别。原作者:Robert Nielsen 原站: 我们说构造器是一种方法,就象讲澳大利亚的鸭嘴兽是一种哺育动物。(按:老外喜欢打比喻,我也就照着翻译)。要理解鸭嘴兽,那么先必须理解它和其他哺育动物的区别。同样地,要理解构造器,那么就要了解构造器和方法的区别。所有学习java 的人,尤其是对那些要认证考试的