![轻松学Java Web开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/142/656142/b_656142.jpg)
2.2 JSP的基本语法
JSP网页主要分为脚本和网页数据两部分。网页数据就是JSP服务器不需要处理的部分。例如,HTML的内容会直接送到客户端执行。脚本是必须经由JSP处理的部分,大部分脚本都以XML作为语法基础,其可以分为四种类型:JSP脚本、编译指令、动作标签和表达式语言,如图2.26所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0049_0003.jpg?sign=1738882520-vV1ZsUodVqRCuAetB1pU60UBThAnRgVz-0-b93d58a34bca1128fb8b568a8044945b)
图2.26 脚本的四种类型
本章我们会为大家讲解前面三种类型,关于表达式语言(Expression Language)会在后面的章节中为大家单独讲述。本节我们首先来看JSP脚本。
2.2.1 JSP注释
JSP程序中可以包含3种不同类型的注释,如图2.27所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0050_0001.jpg?sign=1738882520-nre5sar3t8pPUoYdzjgNVB5sOxxDN8Ha-0-148c891b51d6104b1a3879ae947f8bba)
图2.27 JSP注释
1.JSP标准注释
JSP标准注释通常用来编写JSP说明文档,当JSP网页在服务器中编译时将被完全忽略,其语法格式如图2.28所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0050_0002.jpg?sign=1738882520-4uE0M4OrSa4gKC1wnRAj6P57aEZfTIFP-0-0e4704d649c179b38de2fd82694353cc)
图2.28 JSP标准注释
这是开发程序员专用的注释,可以将开发人员希望隐藏的JSP程序注释起来。这些注释将不会显示在客户的浏览器中,用户也不能通过浏览器的“查看”→“源文件”操作,在源代码中查到。
2.Java注释
在JSP的Java程序中,我们也可以遵循Java语言本身的注释规则,即在一对“<%”和“%>”中,将Java注释添加进去,如图2.29所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0050_0003.jpg?sign=1738882520-jTmWUt5YtkNOZfVwnH7EMTb1jJDyQWvm-0-01eefe3fb0335a5a1f0c5c75d919ace9)
图2.29 Java注释
Java注释在JSP页面编译时,也将会被完全忽略,同样用户也不能通过浏览器的“查看”→“源文件”操作,在源代码中查到。
3.HTML注释
HTML注释是一种能在客户端显示的注释,它的语法规则如图2.30所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0050_0004.jpg?sign=1738882520-hmd7vJWr0dMC1YdkUTrVQ0SX9jM3LrB3-0-d7c10956c9766e18bc43081392f53718)
图2.30 HTML注释
JSP页面中的HTML注释和HTML中的注释很相像,也可以通过浏览器的“查看”→“源文件”操作,在源代码中查到。唯一不同的是,可以在这个注释中使用JSP表达式,从而记录一些JSP页面动态运行结果。
【示例2.1】我们可以创建一个HelloWorld.jsp示例来看JSP注释的用法,如图2.31所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0051_0001.jpg?sign=1738882520-Z9gI8IMfqf47ETZIiSBrPrj4fcgcpEvr-0-60b185a24e84e1f23cb5d57e0dae16a9)
图2.31 HelloWorld.jsp示例
由于这是我们的第一个JSP文件,所以我们为大家讲解一下JSP文件的运行过程。首先在MyEclipse中建立一个名为HelloWorld的JSP文件,如图2.32所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0051_0002.jpg?sign=1738882520-mGLNFNSJ4YxnOi5mL79nlybeJoUAaAn0-0-f6b975ba90ea6a7fb787ba104ef7684d)
图2.32 创建HelloWorld.jsp文件
然后在文本编辑区内输入如图2.30所示的内容,如图2.33所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0051_0003.jpg?sign=1738882520-uqv4ngC7A947G99AwK8KCbeI1uSWhpin-0-608d69fd11b6074467f19c885346cbda)
图2.33 在文本编辑器中输入内容
接着对HelloWorld.jsp文件进行编译,编译方式有三种:我们可以执行菜单栏中的“Run”→“Run”命令进行编译,也可以使用快捷键“Ctrl+F11”,或者直接单击工具栏上的“编译”按钮。都可以完成编译过程,如图2.34所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0052_0001.jpg?sign=1738882520-ZwWyZdl6XQcwGD4fEqyrzxpIbtZWb9Ln-0-6889353247c0b1020cc903c141a4c98e)
图2.34 编译的三种方式
当控制台出现如图2.35 所示的界面时说明编译通过,否则读者需要对自己的代码进行修改和调试。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0052_0002.jpg?sign=1738882520-XfBsyODaGp3TjWUeAjc3jeuuTWndcWlw-0-40de5d94c006564e4f351409a03bc13d)
图2.35 正确的编译结果
编译通过后,读者需要在自己的浏览器中输入文件的运行地址才能将JSP文件的运行结果显示出来,如图2.36所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0052_0003.jpg?sign=1738882520-cfnupQ63O74TwlfKjGG7H18hbDefbov0-0-8d57d13aa6e71afee54afe686fb9b513)
图2.36 HelloWorld程序运行结果
我们可以右键单击浏览器界面,在弹出的快捷菜单中单击“查看源文件”选项,就可以看出三种注释方法的区别,如图2.37所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0052_0004.jpg?sign=1738882520-wHuGrohbqd37H4q5BzHv559eZmsTb8Mb-0-662e6b47d2b4af8d392248653c026ea6)
图2.37 三种注释方法在源文件中的显示区别
2.2.2 声明变量和方法
声明用于声明JSP程序中要用到的一个或多个变量和方法。在JSP中声明变量和方法,是以“<%!”开头,以“%>”结尾的,多个变量和方法以“;”分隔。JSP 声明的语法如图2.38所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0053_0001.jpg?sign=1738882520-EIhxf4FfcbvdwLG2DwjwiCazQrTJHbQi-0-746ac6a63f49284c2a0a90863c4000d1)
图2.38 JSP变量的声明
【示例2.2】我们来看一个声明变量和方法的实例jspdec.jsp,如图2.39所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0053_0002.jpg?sign=1738882520-1h1SLqbvhttB6jekAflSZZdiUlMq8obk-0-e321847d11026270166a09371b68a287)
图2.39 jspdec.jsp示例
2.2.3 JSP表达式
JSP表达式用来在JSP页面中输出作为运行结果的字符串或是数值变量。JSP表达式可以被看做是一种简单的输出形式,任何在Java语言规范中有效的表达式都能够作为JSP表达式在JSP页面中使用。JSP表达式语法如图2.40所示。
![](https://epubservercos.yuewen.com/1E8AEB/3590313403979401/epubprivate/OEBPS/Images/figure_0053_0003.jpg?sign=1738882520-MZHqvUIrycpLU9NQQfaw5Ptl0JcKAGEk-0-e3caa99b0dceee4be72573b1a6e53366)
图2.40 JSP表达式语法
表达式具体的使用示例代码如下:
<font size=<%=i%>><strong>世界,你好!</strong></font> <%=circle.getArea() %>
由于表达式的书写格式比较烦琐,而且完全可以由JSP中的内置对象out(在后面章节中会作介绍)来替代,因此在实际开发中,JSP表达式很少被用到。