JSP简介
本质上还是Servlet,但JSP弥补了Servlet在页面表现上的不足
JSP生命周期
JSP的生命周期的7个阶段:
l 转换
n 读取、解析和验证JSP页面
n 如果没有错误就创建一个包含servlet类的Java文件
l 编译
n 编译转换得到的Java文件
n 验证所有Java代码,并报告语法错误
l
如果编译成功,就把servlet类加载到内存,并对其进行实例化 |
l 实例化类
l 调用jspInit()方法
n 在servlet的寿命中,只调用一次jspInit()方法
n 是执行servlet需要的任何初始化的方法
l 调用_jspService()方法
n 当收到JSP页面的客户机请求时,把请求和响应传递给该方法
n JSP scriptlet和表达式就包括在该方法中,并进行处理
l 调用jspDestroy()方法
n 当JSP引擎从服务中删除servlet实例时,会调用jspDestroy()
n 在该方法中,可以执行任何清理操作,如释放资源。
Elements和Template Data
JSP网页主要分为Elements与Template Data两部分
l Template Data:容器不处理的部分,如html的内容
l Elements:必须经由容器处理的部分,而大部分Elements都以XML作为语法基础,并且大小写敏感
l Elements两种表达式:标签对、空标签。四种类型:Directive Elements、Scripting Elements、Action Elements、EL Elements
l JSP Comments
n JSP容器忽略JSP注释:<%-- comments -- %>
n JSP容器加载但不处理的HTML注释<!-- comments -->
n JSP容器加载的Java注释://commtents , /*commtents*/
l Scripting Elements
n 脚本Scripting使开发者能直接将代码嵌入JSP页面。
n 声明(Declarations):<%! Declarations %>
u 在JSP程序中声明合法的变量和方法Examples:
<%! int i=0; %> <%! int a, b, c; %> <%! public int sum(int a) {return (a+2);}%>
u 使用JSP方式声明的变量时全局变量,若同时N个用户在执行此JSP网页,将共享此变量。
u 若要声明变量,尽量在<% %>中声明使用
n 脚本片段(Scriptlets):<% Scriptlets %>
u <% if(request.getParameter(“username”).equals(“admin”)) { %>
欢迎管理员!<%} else {%>非管理员不能使用!<% } %>
n 表达式(Expressions):<% =Expressions %>
u 表达式在执行后会被自动转化为字符串,然后显示出来。
u 不能使用分号作为表达式结束符号,同一表达式在Scriptlet中就需要分号
u 这个表达式元素能够包括任何Java语法,
u 也可以作为其他JSP元素的属性值
n 指令Directives Elements主要用来提供整个JSP网页相关的信息,并且用来设定JSP网页的相关属性,例如:网页的编码方式、语法、信息等,
u <%@指令和属性的设定%>