- 在jsp文件中可以嵌套很多的内容, 如 : JSP的脚本元素和注释等, 但是这些内容都需要遵循一定的语法规范.
JSP脚本元素
JSP脚本元素是指嵌套在 <% 和 %> 之中的一条或多条 Java 程序代码. 通过JSP脚本元素可以将Java代码嵌入HTML页面中, 所有可执行的Java代码,可以通过JSP脚本来执行.
JSP 脚本元素主要包含如下三种类型:
- JSP Scriptlets
- JSP 声明语句
- JSP 表达式
- JSP Scriptlets
JSP Scriptlets 是一段代码段. 当需要使用Java实现一些复杂操作或控制时, 可以使用.
<% java 代码 (变量 , 方法 , 语句等) %>
在 jsp Scriptlets中声明的变量是JSP 页面的局部变量, 调用JSP Scriptlets 时, 会为局部变量分配内存空间, 调用结束后, 释放局部变量占有的内存空间.
- JSP声明语句
JSP的声明语句用于声明变量和方法, 以 “<%!” 开始, 以 “%>” 结束 :
<%!
定义的变量 或者方法
%>
- 在声明语法中要注意, 被声明的java代码将被编译到 Servlet 的 *_jsp.java 的Service() 方法之外, 即在JSP声明语句中声明都是成员方法, 成员变量, 静态方法, 静态变量 , 静态代码块等. 在JSP 声明语句中声明的方法在整个JSP页面内有效.
- <%和%> 中定义的是局部变量, 不能定义方法(java方法中不能再嵌套定义方法), 代码块操作可以将结果输出到浏览器.
- JSP表达式
JSP表示用于将成语数据输出到客户端, 他将要输出的变量或者表达式直接封装在 “<%= xxx %>” 标记中, 基本格式如:
<%= expression %>
该语句 将"expression" 表达式的结果输出到客户端的浏览器
注意:
- “<%= xxx %>” 标记中插入表达式或者变量, 后边不能加分号";", 不能插入语句.
- “<%=” 是一个完整的符号, <% 和 = 之间不可有空格.
JSP注释
凡是编程语言一般都有注释, JSP也有自己的注释方式, 基本格式如下:
<%-- 注释内容 --%>
注意:
- Tomcat在将JSP页面编译成Servlet程序时,会忽略JSP页面中 被注释的内容, 不会将注释信息发送到客户端. 举个栗子:
<body> <!-- HTML注释 --> 页面源码中有显示 <%-- JSP注释 --%> 页面的源码中不会显示 </body>
- JSP代码段中的 java注释
<% // java注释 在被翻译成java文件后, 显示该java注释 %>
HTML注释 , JSP注释, java注释 总结:
jsp源码 | java源码 | html源码 | |
---|---|---|---|
jsp注释 | 有 | 无 | 无 |
java注释 | 有 | 有 | 无 |
html注释 | 有 | 有 | 有 |
JSP 指令
存在指令的目的就是去设置JSP页面中的一些信息. jsp2.0 中主要的指令有 page, include , taglib 三种指令, 每种指令又有其各自的属性.
1. page指令
语法 :
<%@ page 属性名1 = "value1" 属性名2 = "value2" ...... %>
- language
表明jsp页面中可以写java代码
- contentType
其实即使说这个文件是什么类型,告诉浏览器我是什么内容类型,以及使用什么编码
contentType="text/html; charset=UTF-8"
text/html MIMEType 这是一个文本,html网页
-
pageEncoding jsp内容编码
-
extends 用于指定jsp翻译成java文件后,继承的父类是谁,一般不用改。
-
import 导包使用的,一般不用手写。
-
session
值可选的有true or false .
用于控制在这个jsp页面里面,能够直接使用session对象。
具体的区别是,请看翻译后的java文件 如果该值是true , 那么在代码里面会有getSession()的调用,如果是false : 那么就不会有该方法调用,也就是没有session对象了。在页面上自然也就不能使用session了。
- errorPage
指的是错误的页面, 值需要给错误的页面路径
- isErrorPage
上面的errorPage 用于指定错误的时候跑到哪一个页面去。 那么这个isErroPage , 就是声明某一个页面到底是不是错误的页面。
2.include
包含另外一个jsp的内容进来。(静态包含)
include指令只有一个file属性, 该属性用来指定插入到JSP 页面目标位置的文件资源
<%@ include file="other.jsp"%>
- 背后细节:
把另外一个页面的所有内容拿过来一起输出。 所有的标签元素都包含进来。
有时候需要在JSP页面静态包含一个文件(常见的比如一个网站的通用的页头, 页尾等)
3.taglib
<%@ taglib prefix="" uri=""%>
prefix : 标签库的别名 uri: 标签库路径