connectiontag.java

来自「weblogic应用全实例」· Java 代码 · 共 69 行

JAVA
69
字号
//声明本类所在的包
package examples.jsp.tagext.sql;
//声明本类引入的其它包
import java.io.*;
import java.sql.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

/**
 *Creates a JDBC connection.
 */

public class ConnectionTag extends BodyTagSupport {
  
  private static final String DRIVER = "weblogic.jdbc.pool.Driver";
  private static final String POOLPREFIX = "jdbc:weblogic:pool:";
  
  Connection conn;
  String poolName = null;
  
  public void setPool_name(String name) { this.poolName = name; }
  public String getPool_name() { return poolName; }
  
  public Connection getConnection() { return conn; }
  //实现doStartTag方法
  public int doStartTag() throws javax.servlet.jsp.JspException {
    // 创建基于连接池的JDBC连接
    if (poolName == null) {
      throw new JspException("poolName attribute not defined in connection tag");
    }
    try {
      Class.forName(DRIVER).newInstance();
      conn =
           DriverManager.getConnection(POOLPREFIX+poolName, null);
      return EVAL_BODY_TAG;
    } catch(Exception e) {
      throw new JspException("Failed to load JDBC driver: "+DRIVER);
    }
  }
  //实现doAfterBody方法
  public int doAfterBody() throws javax.servlet.jsp.JspException
  {
    try {
      getBodyContent().writeOut(getPreviousOut());
    } catch(java.io.IOException ioe) {
      throw new JspException("Failed to write body content");
    }
    return SKIP_BODY;
  }
  //实现doEndTag方法
  public int doEndTag() throws javax.servlet.jsp.JspException
  {
    if (conn != null) {
      try {
        conn.close();
      } catch(Exception e) {
        throw new JspException("Failed to close statement");
      }
    }
    return EVAL_PAGE;
  }
  //释放资源
  public void release() {
    super.release();
    conn = null;
    poolName = null;
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?