行业知识
JSP技术
目录
- 一、JSP概述
- (一)什么是JSP
- 1、JSP的概念
- 2、JSP的特征
- (1)跨平台
- (2)业务代码相分离
- (3)组件重用
- (4)预编译
- (二)编写第一个JSP
- 1、创建Web项目
- 2、修改Artifact名称,重新部署项目
- 3、创建欢迎JSP页面
- 4、启动服务器,查看结果
- (三)JSP运行原理
- 1、JSP的工作模式
- 2、JSP的运行原理图
- 3、JSP的运行过程
- (1)执行步骤
- (2)运行过程总结
- 二、JSP基本语法
- (一)JSP页面的基本构成
- 1、JSP页面构成
- 2、案例演示 - 显示系统当前时间
一、JSP概述
(一)什么是JSP
- 目标:了解JSP的概念与特征,能够知道JSP用于做什么
1、JSP的概念
- JSP全名是Java Server Pages,即Java服务器页面。它是Servlet更高级别的扩展。在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。最终,JSP文件会通过Web服务器的Web容器编译成一个Servlet,用来处理各种请求。
2、JSP的特征
(1)跨平台
- 由于JSP是基于Java语言的,使用JSP开发的Web应用是跨平台的,可以应用于不同的系统中,如Windows、Linux等。当从一个平台移植到另一个平台时,JSP和JavaBean的代码并不需要重新编译,这是因为Java的字节码是与平台无关的,这也符合了Java语言“一次编译,到处运行”的特点。
(2)业务代码相分离
- 在使用JSP技术开发Web应用时,可以将界面的开发与应用程序的开发分离开。开发人员使用HTML设计界面,使用JSP标签和脚本动态生成页面上的内容。在服务器端,JSP容器负责解析JSP标签和脚本程序,生成所请求的内容,并将执行结果以HTML页面的形式返回给浏览器。
(3)组件重用
- JSP中可以使用JavaBean编写业务组件,也就是使用一个JavaBean封装业务处理代码或者作为一个数据存储模型,在JSP页面中,甚至在整个项目中,都可以重复使用这个JavaBean,同时,JavaBean也可以应用到其他Java应用程序中。
(4)预编译
- 预编译就是在用户第一次通过浏览器访问JSP页面时,服务器将对JSP页面代码进行编译,并且仅执行一次编译。编译好的代码将被保存,在用户下一次访问时,会直接执行编译好的代码。这样不仅节约了服务器的CPU资源,还大大提升了客户端的访问速度。
(二)编写第一个JSP
- 目标:掌握JSP文件的编写
1、创建Web项目
-
创建Java Enterprise,添加Web Application
-
设置项目名称与保存位置
-
单击【Finish】按钮
2、修改Artifact名称,重新部署项目
-
在项目结构窗口里修改Artifact名称
-
在服务期配置窗口里,重新部署项目
-
切换到【Server】选项卡,设置默认浏览器
3、创建欢迎JSP页面
-
在web目录里创建welcome.jsp
-
注意:由welcome.jsp页面可知,新创建的JSP文件与传统的HTML文件几乎没有什么区别,唯一的区别是默认创建时,页面代码最上方多了一条page指令,并且该文件的后缀名是jsp,而不是html。
修改welcome.jsp
4、启动服务器,查看结果
-
启动服务器,访问http://localhost:8080/JSPDemo/welcome.jsp
-
注意:welcome.jsp的标签中添加的内容已被显示出来,这说明HTML元素可以被JSP容器解析。实际上,JSP只是在原有的HTML文件中加入了一些具有- - Java特点的代码,这些称为JSP的语法元素。
课堂练习:修改首页,显示如下图所示
(三)JSP运行原理
目标:熟悉JSP的运行原理
1、JSP的工作模式
JSP的工作模式是请求/响应模式,客户端首先发出HTTP请求,JSP程序收到请求后进行处理并返回处理结果。一个JSP文件第一次被请求时,JSP容器把该JSP文件转换成为一个Servlet,而这个容器本身也是一个Servlet。
2、JSP的运行原理图
如果是第一次访问JSP文件,被服务器翻译成一个对应的Java文件(Sevlet),然后,再被编译成.class文件并加载到内存中。如果是第二次访问JSP,那就可以直接调用内存中的JSP实例,所以之后访问JSP速度会比之前快一些。
3、JSP的运行过程
(1)执行步骤
第1步、客户端发出请求,请求访问JSP文件。
第2步、JSP容器先将JSP文件转换成一个Java源文件(Java Servlet源程序),在转换过程中,如果发现JSP文件中存在任何语法错误,则中断转换过程,并向服务端和客户端返回出错信息。
第3步、如果转换成功,则JSP容器将生成的Java源文件编译成相应的字节码文件*.class。该class文件就是一个Servlet,Servlet容器会像处理其他Servlet一样来处理它。
第4步、由Servlet容器加载转换后的Servlet类(.class文件)创建一个该Servlet(JSP页面的转换结果)的实例,并执行Servlet的jspInit()方法完成初始化。jspInit()方法在Servlet的整个生命周期中只会执行一次。
第5步、JSP容器执行jspService()方法处理客户端的请求。对于每一个请求,JSP容器都会创建一个新的线程来处理它。如果多个客户端同时请求该JSP文件,则JSP容器会创建多个线程,使得每一个客户端请求都对应一个线程。JSP运行过程中采用的这种多线程的执行方式可以极大地降低对系统资源的消耗,提高系统的并发量并缩短响应时间。需要注意的是,由于第 4 步生成的Servlet实例是常驻内存的,所以响应速度非常快。
第6步、如果JSP文件被修改了,则服务器将根据新的设置决定是否对该文件进行重新编译。如果需要重新编译,则使用重新编译后的结果取代内存中常驻的Servlet实例,并继续上述处理过程。
第7步、虽然JSP效率很高,但在第一次调用的时候往往由于需要转换和编译,会产生一些轻微的延迟。此外,由于系统资源不足等原因,JSP容器可能会以某种不确定的方式将Servlet实例从内存中移除,发生这种情况时,JSP容器首先会调用jspDestroy()方法,然后Servlet实例会被加入“垃圾收集”处理。
第8步、当请求处理完成后,响应对象由JSP容器接收,并将HTML格式的响应信息发送回客户端。
(2)运行过程总结
了解了JSP的运行原理后,完全可以利用其中的一些步骤来做一些工作,例如,可以在jspInit()中进行一些初始化工作(建立数据库的连接、建立网络连接、从配置文件中获取一些参数等),可以在jspDestroy()中释放相应的资源等。
二、JSP基本语法
(一)JSP页面的基本构成
目标:熟悉JSP的页面的基本构成
1、JSP页面构成
虽然已经创建过JSP文件,但是并未对JSP文件的页面构成进行详细介绍。一个JSP页面可以包括指令标识、HTML代码、JavaScript代码、嵌入的Java代码、注释和JSP动作标识等内容。
2、案例演示 - 显示系统当前时间
创建time_info.jsp页面
JSP页面 - 显示系统当前时间系统当前时间:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
页面构成说明图
启动服务器,访问http://localhost:8080/JSPDemo/time_info.jsp
(二)JSP脚本元素
目标:掌握JSP脚本元素的三种类型:JSP Scriptlets、声明标识和JSP表达式
JSP脚本元素是指嵌套在“”之中的一条或多条Java程序代码。通过JSP脚本元素可以将Java代码嵌入HTML页面中,所有可执行的Java代码,都可以通过JSP脚本执行。
1、JSP Scriptlet
(1)基本概念
JSP Scriptlets 是一段代码片段。所谓代码片段,就是在JSP页面中嵌入的Java代码或脚本代码。代码片段将在页面请求的处理期间被执行,通过Java代码可以定义变量或流程控制语句等;而脚本代码可以应用JSP的内置对象在页面输出内容、处理请求和访问session会话等。
(2)语法格式
1
(3)案例演示
创建demo01.jsp页面
JSP Scriptlets 1 2 3 4 5 6 7 8 9 10 11 12 13 14 启动服务器,访问http://localhost:8080/JSPDemo/demo01.jsp2、声明标识
(1)基本概念
在JSP Scriptlets中可以进行属性的定义,也可以输出内容,但是它不可以进行方法的定义。如果想在脚本元素中定义方法,可以使用声明标识。声明标识用于在JSP页面中定义全局变量或方法,它以“”结束。通过声明标识定义的变量和方法可以被整个JSP页面访问,所以通常使用该标识定义整个JSP页面需要引用的变量或方法。
在JSP声明语句中定义的都是成员方法、成员变量、静态方法、静态变量、静态代码块等。在JSP声明语句中声明的方法在整个JSP页面内有效,但是在方法内定义的变量只在该方法内有效。当声明的方法被调用时,会为方法内定义的变量分配内存,而调用结束后立刻会释放所占的内存。
注意:在一个JSP页面中可以有多个JSP声明标识,单个声明中的Java语句可以是不完整的,但是多个声明组合后的结果必须是完整的Java语句。
(2)语法格式
1
2
3
(3)案例演示
创建demo02.jsp页面
JSP声明标识1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
启动服务器,访问http://localhost:8080/JSPDemo/demo14.jsp
(四)exception对象
目标:掌握在JSP页面中使用exception对象处理异常信息
1、exception对象概述
在JSP页面中,经常需要处理一些异常信息,处理异常信息可以通过exception对象实现。exception对象是java.lang.Exception类的实例对象,它用于封装JSP中抛出的异常信息。需要注意的是,exception对象只有在错误处理页面才可以使用,即page指令中指定了属性的页面。
2、案例演示
查看前面创建的error.jsp页面
-
-
-
-
- 目标:掌握JSP文件的编写
- 预编译就是在用户第一次通过浏览器访问JSP页面时,服务器将对JSP页面代码进行编译,并且仅执行一次编译。编译好的代码将被保存,在用户下一次访问时,会直接执行编译好的代码。这样不仅节约了服务器的CPU资源,还大大提升了客户端的访问速度。
- JSP中可以使用JavaBean编写业务组件,也就是使用一个JavaBean封装业务处理代码或者作为一个数据存储模型,在JSP页面中,甚至在整个项目中,都可以重复使用这个JavaBean,同时,JavaBean也可以应用到其他Java应用程序中。
- 在使用JSP技术开发Web应用时,可以将界面的开发与应用程序的开发分离开。开发人员使用HTML设计界面,使用JSP标签和脚本动态生成页面上的内容。在服务器端,JSP容器负责解析JSP标签和脚本程序,生成所请求的内容,并将执行结果以HTML页面的形式返回给浏览器。
- 由于JSP是基于Java语言的,使用JSP开发的Web应用是跨平台的,可以应用于不同的系统中,如Windows、Linux等。当从一个平台移植到另一个平台时,JSP和JavaBean的代码并不需要重新编译,这是因为Java的字节码是与平台无关的,这也符合了Java语言“一次编译,到处运行”的特点。
- JSP全名是Java Server Pages,即Java服务器页面。它是Servlet更高级别的扩展。在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。最终,JSP文件会通过Web服务器的Web容器编译成一个Servlet,用来处理各种请求。
- 目标:了解JSP的概念与特征,能够知道JSP用于做什么
上一篇:怎么解决私有服务器受信?
下一篇:it怎么读英语怎么说?