3.1、JSP概述
Jsp页面实在jsp容器中运行的。Servlet容器一般也是JSP容器。例如,Tomcat就是一个Servlet/JSP容器。
第一次请求一个jsp页面时,Servlet/JSP容器要做两件事情:
1、将JSP页面转换成一个JSP页面实现类,这是一个实现javax.servlet.jsp.JspPage接口或其子接口javax.servlet.jsp.HttpjspPage的java类,JspPage是javax.servlet.Servlet的子接口,这样就会使每个jsp页面都成为一个Servlet。
2、如果转换成功,Servlet/JSP容器将会编译Servlet类。
3.2、备注
Jsp页面可以使用两种备注:
1、jsp备注。说明该页面的作用
2、HTML/XHTML备注。这些将被发送到浏览器。
JSP备注以<%--开头,以--%>结束。例如,下面就是一个JSP备注:
<%-- retrieve products to display --%>
JSP备注不会被发送到浏览器,也不能进行嵌套。
HTML/XHTML备注不是由容器进行处理,而是被发送到浏览器。HTML/XHTML备注的用途之一是标识JSP页面:
<!-- this is /jsp/store/displayProducts.jspf -->
在处理带有许多JSP片段的应用程序时,这个特别有用。开发者通过查看浏览器的HTML源代码,可以轻松查出某个HTML代码部分生成了哪个JSP页面或者哪个片段。
3.3、隐式对象
Jsp中存在9个隐式对象:request、response、out、session、application、config、pageContext、page、Exception。
3.4、指令
指令是第一种jsp句法元素,其指示jsp转换器应该如何将某个jsp页面转换成Servlet的命令。最重要的是这两个:page和include。
3.4.1、page指令
Page指令的语法如下:
<%@ page attrubute1=”value1” attribute=”value2” ...%>
@和page之间的空格是可选的,attribute1、attribute2等都是page指令的属性。下面是page指令的属性列表:
import。指定要导入的一种或多种java类型,供本页的java代码所用。例如:import=”java.util.List”。
session。值为true时,表示这个页面参与session管理;值为false时,表示不参与session管理。默认值为true,意味着如果之前还没有javax.servlet.http.HttpSession实例,那么调用JSP页面将始终会创建一个。
buffer。指定隐式对象out的缓冲区大小,以千字节为单位。
autoFlush。默认值为true,表示当缓冲区满时,杯缓存的输出应该自动刷新。值为false时,表示只有在调用隐式对象response的flush方法时,才进行刷新缓冲区。因此,当缓冲区溢出时会抛出一个异常。
第三章_JSP