1 jsp生命周期:
1 jspinit jsp容器创建一个对象的时候,执行jspinit方法,该方法在jsp的生命周期中只执行一次。
2 jspService jsp容器处理客户请求的时候,调用这个方法,对于每一个客户的请求,jsp容器新建一个线程来处理。
3 jspDestory方法 由于servlet常驻内存,所以jsp响应速度快。当系统资源不足的时候,需要将Servlet移出内存,此时执行jspDestory方法
2 连接池: 连接池“借出”连接时,该连接仅供请求它的线程使用
1 缩短了连接创建时间
2 简化的编程模型
3 受控的资源使用
创建 连接池:
Server.xml
<Host>
<Context path="/Test" doBase="Test" debug="10" reloadable="true">
<Resource name="jndi/ds/mysql" type="javax.sql.DataSource"
auth="Container" maxVactive="10" maxIdle="2" maxWait="5000"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mytest?characterEncoding=gbk"
username="root" password="sa"/>
</Context>
</Host>
//context会被每个工程都加载
context.xml
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Manager pathname="" />
<ResourceLink name="jndi/ds/mysql" global="jndi/ds/mysql"
type="javax.sql.DataSourcer"/>
</Context>
//web.xml
<resource-ref>
<res-ref-name>jndi/ds/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
//使用连接池:
直接使用:
DataSource ds = null;
InitialContext ctx=new InitialContext();
ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mssql");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
String strSql = " select * from ttt";
ResultSet rs = stmt.executeQuery(strSql);
hibernate中使用:
<hibernate-configuration>
<session-factory>
<property name="dialect"> net.sf.hibernate.dialect.MySQLDialect</property>
<property name="connection.datasource">java:comp/env/jdbc/mssql</property>
<mapping resource="cn/edu/ynu/db/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
Spring中使用:
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/mssql"/>
</bean>