赛迪网 > IT技术 Java > 技术动态
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

JAVA基础:JSP和servlet中变量声明的方法

发布时间:2007.12.04 04:48     来源:赛迪网    作者:baocl

我们都知道在JSP中可以在<%!…%>标签之间声明变量和方法, 在<%…%>标签中也可以声明变量, 但是在这两个不同地方声明的变量的可见度也是不一样, 在此特别提醒广大初学者.
下面详细说明:
比如我们在simple.jsp中定义一下内容:
<%!
String a = null;
%>
<%
String b = null;
%>
当编译这个jsp的时候会生成一个java文件(和直接写servlet一样). Java中的内容大致如下
….
String a = null;
public void service(…) {
String b = null;
}
通过生成的java文件我们可以看出在servlet类中直接声明的变量和jsp中在<%!..%>块中声明的变量的作用范围是一样的. 在servlet的doPost和doGet方法中声明的变量和jsp中的<%..%>声明的变量的作用范围是一样的.

在<%!…%>中声明的变量相当于一个静态变量, 所有的并发应用程序都使用同一个变量
而在<%..%>中声明的变量只会在本次操作是有效的, 操作结束变量也就失效啦.
所以说在<%!…%>中只能声明静态的变量, 一般的变量必须在<%…%>中声明
同样在servlet中是如此, 在servlet类里面直接声明的变量在操作的时候也都使用同一个值, 一般类型的变量最好声明到doPost或者doGet方法中.

下面是一个在jsp中是个两种方法声明的变量测试的demo
测试的时候可以新打4个窗口(注意不能时候CTRL+N来开新窗口, 因为IE认为他们是同一个客户端), 同时提交一般就能开出现象来.
  (责任编辑:包春林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 架构与模式:一种JavaScript的设计模式 (12-03) · 程序员:冒泡算法的三种JavaScript表示 (12-03)
· 初学入门:一组常用的弹出窗口用法总结 (12-03) · JAVA基础:实例学习Java对象的构造过程 (12-03)
· 用JAVA实现的屏幕抓图 (12-03) · JAVA基础:用Java简单实现文件分割与合并 (12-03)
· JSP、Struts避免Form重复提交的几种方案 (12-03) · 利用JavaBeans在应用程序中创建组件 (12-03)
· 深入理解JSP和JSF 共同打造完美Web应用 (12-03) · JAVA基础--在运行时实现Java的多态性 (12-03)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 推动产业升级 沪年内首推电子商务地方法规
· 中国域名成为全球顶级域名 促进社会信息化
· 签合同前的四问 谈八大厂商“云计算”理念
· 亚略特烟草解决方案 移民安置信息管理系统
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统