jsp页级变量 <%! int i=0%>具体作用是什莫?在哪里经常用到?我刚接触JSP还请大家不吝赐教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主学习方法不太好,应该自己思考&找资料先!!http://topic.csdn.net/t/20030102/16/1320844.html 这个等用于类的static变量和方法<%! int i=0%> 等同于private static int i=0;注意是类一级的,不是doGet. doPost方法一级的 <%! int i=0%> jsp中的脚本元素,在jsp文件中声明一个变量并初始化为0,此时你在整个jsp页面中就可以使用这个变量了。它相当于java类中的一个实例变量 用JSP挺长时间了,还真没用过这个,惭愧... 经测试<%! int i=0;%>不等同于 private static int i=0; 而是int i=0;to 楼主:首先每个JSP在运行之前都会编译成一个servlet,这个你可以通过Tomcat下边的work文件夹一直找到.比如说你项目名为a,JSP文件为b.jsp,那么你去到work下边的你的目录下边去找到b_jsp.java,这里就是一个JSP对应的Servlet文件.你会发现,JSP文件里普通的内容都是在那个 public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException {//jsp文件的代码}这个方法里边.而其中的一些<%! int i=0;%>这里的多了一个!就会定义成类的属性.为什么要这样?因为还可以在JSP里定义方法<%!public int getC(){ return i;}%>这时候就写Servlet一样的了. 我用的时候结果就相当于一个,页面刷新时,其值可以累加,而并不会还原,如果定义为<%int i=0;%>此时页面刷新是就会还原为0。 你去用一句out.println(this);你就会发现为什么像是static一样的了. 我下周才开始学习 JSP 晕啊,难道楼主因为是等同于static的????主要是因为在一段时间内这个JSP只创建了一个对像.多个浏览器都访问都是同一个对像,所以结果像是stati的,实际不是. 不好意思,现在JSP的书看得很少,其内部具体运作我不太了解!你如果有时间能不能具体说一下! 不是全局变量,主要是因为这个JSP在运行的时候只创建了一个对像,多个浏览器去访问的时候都是同一个对像.所以每个页面访问的时候都会像是同一个对像,如果你是用Tocmat服务器,你写一个JSP然后就定义那么一个变量,访问它之后你去Tomcat的work目录下边去找到你的项目里的这个JSP文件对应的java文件,因为JSP就是Servlet,所以一个JSP会对应着一个java文件,一般是JSP文件名_jsp.java.你去看看那个java代码就知道是不是全局的了. BufferedImage真的有人用么?怎样防止内存溢出严重? 关于int的问题 J2ME里线程如何用? 一个java重载的问题? [求助]一道java小程序 紧急求救!!!!!!! 关于j2sdk的配置问题 JBuilder8的注册方法 高手们,请教 java.util.prefs 包中的 PreferenceFactory 借口该怎么用? 。。。。假如跳过第一列直接查查第2列。。。。。。。 JApplet中有没有和getAppletContext()方法功能一致的方法呢 新手请教线程问题?
http://topic.csdn.net/t/20030102/16/1320844.html
<%! int i=0%> 等同于private static int i=0;注意是类一级的,不是doGet. doPost方法一级的
jsp中的脚本元素,在jsp文件中声明一个变量并初始化为0,此时你在整个jsp页面中就可以使用这个变量了。它相当于java类中的一个实例变量
首先每个JSP在运行之前都会编译成一个servlet,这个你可以通过Tomcat下边的work文件夹一直找到.比如说你项目名为a,JSP文件为b.jsp,那么你去到work下边的你的目录下边去找到b_jsp.java,这里就是一个JSP对应的Servlet文件.你会发现,JSP文件里普通的内容都是在那个
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
//jsp文件的代码
}
这个方法里边.
而其中的一些
<%! int i=0;%>
这里的多了一个!就会定义成类的属性.
为什么要这样?
因为还可以在JSP里定义方法
<%!
public int getC()
{
return i;
}
%>这时候就写Servlet一样的了.
out.println(this);
你就会发现为什么像是static一样的了.
主要是因为在一段时间内这个JSP只创建了一个对像.多个浏览器都访问都是同一个对像,所以结果像是stati的,实际不是.