<%! %>是在service方法的外面定义变量和写入语句的,也就是在servlet中定义变量,而我们知道servlet在被container加载后只生成一个对象而已,然后所有的请求都在service方法里面被处理。所以如果你在servlet中定义了变量,那么所有的请求可以共用这一个变量了。
最简单的应用就是,你要计算有多少人访问了这一个JSP页面,那么就可以把变量i定义在servlet中,然后在JSP文件里面加一句i++;,这样就可以统计有多少人访问了你这个页面了。
至于<% %>这个嘛,就是在service方法里啦。
<%! %>-感叹号:用来定义变量和函数
<% %>:用来执行一段代码(调用函数)
<%=xxx.yyy() %>:用来打印xxx.yyy()的输出到页面
<%-- --%>:jsp用来注释
<% %> 相当于你写在Servlet 的doget() or dopost()里, 可以用request response等对象
<%! %> 相当于你写在Servlet里的方法, 没有request response对象
这应该是一个验证码的方法.
<%! %>是声明一个方法
<% %>是表达式、里面是不可写方法的