JSP的页面基本构成
1,jsp基本语法分类
(1)jsp注释
<%– xxx –%>
(2)jsp声明
<%! xxx –%>
(3)jsp指令directive
<%@ xxx %>
共有三类指令:
<%@ page …%>
<%@ include …%>
<%@ taglib …%>
(4)jsp表达式
<%= xxx %>
(5)jsp脚本
<% xxx %>
(6)jsp的Action
< jsp:xxx >
共有下面这些Action标记:
< jsp:useBean >
< jsp:setProperty >
< jsp:getProperty >
< jsp:param >
< jsp:include >
< jsp:forward >
< jsp:plugin >
2,jsp的隐含变量
+ request : HttpServletRequest对象
+ response : HttpServletResponse对象
+ pageContext : jsp.PageContext对象
+ application : ServletContext对象
+ out : JspWriter对象
+ config : ServletConfig对象。Servlet的初始化参数来自该对象
+ page : 相当于this关键字,类型为Object,代表产生的Servlet。通常情况下,要把它Cast(转型)到JspPage或者HttpJspPage类型
+ session : HttpSession对象
+ exception : Exception对象
3,jsp的静态和动态包含
如果你有若干个网页有相同的底部或者底部内容,可以用include来实现它们
include中的HTML文件不要有完整的HTML标记,因为include的内容应该是完整网页的一部分,而不应该具有完整的网页结构。
动态include的例子:
< jsp:include page=”bottom.html” >
静态include的例子:
<%@ include file=”head.html” %>
注意:
对于静态包含,<%@include%>,中包含的文件,只是简单的嵌入到主文件中,就是在jsp页面转化成Servlet时才嵌入到主文件中,因为运行的结果是只生成了一个Servlet。
而对于动态包含< jsp:incude>,如果被包含文件是动态的,那么就会生成两个Servlet,也就是被包含文件也要经过jsp引擎编译执行生成一个Servlet,两个Servlet通过request和reponse进行通信。如果被包含的文件是静态的,那么这种情况和<%@include>就很相似,只生成了一个Servlet,但是他们之间没有进行简单的嵌入,而依然是通过request和reponse进行的通信。