高级编程技术 JSP讲义.pdf
《高级编程技术 JSP讲义.pdf》由会员分享,可在线阅读,更多相关《高级编程技术 JSP讲义.pdf(241页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章Web动态编程技术JSP 2.1 JSP的概念及特性的概念及特性2 2 JSP页面的组成页面的组成2.2 JSP页面的组成页面的组成2.3 Session元素元素2.4 Cookie元素元素2 5 JSP通过通过JB访问数据库的综合实例访问数据库的综合实例2.5 JSP通过通过JavaBean访问数据库的综合实例访问数据库的综合实例2.6 Student_info实例在实例在JBuilder中的实现中的实现思考题思考题2 1 JSP的概念及特性的概念及特性2.1 JSP的概念及特性的概念及特性2.1.1JSP与ASP脚本语言的比较2.1.1JSP与ASP脚本语言的比较1JSP与ASP处理
2、机制的比较1JSP与ASP处理机制的比较JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码。在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式而程序代码则用来描述处理逻辑普通的HTML页面只依赖式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。ASP的编程语言是基于VB的脚本语言,JSP使
3、用的是Java,这是两者最明显的区别。这是两者最明显的区别ASP与JSP还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在ASP下,基于VB的脚本代码被ASP引擎解释执行;在JSP下,代码被编译成Servlet脚本代码被引擎解释执行;在J下,代码被编译成并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生求时发生。2 2JSPJSP与与ASPASP的性能比较的性能比较2 2JSPJSP与与ASPASP的性能比较的性能比较表2-1 JSP与ASP的性能比较表2-1 JSP与ASP的性能比较性 能JSPASP运行速度 快 较快 运行耗损较小较大运行耗
4、损较小较大难易程度 容易掌握 简单 运行平台 绝大部分平台 Windows平台 扩展性好较好安全性 好 较差 函数支持多较少函数支持多较少数据库支持 多 多 厂商支持 多 较少 对XML的支持支持不支持对组件的支持 支持 支持 对分布式处理的支持支持支持对分布式处理的支持支持支持应用程度 较广 较广 2 1 2JSP2 1 2JSP运行环境运行环境2 2.1 1.2 2 JSPJSP运行环境运行环境Sun公司的JSP主页在http:/ JSP 规范。这些规范定义了供应商在创建 JSP 引里可以下载 JSP 规范。这些规范定义了供应商在创建 JSP 引擎时所必须遵从的一些规则。执行JSP代码前,
5、需要在服务器上安装JSP引擎Tomcat。以安装到E盘为例,安装Tomcat之后,将源文件放在E:tomcatwebappsROOT目录下,执行E:tomcatbinstartup.bat命令即可启动服务器。默认配置p命令即可启动服务器。默认配置下服务器在端口 8080 监听,使用http:/localhost:8080即可打开缺省页面可打开缺省页面。2.1.3JDK的安装与配置2.1.3JDK的安装与配置发具()是许多专Java开发工具JDK(Java Development Kit)是许多Java专家最初使用的开发环境。尽管许多编程人员已经使用第三方的开发工具,但JDK仍被作为Java开发
6、的重要工具。JDK的安装与安装其他软件样直接双击t按照安装要求就可以顺安装其他软件一样,直接双击setup,按照安装要求就可以顺利安装成功。现在以1.4.0版本为例,假设安装到E盘。JDK的安装及配置步骤如下:(1)设置JAVA_HOME环境变量:右键单击【我的电脑】属性【高级】【环境变量】,新建一个系统变量,命名为JAVA_HOME,值为E:j2sdk1.4.0,单击【确定】完成配置。如图2 1所示。图2.1所示。图2.1 JAVA_HOME的配置(2)设置CLASSPATH环境变量:环境变量的配置位置同上。新建一个系统变量命名为CLASSPATH值为新建一个系统变量,命名为CLASSPAT
7、H,值为E:j2sdk1.4.0libdt.jar;E:j2sdk1.4.0libtools.jar,单击【确定】完成当前配置。如图2.2所示。图2.2 CLASSPATH的配置至此,JDK环境变量配置完毕,单击【环境变量】属性框里的【确定】,可完成应用配置。这样,就完成了运行Tomcat里的【确定】,可完成应用配置。这样,就完成了运行Tomcat的前提。2.1.4Tomcat的安装和配置2.1.4Tomcat的安装和配置一般来说Tomcat可从网站直接下载解压后即可使用般来说,Tomcat可从网站直接下载,解压后即可使用。如果有安装程序,则直接点setup安装即可。以解压或安装到D盘为例解压
8、或安装完后进入到然后击盘为例:解压或安装完后,进入到d:tomcatbin,然后双击目录里名为startup.bat的批处理文件就可以开启Tomcat服务器。如图2.3所示。端口为8080图2 3Tomcat服务器启动后的示意图图2.3 Tomcat服务器启动后的示意图注意:有些时候8080端口可能会被某个应用程序占用(如Oracle等)这时就需要修改Tomcat服务器的端口可在Oracle等),这时就需要修改Tomcat服务器的端口,可在D:tomcatconfserver.xml中修改,如图2.4所示。图2 4Tomcat配置文件server xml图2.4 Tomcat配置文件serve
9、r.xml2.1.5JBoss的安装和配置2.1.5JBoss的安装和配置现今,越来越多的Web应用建立在JBoss Web服务器上,在此对JBoss的安装及配置进行简要介绍。在JBoss的安装目录下此对J oss的安装及配置进行简要介绍。在J oss的安装目录下(如D:jboss-3.2.6)进入bin目录,运行run.bat文件,运行后的面如图所的界面如图2.5所示。端口为8088图2.5 JBoss服务器完全启动后的示意图JBoss的配置文件在D:jboss-3 2 6serverdefaultdeployjbossweb-3.2.6serverdefaultdeployjbossweb
10、tomcat50.sarserver.xml,如图2.6所示。注:这里以JBoss装在D盘下为例。设置端口为8088图2.6 JBoss配置文件server.xml2 2.1 1.6 6J JSPSP的基本语法的基本语法.J J的基本语法的基本语法功能:写在JSP程序中,但不发给客户。JSP语法:JSP语法:例程2 1JSP注释(comment html)例程2.1 JSP注释(comment.html)A Comment Test A Test of Comments 描述:用隐藏注释标记的字符会在JSP编译时被忽略掉。JSP编译器不会对之间的语句进行编译它不会显JSP编译器不会对之间的语句
11、进行编译,它不会显示在客户的浏览器中,也不会在源代码中看到。上面的例程如图2.7所示。从运行效果来看代码里面的注释部分Thi从运行效果来看,代码里面的注释部分This comment will not be visible in the page source并没有出现在浏览器里。图2.7 comment.html的运行效果图的行效果2.1.7JSP生命周期2.1.7JSP生命周期JSP的生命周期主要包括初始化请求处理和中止JSP的生命周期主要包括初始化、请求处理和中止。初始化:在客户端第一次请求该JSP页时,调用jspInit()方法。请求处理:当客户请求到达时,容器调用jspService
12、方法。该方法是JSP页面转换成Servlet时自动转换成的。中止:当Web服务器和容器关闭时,容器调用JSP的()方法jspDestroy()方法。2 2 1 1 8 8S S 执行流程执行流程2 2.1 1.8 8J JS SP P执行流程执行流程JSP是通过JSP Container转换成Servlet并运用于网页的JSP是通过JSP Container转换成Servlet并运用于网页的语言。JSP执行流程如图2.8所示。JSP容器请求转换第一次?是请求应答Servlet文件第次?否客户端客户端Web服务编译应答的类JSP文件是否修改过?是应答应答的类Servlet容器否图2 8JSP执行
13、流程示意图图2.8 JSP执行流程示意图当用户在客户端发出请求时,通过Web服务传到JSP容器,JSP容器将判断JSP页面在当前JSP容器中是否是第一次请求JSP容器将判断JSP页面在当前JSP容器中是否是第一次请求。如果是第一次请求,则将JSP文件编译成Servlet文件以应答客户请求,否则需判断JSP页面是否作过修改;如果作过修改,则需编译JSP文件,否则无需编译,直接调用上次编译后的应则需编译JSP文件,否则无需编译,直接调用上次编译后的应答类进行客户端的响应。2.2 JSP页面的组成2.2 JSP页面的组成JSP页面包括JSP元素、注释及HTML元素,如图2.9所示。JSP指令:用于将
14、消息传送到JSP引擎。JSP动作:使用XML语法格式的标记来控制JSP引擎的各种行为JSP动作:使用XML语法格式的标记来控制JSP引擎的各种行为。JSP脚本:插入Java语言程序代码。JSP指令JSP动作JSP元素声明JSP脚本程序段JSP:Html:注释JSP页面表达式HTML元素图2 9S 页面的组成图2.9 JSP页面的组成2.2.1JSP指令2.2.1JSP指令指令是为引擎设计的该指令并不直接产生任何JSP指令是为JSP引擎而设计的。该指令并不直接产生任何可见输出,而只是告诉引擎如何处理其余JSP页面。这些指令始终被括在“”标记中。两个最重要的指令是page和include。另外,t
15、aglib指令很少使用,在用JSP1 1创建自定义标记时可以使用它。很少使用,在用JSP1.1创建自定义标记时可以使用它。几乎在所有的JSP页面顶部都会看到page指令。尽管不是必需的,但page指令可以让你指定:需的,但p g 指令可以让你指定(1)到何处查找起支持作用的Java类别:(2)出现Java运行问题时,通过errorPage将用户引向何处:1include指令1include指令il d 指令用于把其它的文本文件或JSP文件加入到当前include指令用于把其它的文本文件或JSP文件加入到当前的JSP文件中,同时解析这个文件中的JSP语句。include指令可以把你的内容分成更多
16、可管理的元素,比如包括一个普通页面页眉或页脚的元素。包含的网页可以是一个固定的HTML 页面或更多的JSP内容,形式如:个固定的页面或更多的J内容,形式如指令将会在JSP编译时插入一个包含文本或指令将会在JSP编译时插入一个包含文本或代码的文件,当你使用指令时,这个包含的过程相当于静态的静态的包含就是指这个被包含的文件将会过程相当于静态的。静态的包含就是指这个被包含的文件将会被插入到JSP文件中去。这个包含的文件可以是JSP文件、HTML文件或文本文件如果包含的是JSP文件则这个包含的JSP文文件或文本文件。如果包含的是JSP文件,则这个包含的JSP文件中的代码将会被执行。这个被包含文件可以是
17、HTML文件、JSP文件、文本文件,或者只是一段Java代码。但是得注意,在这个包含文件中不能使用、标记,因为这将会影响在原JSP文件中同样的标记,有时还会导致错误。在原J文件中同样的标有时会导致错如果这个包含文件被改变,则包含此文件的JSP文件将被重新编译新编译。属性属性:file=relativeURL:这个包含文件的路径名一般来 filerelativeURL:这个包含文件的路径名般来说是指相对路径,不需要什么端口、协议和域名,如error.jsp、templates/onlinestore.html、/beans/calendar.jsp/beans/calendar.jsp 如果这个
18、路径以“/”开头,那么这个路径主要是参照JSP应用的上下关系路径;如果路径是以文件名或目录名开头的,那么这个路径就是正在使用的JSP文件的当前路径。例程2 2 include指令(include jsp)例程2.2 include指令(include.jsp)An Include TestAn Include Test The current date and time are 被包含文件d tj被包含文件date.jsp:图2.10 include.jsp的运行效果2 2pagepage指令指令2 2pagepage指令指令功能:定义JSP文件中的全局属性。JSP 语法JSP 语法:%pag
19、e language=java extends=package.class import=package.class|package.*,.session=true|false|buffer=none|8KB|sizekb autoFlush=true|false autoFlush=true|false info=text Pl tiURL errorPage=relativeURL contentType=mimeType ;charset=characterSet|text/html;charset=ISO-8859-1 text/html;charset ISO 8859 1 isEr
20、rorPage=true|false 例:p gpj,jg 相关描述指令作用于整个页面同样包相关描述:指令作用于整个JSP页面,同样包括静态的包含文件。但是,指令不能作用于动态的包含文件,比如。可以在一个页面中用多个指令,但是其中的属性只能用一次。不过也有个例外,那就是import属性。因为import属性和Java中的import语句差不多(参照Java Language),所以就可以多用此import语句差不多(参照Java Language),所以就可以多用此属性几次。无论把指令放在JSP文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性以及好的编程习惯,最好还
21、是把它放在JSP文件的顶部。属性属性:language=java:声明脚本语言的种类,暂时只能用ggj声明脚本语言的种类,暂时只能用“java”。extends=package.class:标明JSP编译时需要加入Java Class的全名,但是得慎重地使用它,它会限制JSP的编译能力。|import=package.class|package.*,.:指明需要导入的Java包的列表,这些包就作用于程序段、表达式以及声明。下面的包在JSP编译时已经导入了所以不需要再指明下面的包在JSP编译时已经导入了,所以不需要再指明:java.lang.*jgjavax.servlet.*javax.ser
22、vlet.jsp.*javax servlet httpjavax.servlet.http session=true|false:设定客户是否需要HTTP session。如果设定为true,那么session是有用的。如果设定为false,那么就不能使用session对象,以及定义了scope=session的元素,这样使用会导致错误。缺省值是true。buffer=none|8KB|sizekbbuffer的大小 buffer=none|8KB|sizekb:buffer的大小被out对象用于处理执行后的JSP对客户浏览器的输出。缺省值是8 KB是8 KB。autoFlush=true|
23、false:设置如果buffer溢出,是否需要强制输出。如果其值被定义为true(缺省值),输出正常,如果它被设置为false,并且这个buffer溢出,就会导致一个意外错误的发生。如果把buffer设置为none,那么就不能把autoFlush设置为false。isThreadSafe=true|false:设置JSP文件是否能多线程使用缺省值是t也就是说JSP能够同时处理能多线程使用。缺省值是true,也就是说,JSP能够同时处理多个用户的请求。如果设置为false,则一个JSP文件一次只能处理个请求处理一个请求。info=text:一个文本在执行JSP时将会被逐字加入 info=text
24、:个文本在执行JSP时将会被逐字加入JSP中,能够使用Servlet.GetServletInfo方法取回。errorPage=relativeURL:设置处理异常事件的JSP文件。当页面出现一个设有捕获的异常时,指向另一个JSP页文件当页面现个设有捕获的异常时指向另个J页面的URL。contentType=mimeType ;charset=characterSet|text/html;charset=ISO-8859-1:设置MIME类型。缺省MIME类型是text/html,缺省字符集为ISO-8859-1。isErrorPage=true|false:设置此页是否为出错页如果被设置为则
25、能使用对象页。如果被设置为true,则能使用exception对象。3taglib指令3taglib指令功能定义个标签库及其自定义标签的前缀功能:定义一个标签库及其自定义标签的前缀。JSP 语法:JSP 语法:uri:英文全称为Uniform Resource Identifier,其功能是根据标签的前缀对自定义的标签进行惟一的命名。例:.相关描述:指令声明此JSP文件使用了自定义的标 指令声明此JSP文件使用了自定义的标签,同时引用标签库,还指定了它们的标签的前缀。自定义的标签含有标签和元素之分。因为JSP文件能够转化为XML,所以了解标签和元素之间的联系很重要。转化为,所以了解标签和元素之
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级编程技术 JSP讲义 高级 编程 技术 JSP 讲义
限制150内