JSP和servlet中变量声明的方法

时间:2010-01-19 08:57:22   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:t;%String b = null;%>当编译这个jsp的时候会生成一个java文件(和直接写servlet一样). Java中的内容大致如下….String a = null;public void service(…) { String b = null;}通过生成的java文件我们可以看出在servlet类中直接声明的变量和jsp中在<%!..%>块中声明的变量的作用范围是一样的. 在servlet的doPost和doGet方法中声明的变量和jsp中的<%..%>声明的变量的作用范围是一样的...
  正文:

我们都知道在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


来源:http://www.002pc.com/master/College/Programming/JSP/12042.html

收藏到:

关于《JSP和servlet中变量声明的方法》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='85' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='85' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td