JSP里声明和程序段的区别

来源:百度知道 编辑:UC知道 时间:2024/05/24 21:14:05
JSP的语句写在<% %>里面的程序段(scriptlet),写在<%! %>里的声明(declaration),貌似是在<%! %>里面声明的变量是全局变量,在服务器关闭时释放,而<% %>里的是调用后就释放。除了这些还有什么限制,有什么区别?我在<%! %>里面使用out.print为什么会报错?在<% %>里面声明一个类为什么提示只有抽象类和final类可以被允许(JSP是初学,基本上当作JAVA程序来写的,貌似没怎么见到过在JSP里面自己定义类的),用eclipse可不可以编译jsp文件,主要是能找错就行。

欢迎复制粘贴,但是请帖有用的东西,谢谢,先给100分,回答满意的话我会再追加100分的,分一次给了就拿不回来了……

首先你要知道jsp是先生成一个servlet,也就是一个java文件,然后编译成class的,要编译jsp,只要有个容器,比如tomcat ,启动访问这个页面,就会生成这个jsp 的对应的类,一般在 work目录下

你看看jsp生成的servlet代码就应该清楚了
你在<% %>里面写的东西在_jspservice方法中,是局部变量
在<%! %>里面写的东西是jsp生成的这个类的成员变量

所以<%! %>里面使用out.print当然会抱错了