首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

不是成员变量吗?如何结果不合理?求教

2013-11-15 
不是成员变量吗?怎么结果不合理?求教。%@ page contentTypetext/htmlcharsetGB2312 % %!int m100

不是成员变量吗?怎么结果不合理?求教。
<%@ page contentType="text/html;charset=GB2312" %> 
<%!  
     int m=100; 
%> 
原值:<%=m%> 
<br> 
<% 
      m=200; 
%> 
现值:<%=m%> 


该网页的执行结果不断刷新结果一直是: 
原值:100 
现值:200 
或者打开其他新的标签页结果仍然是: 
原值:100 
现值:200 
 


按照!的用法结果不应该是如下结果吗? 
原值:200 
现值:200 

求教可能是哪方面的问题? 

[解决办法]
你可以打开jsp文件产生的servlet看下代码。

程序是和普通的java文件一模一样顺序执行的。
[解决办法]

引用:
Quote: 引用:

你可以打开jsp文件产生的servlet看下代码。

程序是和普通的java文件一模一样顺序执行的。

谢谢!您认为结果应该是什么?


你把jsp那部分去掉
就等价于

int m = 100;
print(m);
m = 200;
print(m);


[解决办法]
你这个是在不断地执行三楼 的这段代码,因为你每次都给这个m初始化  值为100
[解决办法]
jsp写的代码,经过Tomcat或别的什么容器编译后,最终是以_youjspname_jsp.java形式出现的,代码基本样式如下:
public final class _youjspname_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

 int n = 0;
  private static java.util.Vector _jspx_dependants;

  public java.util.List getDependants() {
    return _jspx_dependants;
  }

  public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {
    int m = 0;
    ...
  }
}
其中_jspService()是jsp的主体~~

在上面的代码中,有两个变量,全局变量n和局部变量m,其中n就是用<%!int n = 0;%>定义的,m是用<%int m = 0;%>定义的,如果你在<%!%>里面定义一个方法,那么这个方法将是class _youjspname_jsp的一个方法;<%%>是不允许定义方法的,原因很明显:方法里面不允许定义方法!

热点排行