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

        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脚本里不能定义方法。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值