1)注释:<!-- 注释内容-->页面中不会显示该内容,页面源文件中会显示该内容。
<%-- --%>jsp页面不会显示,页面源文件中也不会显示。
2)页面的脚本元素:声明变量和方法<%! %>
表达式<%= %>
脚本代码<% %>
3)指令元素:
1.页面指令元素page
功能:定义整个jsp页面的属性及其属性值。
用法:<%@ page 属性1=值 属性2=值 … %>。可以在一个页面上使用多个page指令,但是其中的属性只能使用一次(import属性例外)。它的作用范围都是jsp页面。
page的属性
session: 默认true。如果存在已有会话,则预定义session变量,绑定到已有会话中。否则创建新会话将其绑定到session。
对于高流量网站,设置false可以节省大量服务器内存。
设置false表示不自动创建新会话,在jsp页面转换为servlet时,这时对变量session的访问导致错误。
设置为false并不是禁用会话跟踪,它只是阻止jsp页面为不拥有会话的用户创建新会话。
buffer:设置此网页输出流out变量使用的缓冲区大小。buffer的值可以为“none”,表示不缓冲,也可以是一个数值。其默认值是8Kb。
autoFlush:指定当缓冲区满时是否自动输出缓冲区的数据(其值为布尔类型)。如果为true,输出正常,否则当缓冲区满时将抛出异常。其默认值是true。如果把buffer的值设置为none,那么把autoFlush的值设置为false就是非法的。
info:指明网页的说明信息,可使用Servlet类的getServletInfo方法获取此信息。
isThreadSafe:设置Jsp文件是否能多线程访问,其默认值是true。如果为true,JSP能够同时处理多个用户的请求,否则jsp一次只能处理一个用户请求。
contentType:定义了JSP网页所使用的字符集及JSP响应的类型。缺省MIME类型是text/html,缺省字符集是ISO-8859-1。MIME类型表示设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
2.包含指令include
<%@ include file=” ”%>,jsp的include指令元素读入指定页面的内容。并把这些内容和原来的页面融合到一起。这个过程是在jsp页面被解析成servlet的时候进行的。然后编译这个servlet形成一个新的静态页面。如果改变include引入的jsp文件的内容,必须重新编译jsp 父文件,变化的内容才会被改变,否则不会改变。
(<jsp:include>标签:同<%@ include file=” ”%>功能差不多,都是在一个jsp页面引入另外一个jsp页面,但如果使用<jsp:include>标签让页面A包含页面B,那么A和B是两个独立的页面,它们可以为不同的变量使用同一个变量名或者为同一个标签库使用不同的前缀,这不会冲突。)
参考文章:JSP 最佳实践: 用 jsp:include 控制动态内容
3.引入标签库指令:taglib
定义一个标签库,以及其自定义标签的前缀。
常用的标签库JSTL:JSTL 1.1必须在支持Servlet 2.4且JSP 2.0以上版本
参考文章:jsp页面中jstl标签详解
自定义标签库可以看作一种优秀的组件。在自定义标签库中,我们可以把复杂的业务逻辑功能都封装在标签库中了。而不必在jsp中写具体的代码。这样,jsp代码与java编码能力不必强制耦合在一起。
参考文章:JSP中使用Taglib