《JSP入门教程》word版_第1页
《JSP入门教程》word版_第2页
《JSP入门教程》word版_第3页
《JSP入门教程》word版_第4页
《JSP入门教程》word版_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.1. JSP入门教程(一)作者:SUN/网猫欢迎使用JavaServer Pages(以下简称JSP)技术制作动态内容网页的方法。 如果你希望学习这篇教程的话,我想你一定是这项技术的新手。你可能想成为一名利用JSP技术开发网络应用程序的程序员或者网页设计师。本教程中包含了一系列JSP的技巧和一些简单的代码的写法,每一步都举了一组例子来讲述原理。我建议你在学习本教程之前先去看一看FAQ,了解如果配置你的服务器好让他能支持并运行JSP。那样你就可以跳过前边的内容直接看你感兴趣的内容了。OK,费话少说,Lets go!第一课:真正的开始 dukebanner.html    

2、  helloworld.jsp Hello, World   Hello, World! 页面说明:在很多JSP文件中你都要写上这样的说明。在helloword.jsp中:傻瓜也看得出来,这句话没什么大用,只是简要的说明一下这段代码的作用。你可以在JSP文件中的任何地方写这种代码,但是好的习惯是把他写在最前面,还有,因为他是JSP标签,记住一定要放在前面,呵 include说明: include用来在主JSP文件中调用本地的一个其他文件,通常是一些版权信息啦,脚本语言啦等其他任何你想在其他文件中重复使用的代码。在这个例子中就是调用了一个图片其实。大家明白这个意思就得了。

3、随便说两句: 在JSP中对写法非常敏感,不可以有一点错误。举个例子,把写成那样服务器会出现错误信息。一些如类名,包名,路径名还有其他的敏感的标签等千万不要写错。有一些JSP标签拿不准的话就去查一下JavaServer Pages语法卡片。 代码写好了,如何试验一下呢? 我这里写的UNIX下的方法,如果你用Windows,那么换一下路径就可以了 1、 先建一个目录:./jswdk-1.0/examples/jsp/tutorial/helloworld2、 把这些文件拷过去background.gif, duke.waving.gif, dukebanner.html, and hellowor

4、ld.jsp 3、 cd ./jswdk-1.0,然后startserver 4、 开一个浏览器, 5、 http:/yourMachineName:8080/examples/jsp/tutorial/helloworld/helloworld.jsp2. JSP入门教程(二)作者:SUN/网猫第二课:用HTML表单 大多数情况下,商业的网站都要有一些表单,比如说输入一下消费者的姓名啦,地址啦,或者敲一个词来用搜索引擎来查一下啦,或者市场人员从来访者处收集一些数据供参考什么的。 那些表单传回的数据怎么处理的? 来访者通过表单向JSP引擎输入了数据,并保存在了request对象中,那么接下来怎

5、么办?首先,JSP引擎把存放在request对象中的数据发到JSP页面指定的服务器端的组件(JavaBeans组件, servlet,或者enterprise bean),组件收到这些个数据以后,有可能再存这些数据到数据库或者其他的地方存放起来,同时,返回一个response对象给JSP引擎。JSP引擎再把response对象传给JSP页面,这时的页面包含了定义好的格式和从服务器端得到的数据。这时JSP引擎和Web服务器再发送一个整理好的完整的页面给客户,也就是这们在浏览器上看到的结果。客户和服务器间的通信协议可以用HTTP,当然也可以用其他的。Request和Response对象在你制作的J

6、SP原代码中起作用。到于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、 如果需要处理

7、更多的用户数据,用request对象。说了半天你可能看不懂,其实看一个例子你就懂了。先看一个简单的hello的例子吧: 这段程序其实还是计算机程序里那个最经典的“hello,world”的程序,只不过呢,我使他挠了一点弯儿,使他看起来比较智能和复杂。首先你输入你的名字,然后Duke跟你说:“hello!” 看看代码吧: dukebanner.html       主JSP文件:hellouser.jspHello, User   My name is Duke. Whats yours?td width=150   回应文件:response.

8、jsp   Hello, !处理数据的Bean:(namehandler.java)package hello;public class NameHandlerprivate String username;public NameHandler() username = null;public void setUsername( String name ) username = name;public String getUsername() return username;建立HTML表单一个HTML的窗分为三个部分:标签,输入方法,提交按钮发数据到服务器。一般的HTML页面里,是

9、这么写的,在其他的页面里的action属性可能是其他特殊的CGI程序或者其他能处理数据的程序,那么在JSP里边是怎么用的呢,呵,如果你想把数据发到Bean里的话那么你可以省略action里边的东西了,直接写标签或者其他特定的JSP文件了。接下来的那些表单和普通的HTML差不多了,的方法,然后加一个提交按钮,可能还有一个Reset按钮,对了,别忘了,还得给每一个input表单加一个名字。这么写:使用GET和POST方法用GET和POST方法可以发数据到服务器,在JSP程序中GET和POST方法可以发数据到Bean、servlet、或者其他服务器端的组件。理论上说,GET是从服务器上请求数据,PO

10、ST是发送数据到服务器。事实上,GET方法是把数据参数队列(query string)加到一个URL上,值和表单是一一对应的。比如说,name=John。在队列里,值和表单用一个&符号分开,空格用+号替换,特殊的符号转换成十六进制的代码。因为这一队列在URL里边,这样队列的参数就能看得到,可以被记录下来,或更改。通常GET方法还限制字符的大小。事实上POST方法可以没有时间限制的传递数据到服务器,用户在浏览器端是看不到这一过程的,所以POST方法比较适合用于发送一个保密的(比如信用卡号)或者比较大量的数据到服务器。写Bean如果JSP程序用到了Bean,你就得按照JavaBeans API的说

11、明设计你的Bean。记住下面两个关键部分。如果JSP程序里用标签,那你就得在Bean里边配合的GET方法。如果JSP程序进而用 标签,那你就得在Bean里边配合的Set方法。设置参数到Bean或者从里边取参数将在以后的部分详细介绍。传数据到Bean把HTML表单的数据传到Bean里需要两个工作: 用标签创建或者定位到Bean 在Bean里面用设置属性值 第一步用标签创建或者定位到Bean一定要用在之前,首先按照你指定的名字查找Bean,如果没找到,会给你指定一个。允许在一个JSP文件中创建一个Bean,然后再另一个文件中调用,这就给了Bean一个很广泛的运行空间。 第二步在Bean里面用设置属

12、性值。最简单的方法是把值定义成与表单名相配合。举个例子,如果你把表单名定义成“username”那么,你就在Bean里定义属性“username”然后用方法getUsername和setUsername。 当然也可以定义成不同的名字,只要你不认为麻烦。谁让你记忆力好呢! Request对象 用户输入的数据用来存放在Request对象里,用javax.servlet.HttpServletRequest来执行(你也可以用其他不同的工具来执行,但他们其实都是javax.servlet.HttpServletRequest的子集)你也可以直接用scriptlet来直接访问Request对象。Scri

13、ptlet将在下一讲里边详细的讨论,现在你只需要知道他是用脚本语言写的一段放?lt;% 和% 之间的代码就足够了。在JSP 1.0中,你必须用JavaTM程序语言作为你的脚本语言。你经常会用到如下方法处理Request对象:方法说明执行结果getRequestJavax.servlet.jsp.PageContext返回当前Request对象getParameterNamesjavax.servlet.ServletRequest 返回当前Request对象参数名getParameterValuesjavax.servlet.ServletRequest 返回当前Request对象参数值你将会

14、发现其他方法包括ServletRequest,HttpServletRequest或者其他任何ServletRequest的子集。JSP引擎经常在scenes之后使用Request对象,即使你没有明确地在JSP文件中调用。从Bean中调数据到JSP页面一旦用户的数据被传到Bean,你就想重新得到数据,然后在JSP面页中显示出来。想达到这一步,你就得用到标签。传Bean名和属性名:Hello, !, , 和 标签必须相配,举个例子:hellouser.jsp:response.jsp:Hello, !在这个例子里,标签被放在两个文件中,但是指定的名字都是相同的,如果不同的话,那么系统会返回一个错

15、误信息。如何运行例子我用的是主机,如果你用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/网猫使用脚本在有些地方,你大概要

16、加一些好的,成熟的程序到你的JSP页里,JSP的标签虽然很强大,但是完成某些工作还是比较费力的困难的。这时你可以使用脚本语言段来补充JSP标签。使用的JSP引擎是支持脚本语言的,SUN的JSP参考文说明,必须使用Java程序语言来编写脚本,但是其他第三方的JSP引擎允许使用其他语言来写脚本程。如何增加脚本首先,你必须了解一些增加脚本元素到JSP页中的一些基本规则1、 在JSP页面里用Page指令定义脚本(默认值是Java,一般不需要定义)2、 声明语法声明变量和方法(函数)。3、 表达式语法定义脚本语言表达式4、 脚本语法%可以操作声明、表达式和其他类型合法的代码段在页脚本语言。5、 一定要在

17、结尾加%标签声明、表达式、脚本使用起来有一些相似,但也有一些不同让我们用一些例子来讲述一下相同点和不同点吧。声明包含了一个或多个变量和方法,结尾以分号分隔。例:在页面中使用变量和方法之前必须声明声明的范围通常是JSP页,但如果页面中使用INCLUDE指令包含其他页面,范围应变得扩展到被包含的页面。表达式可以在页面中包含任何合法的语言表达式,不用分号。例:表达式和脚本的一个关键的不同点就是不需要分号。如果你需要在脚本中使用表达式就必须加分号。脚本允许你写的任何数量的脚本语言例:记住在脚本中必须使用分号结尾。猜数字游戏猜数字游戏非常的有趣,而且从这里你还可以学到很多表达式的用法。代码显示用的主屏幕

18、(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作为例子。三

19、、配置 桌面上选择“我的电脑”(右键) 高级 环境变量 在“系统变量”-“新建” 在变量名中输入: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”,它的功能就是显示

20、“Hello World”。注意:该文件名称必须为“HelloWorld.java”,大小写也区分。细心的朋友会注意到就是和public class后的名字一样的。 (2)编译:在dos命令提示符下执行:(注意大小写) javac HelloWorld.java 如果正常的话,将生成HelloWorld.class文件。 (3)运行:在dos命令提示符下执行:(注意大小写) java HelloWorld这里有一个java初学者很有可能遇到的问题(不怕笑话,我也是)就是输入:java HelloWorld.class多了后面的.class,一定要注意,否则会出现下面的错误:Exception

21、in thread main java.lang.NoClassDefFoundError:HelloWorld/class(本人猜想,是不是java翻译“.”的时候换成了“/”,或者是其他的本人不知道的原因)好了,运行java HelloWorld应该会出现伟大的“Hello World”了。到这一步,你已经成功配置好了JDK,可以开始漫长而痛苦(对于象我一样的,以前不懂java的朋友来说,可以用“痛苦”来形容,不理解的概念,不熟悉的java api.,不过,不要急,我将和大家一起慢慢入门,慢慢提高. .)的Java过程了。 5. Tomcat安装作者:东方一蛇/我的家一、前言 对于初学者来

22、说,要执行JSP和Servlet,Tomcat是一个很不错的选择,。Tomcat是Apache组织的产品,sun公司对它的支持也相当不错。 二、下载,安装 下载地址为JAVA官方站点:,国内也比较多。从这个地址可以下载:/builds/tomcat/release/,我下载的是Tomcat32b4版本。 下载完,解压到一个目录,我这里用F:tomcat32b4作为例子。三、配置 桌面上选择“我的电脑”(右键) 高级 环境变量 在“系统变量”-“新建” 在变量名中输入:JAVA_HOME,变量值中输入:F:JDK

23、13然后确定; 在“系统变量”-“新建” 在变量名中输入:TOMCAT_HOME,变量值中输入:F:tomcat32b4然后确定;好了,配置完了,要重新启动计算机后,环境变量才能有效的。注意,对于Tomcat其他设置,如果没有必要,是可以不改的,我这里讲的都是最简单而可行的方法,如果对你的改动没有把握,还是建议不要改动。四、测试 (1)启动tomcat:在F:tomcat32b4bin下有一个:startup.bat,运行它,将出现一个Dos窗口。 (2)浏览 在浏览器中输入:http:/localhost:8080/看看有什么效果(Tomcat默认端口为8080,在不冲突的前提下,你可以改动

24、的),是不是可以看到一只可爱的小猫(其实,我个人认为,无论从颜色还是样子,更象一只老虎) (3)运行 在这个页面有JSP Examples和 Servlet Examples, 好了,自己测试运行它们吧。 (4)退出tomcat在F:tomcat32b4bin下有一个:shutdown.bat,运行它,将关闭Dos窗口(如果坚持直接关闭这个DOS窗口也是可以的,但是,既然有这个shutdown.bat,应该有它存在的理由)。6. Resin+Apache的安装作者:东方一蛇/我的家一、前言 对于初学者来说,要执行JSP和Servlet,Tomcat是一个很不错的选择。你也可以用Resin,这两

25、个产品都是可以不花一分钱的。 Resin对Xml的支持是很好的。 二、下载,安装 下载地址为Resin官方站点:/。从这个地址可以下载:/download/index.xtp,我下载的是Resin1.1.4版本。 下载完,解压到一个目录,我这里用E:resin114作为例子。三、配置 在这之前,当然我们要先安装了Apache,而且能正常运行了。 (1)配置Apache打开apache的conf子目录下的httpd.conf文件,用文本编辑工具编辑它。加入如下几行:LoadModule caucho_module E

26、:resin114srunwin32-1.3.6mod_caucho.dllAddModule mod_caucho.cCauchoConfigFile E:resin114confresin.confSetHandler caucho-status注意:上面的步骤也可以通过更加简单的方式实现,就是直接运行E:resin114bin目录下的setup.exe,勾上apache,然后Apply,最后OK。这样,上面这些行应该会自动加上的。 (2)配置Resin在resin的conf子目录下有个resin.conf文件,将该文件备份一个。然后建立resin.conf文件,如下内容:四、测试 (1)

27、启动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 A

28、pp Server的安装作者:东方一蛇/我的家一、前言 Orion这个东西,小巧,但是功能却非常多,废话不讲,看它目前的支持就知道了: (1)Servlets/JSP (2)EJB (3)HTTP (注:说明不再需要Apache或者IIS等Web Server) 二、下载,安装 下载地址为Orion Application Server官方站点:/,我下载的是Orion1.4版本。 下载完,解压到一个目录,我这里用E:Orion作为例子。三、配置 (1)根据Orion官方站点的安装说明,如果要支持JSP等技术的话,要将JDK的tools.jar

29、复制到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

30、.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 密码空,可以自己修改的。 二

31、、代码 % /变量声明 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 str

32、Page; 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 n

33、ame,email,body from guestbook; /执行SQL语句并取得结果集 sqlRst = sqlStmt.executeQuery(strSQL);/将记录指针定位到待显示页的第一条记录上 i = (intPage-1) * intPageSize; for(j=0;j JSP数据库操作例程 - 数据分页显示 - JDBC-ODBC jdbc-odbc留言版 % /显示数据 i = 0; while(i 姓名:邮件: 第页 共页 %if(intPagea href=mssql.jsp?page=下一页 1)%a href=mssql.jsp?page=上一页 三、怎么去运行

34、? 将代码存为文件test.jspOrion 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) 二、下

35、载,安装 % 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; i

36、nt 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 姓

37、名 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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论