1.jsp
________
<%@ page import=" pack1.class1.Bean1"%>
<%
Bean1 b = new Bean1;
...
%> 当在2:00有用户请求该页面,并顺利完成响应,2:05又有第二个用户请求该页面,这时此前创建的b对象实例还在吗?JSP页面会不会重新利用先前的b对象,还是重新创建一个实例? Bean1类中含有静态属性或者静态方法,跟不含有静态属性或者静态方法.结果是不是一样?
________
<%@ page import=" pack1.class1.Bean1"%>
<%
Bean1 b = new Bean1;
...
%> 当在2:00有用户请求该页面,并顺利完成响应,2:05又有第二个用户请求该页面,这时此前创建的b对象实例还在吗?JSP页面会不会重新利用先前的b对象,还是重新创建一个实例? Bean1类中含有静态属性或者静态方法,跟不含有静态属性或者静态方法.结果是不是一样?
<%@ page import="
javax.naming.*,
java.util.*,
java.sql.*,
weblogic.common.*
" %>
<%
String name
String product;
long quantity;
name=request.getParameter("name");
product=request.getParameter("product");
quantity=request.getParameter("quantity"); /*(1)*/
savebuy();
%>
<%!
public void savebuy()
{
/*进行数据库操作,把数据保存到表中*/
try {
Properties props = new Properties();
props.put("user","scott");
props.put("password","tiger");
props.put("server","DEMO");
Driver myDriver = (Driver) iver").newInstance();
conn = myDriver.connect("jdbc:weblogic:oracle", props);
stmt = conn.createStatement();
String inssql = "insert into buy(empid, name, dept) values (?, ?, ?,?)";
stmt = conn.prepareStatement(inssql);
stmt.setString(1, name);
stmt.setString(2, procuct);
stmt.setInt(3, quantity);
stmt.execute();
}
catch (Exception e)
{
System.out.println("SQLException was thrown: " + e.getMessage());
}
finally //close connections and {
try {
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
} catch (SQLException sqle) {
System.out.println("SQLException was thrown: " + sqle.getMessage());
}
}
}
%>
怎么解释这两个问题?
至于bean类里的静态属性和方法,和不是静态属性和方法里,不是一样,在tomcat中一个servlet容器对同一个servlet只实例一次,所以只存在一个进程生命里,所以在bean类里,静态类的属性和方法在整个bean类里只能是唯一,为所有这个bean类共享.