定义变量和方法是在这里面写
<%!
...
%>其他程序在下面写
<%
...
%>

解决方案 »

  1.   

    声明变量呀例如
    <%!String str=%>
      

  2.   

    在JSP程序中声明合法的变量和方法 JSP 语法<%! declaration; [ declaration; ]+ ... %> 例子<%! int i = 0; %> 
    <%! int a, b, c; %> 
    <%! Circle a = new Circle(2.0); %> 描述声明你将要在JSP程序中用到的变量和方法。你也必须这样做,不然会出错. 你可以一次性声明多个变量和方法,只要以";"结尾就行,当然这些声明在Java中要是合法的。 
      

  3.   

    那<%@%>呢?
    是jsp的标记语法。用途很多,多用于,import等。
      

  4.   

    <%! ...%>是用来说明方法和变量的!
    <%@%>是jsp标记,主要用来说明各种jsp情况,引入包,语言,session,buttfer,page等等。。
      

  5.   

    那public void jspInit()
    这个函数是JSP本身的吗?
      

  6.   

    我以前在jsp 中声明变量,都没有加"!"也没有出错呀,
    是一定要这样做么?
      

  7.   

    在我的理解,一般来说一个jsp页面编译后对应与一个java文件,这是一个Java Class, 在<%!...%>其中声明的变量或函数对应于编译后的Java类中的字段或方法,也就是说在<%!...%>其中的声明的变量是类的字段,方法是类的方法。
    而在<%...%>其中声明的变量只是编译后类的_jspService()中的局部变量。他们的作用域不同的。你可以参考http://jcp.org/aboutJava/communityprocess/review/jsr152/index.html
    有比较详细的介绍。同时也可以对比jsp编译生成的java文件,对比一下就清楚了。