【转】Jsp语法概要
1. 声明tag <%! %>
在声明tag范围里,只可以声明变量和方法。且仅在一个页面内有效。
<%!
private String str = "成功!";
public void add() {
......
}
%>
当每个页面都用到一些共同的声明,最好把它们写成一个单独的文件,用<%@ include %>或<jsp:include >元素包含到所需要的页面。
2. 程序段Scriptlet <% %>
Scriptlet 范围内部的代码就是我们平时写的有效代码,可以包括变量声明,初始化等等。
<%
String userName = null;
if (request.getParameter("username") == null) {
%>
<%@ include file="error.html" %>
<%
} else {
userBean.setUserName(request.getParameter("username"));
}
%>
3. 表达式tag <%= %>
表达式tag内的元素可以是变量,有返回值的方法,以及计算表达式总之,相当于System.out.print(元素转换为String的结果)。和声明tag,程序段Scriptlet不同的是,表达式tag的元素是不需要分号“;“结尾的。
Date : <%= new java.util.Date() %>
4. 隐藏注释tag <%-- --%>
此tag相当于平常用的/* */,在JSP编译时被忽略掉,而且不会显示在客户的浏览器中。
5. page指令
<%@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class | package.*}, ..." ]
[ session="true | false" ]
[ buffer="none | 8kb | sizekb" ]
[ autoFlush="true | false" ]
[ isThreadSafe="true | false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=GBK18030" ]
[ isErrorPage="true | false" ]
%>
<%@ page %>指令作用于整个JSP页面,同样包括静态的包含文件。但是<% @ page %>指令不能作用于动态的包含文件,比如 <jsp:include>。
在一个页面中可以用上多个<% @ page %>指令,但是其中的属性只能用一次,不过也有个例外,那就是import属性,import属性能使用几次。
Example:
<%@ page import="java.util.*, java.lang.*" %>
<%@ page buffer="5kb" autoFlush="false" %>
<%@ page errorPage="error.jsp" %>
6. include动作指令
<jsp:include page="{relativeURL | <%= expression%>}" flush="true|false" />
or
<jsp:include page="{relativeURL | <%= expression %>}" flush="true|false" >
&