JSP和servlet中变量声明的方法

<script type="text/javascript"> google_ad_client = "pub-8800625213955058"; /* 336x280, 创建于 07-11-21 */ google_ad_slot = "0989131976"; google_ad_width = 336; google_ad_height = 280; // </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 我们都知道在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认为他们是同一个客户端), 同时提交一般就能开出现象来. Demo下载地址: http://www.freewebs.com/javaclub/testVarDemo.rar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值