您的位置:首页 > Web前端 > JavaScript

jsp/servlet相关技术 (二) --- jsp的原理、注释、声明、脚本等

2015-08-14 09:54 211 查看
1、jsp的基本原理

jsp的本质是servlet,当用户向指定的servlet发送请求时,servlet利用输出流动态生成html页面,包括每一个静态的html标签和所有在html页面中出现的内容。

jsp页面的内容有两部分组成:

1、静态部分:标准的html标签、静态的页面内容,这些与静态html页面相同

2、动态部分:受到java程序控制的内容,这些内容有java程序来动态生成

jsp的本质是servlet(一个特殊的java类),每个jsp页面就是一个servlet实例——jap页面由系统编译成servlet,servlet再负责响应用户请求。也就是说,jsp是servlet的一种简化,使用jsp时,其实还是使用servlet,因为web应用中的每个jsp页面都会由servlet容器生成对应的servlet。对于tomcat而言,jsp页面生成的servlet放在work路径对应的web应用下。例如新建一个test.jsp页面,在work对应 的目录下找到如下文件:test_jsp.java和test_jsp.class。

打开test_jsp.java,会发现这是一个servlet类,如下所示:



仔细阅读该java类,发现该类主要包含如下3个方法(去掉方法名的_jsp前缀,将首字母小写):

1、init():初始化jsp/servlet的方法

2、destroy():销毁jsp/servlet之前的方法

3、service():对用户请求生成相应的方法

分析jsp页面的工作原理,我们知道:

1、jsp页面必须在jsp服务器内运行

2、jsp文件必须生成servlet才能执行

3、每个jsp页面的第一个访问者速度最慢,因为必须等待jsp编译成servlet

4、jsp页面输送到客户端的是标准的html页面

2、jsp注释

jsp注释无法发送到客户端,因此无法通过源代码看到

jsp注释的格式:

<%-- 注释内容 --%>

html注释则可以在源代码中看到

html注释的格式:

<!-- 注释内容 -->

3、jsp声明

jsp声明用于声明变量和方法。jsp声明将会转换为对应servlet的成员变量或成员方法。

jsp声明的语法格式为:

<%! 声明内容 %>

注意:jsp声明的变量和方法可以使用public、private等访问控制符修饰,也可以使用static修饰,将其变为类属性和类方法,但不能使用abstract修饰声明的方法,因为抽象方法将导致jsp对应的servlet变成抽象类,从而无法实例化。

4、jsp的输出

jsp的输出表达式的方法:

<%=表达式 %>

注意:jsp输出表达式之后不能带分号

5、jsp脚本

jsp脚本的格式:

<% 脚本内容 %>

jsp脚本将转换成servlet里_jspService方法的可执行代码,说明jsp脚本也可以声明变量,但其中声明的变量时局部变量,不能使用private、public等访问控制符修饰,也不可使用static修饰。但是有一点,jsp脚本里无法声明方法,这是由于jsp脚本将转换成_jspService方法里的可执行代码,而java语法不允许在方法里定义方法,所以jsp脚本里不能定义方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: