1. JSP语法
JSP语法主要包含以下几类:
- JSP模板元素
- JSP脚本表达式
- JSP脚本片段
- JSP声明
- JSP注释
- JSP指令
- JSP标签
- JSP内置对象
2. JSP模板元素
JSP页面中的HTML内容称之为JSP的模板元素。
JSP模板元素定义了网页的基本骨架,即定义了页面的结构和外观。
3. JSP脚本表达式
JSP脚本表达式用于将程序数据输出到客户端
语法:<%= 变量或表达式 %> 例如:<%= new Date()%>
JSP引擎在翻译脚本表达式时,会将程序数据转成字符串,然后在相应的位置用out.print()将数据输出给客户端,上面的的例子会翻译成out.print( new Date());。
JSP脚本表达式中的变量或者表达式后面不能有分号。
4. JSP脚本片段
JSP脚本片段用于在JSP页面中编写多行Java代码。
语法:
<%
多行java代码
%>
JSP脚本片段中只能出现Java代码,不能出现其他的模板元素,JSP引擎在翻译JSP页面时,会将JSP脚本片段的Java代码原封不动的放到翻译后的Servlet的_jspService方法中。
JSP脚本片段中的Java代码必须严格遵守Java语法。
在一个JSP页面中可以有多个脚本片段,在脚本片段之间可以嵌入文本、HTML标记和JSP元素。多个脚本片段中的代码可以相互访问,犹如将所有代码放在一对<% %>中,例如:
<% int x = 10; out.print(x); %> <p>这是JSP页面文本</p> <% int y = 20; out.print(y); out.print("<br/>"); out.print(x + y); // 使用上一个脚本片段定义的变量x %>
单个脚本片段中的Java代码可以是不完整的,但是多个脚本片段组合的结果必须是完整的Java语句块,例如:
<% for (int i = 0; i < 5; i++) { %> <h2>这个段标题输出5次</h2> <% } %>
5. JSP声明
JSP页面中编写的所有代码,默认回翻译到Servlet的_jspService方法中,而JSP声明的Java代码会被翻译到_jspService方法的外面。
语法:
<%!
java代码
%>
JSP声明可用于定义JSP页面转换成的Servlet的静态代码块、成员变量和方法。
多个静态代码块、变量和函数可以定义在一个JSP声明中,也可以分别单独定义在多个JSP声明中。
JSP隐式对象的作用范围仅限于Servlet的_jspService方法,所以在JSP声明中不能使用这些隐式对象。
JSP声明举例:
<%! static { System.out.println("loading Servlet"); } private int globalVar = 0; public void myFunction1() { System.out.println("myFunction1"); } %> <%! public void myFunction2() { System.out.println("myFunction2"); } %>
6. JSP注释
语法:
<%--
注释信息
--%>
JSP引擎在将JSP页面翻译成Servlet时,会忽略JSP页面中被注释的内容。
HTML的注释<!-- -->,用此注释,注释内容会发送给浏览器,只是浏览器不识别。JSP的注释不会发送给浏览器,并且脚本代码只能用JSP注释(因为服务器不识别HTML注释)。