日期:2014-05-16  浏览次数:20326 次

【转】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" >
 &