JSP也是Servlet,运行时只会有一个实例。跟Servlet一样,JSP实例初始化、销毁时也会调用Servlet的init()和destroy()方法。另外,JSP还有自己的初始化方法与销毁方法_jspInit()和_jspDestroy()。
<%!
public void _jspInit(){
//初始化代码
}
public void _jspDestroy(){
//销毁时代码
}
%>
1.JSP语法
1.1JSP元素与模板数据:
1.1.1模板数据:JSP中的HTML代码
1.1.2元素:Java部分。包括脚本,JSP指令与标签。
1.2JSP脚本
使用<%与%>括起来,否则被视为模板数据。
1.3JSP输出
使用<%=与%>作为各种类型数据的输出,包括int、double、boolean、String、Object等
<td><%= greeting %></td>
if语句块前后必须使用{和}
if("1".equals(param)){
%>
。。。。
。。。。
<%
}
else {
%>
。。。。
。。。。
<%
}
%>
1.5JSP的for循环
<%
for(int i=0; i<letters.length; i++){
Object[] letter = letters[i];
%>
。。。。
。。。。
<%
}
%>
1.6JSP中的while
<%
while(it.hasNext()){
%> <%= it.next() %> <br/>
<%
}
%>
指令用来声明JSP页面的属性。格式如下:
<%@derective {attribute=value}*%>
2.1page指令,最常用,用来声明页面属性
<%@ page language="java" contentType="text/html; charset=utf-8"%>
2.2include指令,用来包含另一个JSP或者HTML文件。
<%@ include file="head.jsp" %>
2.3taglib指令,标签技术,实现代码重用
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
3.JSP行为
是一组JSP内置的标签,只需书写少量标记代码,便能提供丰富功能,包括标准JSP行为与自定义JSP行为。格式为:
<jsp:elements {attribute=value}*/>
3.1<jsp:include/>行为,包含某个文件
<jsp:include flush="true" page="/head.jsp"></jsp:include>
3.2使用Java Bean
Java Bean是普通的Java类,只有私有属性与对应的getter和setter方法。
<%-- 声明 Person 类对象 person --%>
<jsp:useBean id="person" class="com.helloweenvsfei.jspweb.bean.Person" scope="page"></jsp:useBean>
<%-- 设置 person 的所有属性,所有的属性值从 request 中自动取得 --%>
<jsp:setProperty name="person" property="*" />
<%-- 获取 person 的 name 属性 --%>
<jsp:getProperty name="person" property="name" />
3.3<jsp:plugin/>行为,嵌入Applet
<jsp:plugin
code="Graph.class"
codebase="http://java.sun.com/applets/jdk/1.4/demo/applets/GraphLayout/"
type="applet"
width="500"
height="400">
<jsp:params>
<jsp:param name="edges" value="joe-food,joe-dog,joe-tea,joe-cat,joe-table,table-plate/50,plate-food/30,food-mouse/100,food-dog/100,mouse-cat/150,table-cup/30,cup-tea/30,dog-cat/80,cup-spoon/50,plate-fork,dog-flea1,dog-flea2,flea1-flea2/20,plate-knife"/>
<jsp:param name="center" value="joe" />
</jsp:params>
<jsp:fallback>您的浏览器不支持 Java Applet</jsp:fallback>
</jsp:plugin>
<jsp:plugin/>用于定义Applet,<jsp:params/>用于定义多个参数,<jsp:fallback>用于说明不支持Applet时候的信息。
Applet的class文件不要放在WEB-INF文件夹下,否则浏览器无法访问。
3.4<jsp:forward/>行为
<jsp:forward page="/counter.jsp">
<jsp:param name="param1" value="value1"/>
<jsp:param name="param2" value="value2"/>
</jsp:forward>
会跳转到counter.jsp页面,param1与param2是传递的参数。
3.5<jsp:directive/>行为
相当于JSP指令。
<jsp:directive.page/>行为相当于<%@page%>