kagari
2017-04-12 21:55
下面这个是声明,去掉感叹号报错
<%!
String s="张三";
int add(int x,int y){
return x+y;
}
%>
下面这个算是脚本吧?就这样不报错可以运行,但是改成声明标签后也可以正常运行
<%
SimpleDateFormat sdf=new SimpleDateFormat("YYYY年MM月D日");
String s1=sdf.format(new Date());
%>
那么声明和脚本的界限是什么?只讨论声明和脚本,不需要
1:声明:举个栗子简单的servlet单例,声明相当于一个独一无二的成员变量时,每个用户可访问,可能在后续编写时会相互的影响。<%!%>,可以定义方法,不能使用隐含对象;
2:脚本:简单来说时一段java代码,每个用户各一份不会相互影响。<% %>,可以使用隐含对象,但不能定义方法。两者相同点在于都可以定义变量和类。
所以综上,你第一个栗子里面有涉及到方法所以不能将声明改写为脚本所以结果报错;第二个栗子,因为两者都可以定义变量和类,所以第二个成脚本和声明都没太大差别,所以不报错。
来自java初学者的解答,如果说的不对别放在心上,当作开拓思路了哈。
脚本是将代码插入到servlet的service中,相当于JAVA代码,而声明则是将声明的变量或方法加入到servle类中。你应该是用这些变量的范围用错了吧?
JAVA遇见HTML——JSP篇
248277 学习 · 3071 问题
相似问题