在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 ;
%>两种写法是等价的吗?
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修饰的你就看做一个常量就行了
描述方法则该方法不能被重写
描述类的话该类就不能被继承
不懂java也宵得他们不同
String DBURL = "jdbc:oracle:thin:@localhost:1521:MLDN" ;
String DBUSER = "scott" ;
String DBPASSWORD = "tiger" ;
Connection conn = null ;
%>
比下面多一个感叹号,有感叹号是全局的,意思就是后面再开个<% %>里面也可以用你的全局定义的变量,而没有感叹号的话则是局部变量,后面再开的<% %>里面不能用前面定义的变量。不知道我说对了没,请指正,谢谢。
另外还有那个感叹号,楼上是正确的。
如果你继承String类则不可以,
但是你在声明变量的时候,这时候是限制他可否改变。所以,这是两码事情。
另外,Connection conn = null这个不建议定义成final的,你操作数据库时必然要赋值给conn,如果设成final的话就没法改变了。
定义的没有丝毫的意义,你后面还要用到conn,定义成final就不能赋值了。
有一点疑问:在页面中定义常量,做什么?
本来都是私有的,别人又用不到,简直是画蛇添足
不赞同。
String对象不可修改是显而易见的,但这里final修饰的目的是DBDRIVER这个变量不能再指向其它对象了
String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
final String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
而<% %>里面的值不保存到下一次刷新中
第二个是把代码插入到转译成的Servlet的_jspService方法里面了啊,是局部变量啊。
前者只在你第一请求JSP的时候会初始化,后者请求一次初始化一次。