zoukankan      html  css  js  c++  java
  • JSP的学习(2)——语法知识一

      上一篇《JSP的学习》讲述了JSP的一些基础知识和底层原理,本篇将来学习JSP所需掌握的语法知识等。

    JSP的语法主要包括以下几个部分的内容:

      1)         JSP模板元素

      2)         JSP脚本表达式

      3)         JSP脚本片断

      4)         JSP声明

      5)         JSP注释

      6)         JSP指令

      7)         JSP标签

      8)         JSP九大隐式(内置)对象

       我们学习JSP语法就围绕上述几个语法进行展开。

    JSP模板元素:

      JSP模板元素指的是在JSP中的HTML内容,JSP模板元素定义了网页的基本框架,即定义了页面的结构和外观,例如:

    1     <font color="red" >
    2           <%
    3               Date date = new Date();
    4               out.write(date.toLocaleString());
    5           %>
    6     </font>

    其中,包围着Java代码的<font>这个HTML标签就称为JSP的模板元素。

    JSP脚本表达式:

      JSP脚本表达式(expression) 用于将Java程序的数据输出到浏览器页面上。

      语法格式:

        <%= 变量或者表达式 %>

    例1: 在JSP中写入:

     The current time is : <%= new java.util.Date() %>

      在浏览器中显示的效果如下:

      

    例2:在JSP中写入:

    1     <%
    2         Date date = new Date();
    3         String time = date.toLocaleString();
    4     %>
    5     The current time is :
    6     <%=time %>

      在浏览器中显示的效果如下:

      

      我们知道JSP最终会被翻译转换成Servlet,那么通过在JSP中的脚本表达式<%=  %>会在Servlet中怎么表示呢,我们查看Tomcat的【work】目录下该JSP对应的 .java文件(如果不懂请看上一篇博客《JSP的学习(1)》)。

      

      可以看到在转换后的Servlet中,就是通过JSPWriter类的out对象将time这个变量输出(print方法和writer方法基本相同,只是通过print方法使我们在浏览器查看源码时也是自动对齐的)。所以通过JSP的脚本表达式显示Java程序的数据和Servlet中将数据通过流输出其实就是一码事!

      简单来说就是JSP引擎(JSP引擎是指在Tomcat中将JSP翻译转换成Servlet的那个程序)在翻译脚本表达式时会将程序数据传换成字符串,然后通过在Servlet中调用out.print(…)方法将数据输出给浏览器。

      注意,在JSP脚本表达式中的变量或表达式后面不能有分号“;”

    JSP脚本片断:

      JSP脚本片断(scriptlet)用于在JSP页面中编写多行Java代码。

      语法格式:

         <%
             ……   //多行Java代码
         %>

      注意:在使用脚本片断时,只能在其中编写Java代码,不能出现模板元素(HTML标签等),因为JSP引擎在翻译JSP代码时,会将JSP脚本片断原封不动的放到Servlet的 _jspService()方法中。同时,脚本片断中的Java代码必须严格按照Java格式,如每行后必须有分号“;”。

      在一个JSP页面中可以有多个脚本片断,同时这些脚本片断之间可以相互访问,犹如所有的脚本片断内容都放置在一对<%  %>中,这点想想转换后的Servlet是什么样子就知道了,例:

     1     <%
     2         int x = 10;
     3         out.print(x);
     4     %>
     5     <br><br>
     6     <%
     7        int y = 20;
     8        out.print(x);    //依然能输出 x=10
     9     %> 

      在每个脚本片断之间可以插入文本,HTML标签和其他JSP元素。

    JSP声明:

      JSP声明是指在经过JSP声明的Java代码会放置在Servlet的_jspService()方法外部。(而上面JSP脚本片断的代码则是放在_jspService()方法内部中)

      JSP声明的语法格式: 注意在第一个“%”后有一个感叹号“!”

        <%!
            ……  //java代码
       %>

      由于经过JSP声明的Java代码会放置在Servlet的_jspService()方法外部,所以可以使用JSP声明定义Servlet的新方法、静态代码块、成员变量等等。因为这些都会在Servlet内,又不会在_jspService()中。

      JSP声明可以一个,也可以多个。JSP的隐式对象(如out,page等)因为是在_jspService()方法中定义并在其范围内才可使用,所以在JSP声明中不能使用这些隐式对象。

      JSP声明并不常用,一般只出现在面试题中……

    JSP注释:

      在JSP页面中,JSP注释格式为:

        <%--  注释信息  --%>

      JSP引擎在将JSP页面翻译转换成Servlet程序时,会忽略JSP页面中被注释的内容。

      当然,在JSP中还可以使用HTML注释:<-- 注释信息 --> 。HTML注释与JSP注释在浏览器页面上都看不到注释信息,但是HTML注释会在浏览器查看源码中看到,但是JSP注释不会,因此为了能优化服务器发回浏览器的数据容量,我们还是应该使用JSP注释,这样能减少服务器发送给浏览器不必要的数据。

    JSP指令:

      JSP指令是为JSP引擎而设计的,JSP指令不产生任何可见输出,只是告诉在转换成Servlet的过程中如何处理JSP页面中的其余部分。

      JSP指令将在下一篇《JSP的学习(3)——语法知识二之page指令》中详细介绍。

  • 相关阅读:
    【转】RocketMQ事务消费和顺序消费详解
    RocketMQ初探(五)之RocketMQ4.2.6集群部署(单Master+双Master+2m+2s+async异步复制)
    Spring定时器Quartz的使用
    RocketMQ初探(四)之RocketMQ4.x版本可视化管理控制台rocketmq-console-ng搭建(Apache)
    RocketMQ入门(简介、特点)
    RocketMQ初探(二)之RocketMQ3.26版本搭建(含简单Demo测试案例)
    RocketMQ初探(一)
    tomcat详解
    HDFS读写流程
    RabbitMQ
  • 原文地址:https://www.cnblogs.com/fjdingsd/p/4912428.html
Copyright © 2011-2022 走看看