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

请问JSP有关问题

2012-01-16 
请教JSP问题在JSP页面中%!String DBDRIVER oracle.jdbc.driver.OracleDriver String DBURL jdbc:or

请教JSP问题
在JSP页面中

<%!

  String DBDRIVER= "oracle.jdbc.driver.OracleDriver" ;
  String DBURL= "jdbc:oracle:thin:@localhost:1521:MLDN" ;
  String DBUSER= "scott" ;
  String DBPASSWORD= "tiger" ;
  Connection conn= null ;
%>

========和===========

<%

  final String DBDRIVER= "oracle.jdbc.driver.OracleDriver" ;
  final String DBURL= "jdbc:oracle:thin:@localhost:1521:MLDN" ;
  final String DBUSER= "scott" ;
  final String DBPASSWORD= "tiger" ;
  final Connection conn= null ;
%>

两种写法是等价的吗?

[解决办法]
等价....
有final修饰的你就看做一个常量就行了
[解决办法]
一般都是等价的吧
[解决办法]
明显不等价,上面的String类的实例的指向是可以改变的,下面的是无法改变的

final描述的变量,则变量的值不能够改变
描述方法则该方法不能被重写
描述类的话该类就不能被继承
[解决办法]
楼上的我不认同,final绝对是不同的,怎么相同呢,但是具体使用的效果应该没啥差别。
另外还有那个感叹号,楼上是正确的。
[解决办法]
如果楼主不想修改这些变量值的话可以认为是等价的(实际上并不完全等价),一种是变量的引用,一种是常量
另外,Connection conn = null这个不建议定义成final的,你操作数据库时必然要赋值给conn,如果设成final的话就没法改变了。
[解决办法]
final Connection conn = null ;
定义的没有丝毫的意义,你后面还要用到conn,定义成final就不能赋值了。
有一点疑问:在页面中定义常量,做什么?
本来都是私有的,别人又用不到,简直是画蛇添足。。。
[解决办法]

探讨
String类本身就是final的,所以前面加不加final应该没有区别。

[解决办法]
12楼说提对的.String加上final变量就不能再指向其它的字符串了.意义在此.
[解决办法]
对于STRING类来说是等价的,STRING本身就是定义成FINAL

但做为程序代码来理解的话,定义常量的时候,用加上FINAL修饰。
[解决办法]
不等价啊。。前面声明称了JSP转译成的SERVLET的成员变量,
第二个是把代码插入到转译成的Servlet的_jspService方法里面了啊,是局部变量啊。
前者只在你第一请求JSP的时候会初始化,后者请求一次初始化一次。

热点排行