無名的博客

          2005年11月29日 #

          如何在TOMCAT配置數據源,調用數據源

          1、在TOMCAT里配置數據源,在<host></host>之間加上下面的代碼,具體的參數根據自己情況修改
          ???<Context path="" docBase="E:\WEB_CODE\DEMO\WEB" debug="0">
          ???
          ???<Logger className="org.apache.catalina.logger.FileLogger"
          ???????????????????? prefix="localhost_xzm_log." suffix=".txt"
          ??????? ?? timestamp="true"/>

          ????????? <Environment name="maxExemptions" type="java.lang.Integer"
          ????????????????????? value="15"/>
          ????????? <Parameter name="context.param.name" value="context.param.value"
          ???????????????????? override="false"/>?????????
          ?????????
          ????????? <Resource name="jdbc/tzwdb" auth="Container"
          ??????????????????? type="oracle.jdbc.pool.OracleDataSource"/>
          ????????? <ResourceParams name="jdbc/tzwdb">
          ??????????? <parameter><name>factory</name><value>oracle.jdbc.pool.OracleDataSourceFactory</value></parameter>???????????
          ??????????? <parameter><name>driverClassName</name><value>oracle.jdbc.driver.OracleDriver</value></parameter>
          ??????????? <parameter><name>url</name><value>jdbc:oracle:thin:@127.0.0.1:1521:ORCL</value></parameter>
          ??????????? <parameter><name>username</name><value>demo</value></parameter>
          ??????????? <parameter><name>password</name><value>demo</value></parameter>
          ??????????? <parameter><name>serverName</name><value>127.0.0.1</value></parameter>???????????
          ??????????? <parameter><name>databaseName</name><value>ORCL</value></parameter>???????????
          ??????????? <parameter><name>portNumber</name><value>1521</value></parameter>
          ??????????? <parameter><name>maxActive</name><value>30</value></parameter>
          ??????????? <parameter><name>maxIdle</name><value>10</value></parameter>
          ??????????? <parameter><name>maxWait</name><value>500</value></parameter>???????????
          ??????????? <parameter><name>description</name><value>oracle</value></parameter>???????????
          ????????? </ResourceParams>
          ???????????
          ????????? <Resource name="mail/Session" auth="Container"
          ??????????????????? type="javax.mail.Session"/>
          ????????? <ResourceParams name="mail/session">
          ??????????? <parameter>
          ????????????? <name>mail.smtp.host</name>
          ????????????? <value>localhost</value>
          ??????????? </parameter>
          ????????? </ResourceParams>
          ???
          ???</Context>

          2、連接數據庫

          import java.sql.Connection;
          import java.sql.PreparedStatement;
          import java.sql.SQLException;
          import java.sql.Statement;

          import javax.naming.Context;
          import javax.naming.InitialContext;
          import javax.sql.DataSource;

          import org.apache.log4j.Logger;

          /**
          ?* @author :?蕭秋水
          ?*
          ?* @contact me :
          cnyanhai@hotmail.com
          ?*
          ?*/
          public class DBManager {


          ??? static Logger logger = Logger.getLogger(DBManager.class.getClass());

          ??? private Context initCtx = null;

          ??? private Context ctx = null;

          ??? private DataSource ds = null;

          ??? private long timeout = 5000;

          ??? private Statement theStatement = null;

          ??? private PreparedStatement thePstmt = null;

          ??? private static final String userName = "tzw";

          ??? private static final String password = "ywsoft";

          ??? /***************************************************************************
          ???? *
          ???? * 初試化initCtx
          ???? *
          ???? * 取得數據源對象
          ???? *?
          ???? **************************************************************************/

          ??? public DBManager() {
          ??????? try {
          ??????????? initCtx = new InitialContext();
          ??????????? //init context,read config web.xml
          ??????????? if (initCtx == null) {
          ??????????????? throw new Exception("Initial Failed!");
          ??????????? }
          ??????????? ctx = (Context) initCtx.lookup("java:comp/env");
          ??????????? //find "jdbc/tzwdb" object this configruation in the SERVER.XML of
          ??????????? // Tomcat
          ??????????? if (ctx != null) {
          ??????????????? ds = (DataSource) ctx.lookup("jdbc/tzwdb");
          ??????????? }
          ??????????? if (ds == null) {
          ??????????????? throw new Exception("Look up DataSource Failed!");
          ??????????? }
          ??????? } catch (Exception e) {
          ??????????? logger.error("Look up DataSource error! -- " + e.getMessage());
          ??????? }
          ??? }

          ??? /***************************************************************************
          ???? *
          ???? * get Connection
          ???? *
          ???? * @return Connection
          ???? *?
          ???? **************************************************************************/

          ??? public synchronized Connection getConnection() {
          ??????? //get connection and set to delay time
          ??????? long startTime = new java.util.Date().getTime();
          ??????? Connection con = null;
          ??????? while (con == null) {
          ??????????? con = newConnection();
          ??????????? if (con != null) {
          ??????????????? logger.info("Create New Connection!");
          ??????????????? break;
          ??????????? }
          ??????????? try {
          ??????????????? logger.info("Connection timeout,Please wait " + timeout + "ms");
          ??????????????? wait(timeout);
          ??????????? } catch (InterruptedException e) {
          ??????????????? logger.warn("Connection timeout! -- " + e.getMessage());
          ??????????? }
          ??????????? if ((new java.util.Date().getTime() - startTime) >= timeout) {
          ??????????????? logger.warn("Connection timeout!");
          ??????????????? break;
          ??????????? }
          ??????? }
          ??????? return con;
          ??? }

          ??? private Connection newConnection() {
          ??????? Connection con = null;
          ??????? try {
          ??????????? con = ds.getConnection(userName, password);
          ??????????? if (con == null) {
          ??????????????? throw new Exception("Create Connection Failed!");
          ??????????? }
          ??????? } catch (Exception e) {
          ??????????? logger.warn("Create Connection Failed! -- " + e.getMessage());
          ??????? }
          ??????? return con;
          ??? }

          ??? /***************************************************************************
          ???? *
          ???? * release the connection
          ???? *?
          ???? **************************************************************************/

          ??? public synchronized void freeConnection(Connection conn, PreparedStatement pstmt) {
          ??????? try {
          ??????????? //close PreparedStatement
          ??????????? if (pstmt != null) {
          ??????????????? pstmt.close();
          ??????????????? pstmt = null;
          ??????????? }
          ??????? } catch (Exception e) {
          ??????????? logger.warn("release stmt,pstmt error! -- " + e.getMessage());
          ??????? }
          ??????? try {
          ??????????? //close Connection
          ??????????? if (conn != null) {
          ??????????????? conn.close();
          ??????????????? conn = null;
          ??????????? }
          ??????? } catch (SQLException e) {
          ??????????? logger.warn("release conn error! -- " + e.getMessage());
          ??????? }
          ??? }

          }
          ???

          posted @ 2006-01-19 10:04 十三郎 閱讀(1452) | 評論 (0)編輯 收藏

          在TOMCAT下JSP的中文處理解決方案

          方法一:new String(request.getParameter("test").getBytes("iso-8859-1"),"GBK")

          方法二:
          1、
          在jsp中加入下面兩行
                    <%@ page contentType="text/html; charset=GBK" language="java" %>
                    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
          2、
          在TOMCAT中找到SetCharacterEncodingFilter.java,他們位于D:\Tomcat5.0.27\webapps\jsp-examples\WEB-INF\classes\filters,加到你的工程文件里去,并修改包名。
          3、
          配置WEB.XML,
          在web.xml里加入這一段
           <filter>
              <filter-name>Set Character Encoding</filter-name>
              <filter-class>utils.SetCharacterEncodingFilter</filter-class>
              <init-param>
                <param-name>encoding</param-name>
                <param-value>GB2312</param-value>
              </init-param>
            </filter>
            <filter-mapping>
              <filter-name>Set Character Encoding</filter-name>
              <url-pattern>/*</url-pattern>
            </filter-mapping>
          4、修改server.xml中兩個部分
          <Connector port="8090"
                         maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                         enableLookups="false" redirectPort="8443" acceptCount="100"
                         debug="0" connectionTimeout="20000"
                         disableUploadTimeout="true" URIEncoding='GB2312'/>
          <Connector className="org.apache.coyote.tomcat5.CoyoteConnector"
                         port="8009" minProcessors="5" maxProcessors="75"
                         enableLookups="true" redirectPort="8443"
                         acceptCount="10" debug="0" connectionTimeout="0"
                         useURIValidationHack="false" protocol="AJP/1.3"
                        
          protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" 
                         URIEncoding='GB2312'/>

          posted @ 2006-01-09 10:46 十三郎 閱讀(237) | 評論 (0)編輯 收藏

          一些比較好的javascript

          1、window.opener.location.reload();
          當A頁面彈出B頁面時,在B頁面如果調用這句js代碼,則會刷新A頁面。

          posted @ 2005-12-23 16:49 十三郎 閱讀(421) | 評論 (1)編輯 收藏

          異常錯誤解決辦法,不斷更新新中......

          在用JAVA編寫程序時時常會遇到一些異常錯誤,本人把握以往遇到的異常及其解決辦法在此寫下來,不斷增加,希望其他朋友把自己遇到的一些異常解決方法根貼。

          1、 java.sql.SQLException: 操作不允許: Unsupported syntax for refreshRow()
          這個異常時在用純jsp分頁時遇到的,在這里會用到absolute(),isAfterLast()等方法,
          解決方法:
          statement=connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

          posted @ 2005-12-15 14:28 十三郎 閱讀(506) | 評論 (0)編輯 收藏

          兩個漸變效果進度條

          請看效果 ,具體程序如下:

          <html>
          <head>
          <title>漸變效果進度條</title>
          <script language="javascript">
           var i;
           function go()
           {
            bar_width = document.getElementById("bg").clientWidth;
            i = bar_width;
            setTimeout('start();',300);
           }
           function start()
           {
            if(i-->0)
            {
             ps.style.width = i;
             bn.innerHTML = Math.floor((bar_width-i)/bar_width*100)+"%";
             setTimeout('start();',20);
            }
           }
           
          </script>
          <style type="text/css">
          #bg {
          filter:progid:DXImageTransform.Microsoft.Gradient
          (GradientType=1, StartColorStr=#FFFF00, EndColorStr=#FF0000);
          width:300px;
          height:20px;
          border:1px solid black;
          z-index:0;
          position:absolute;
          }
          #ps {
          float:right;
          background-color:#FFFF00;
          width:100%;
          }
          #bn {
          position:absolute;
          text-align:center;
          width:100%;
          height:100%;
          cursor:default;
          }
          </style>
          </head>
          <body onload="go();">
          <div id="bg"><div id="ps"></div><span id="bn">0%</span></div>
          </body>
          </html>


          請看效果 ,具體程序如下:

          <html>
          <head>
          <title>漸變效果進度條</title>
          <script language="javascript">
          var _Hex = Array("00","01","02","03","04","05","06","07","08","09",
          "0A","0B","0C","0D","0E","0F","10","11","12","13","14","15","16","17","18","19",
          "1A","1B","1C","1D","1E","1F","20","21","22","23","24","25","26","27","28","29",
          "2A","2B","2C","2D","2E","2F","30","31","32","33","34","35","36","37","38","39",
          "3A","3B","3C","3D","3E","3F","40","41","42","43","44","45","46","47","48","49",
          "4A","4B","4C","4D","4E","4F","50","51","52","53","54","55","56","57","58","59",
          "5A","5B","5C","5D","5E","5F","60","61","62","63","64","65","66","67","68","69",
          "6A","6B","6C","6D","6E","6F","70","71","72","73","74","75","76","77","78","79",
          "7A","7B","7C","7D","7E","7F","80","81","82","83","84","85","86","87","88","89",
          "8A","8B","8C","8D","8E","8F","90","91","92","93","94","95","96","97","98","99",
          "9A","9B","9C","9D","9E","9F","A0","A1","A2","A3","A4","A5","A6","A7","A8","A9",
          "AA","AB","AC","AD","AE","AF","B0","B1","B2","B3","B4","B5","B6","B7","B8","B9",
          "BA","BB","BC","BD","BE","BF","C0","C1","C2","C3","C4","C5","C6","C7","C8","C9",
          "CA","CB","CC","CD","CE","CF","D0","D1","D2","D3","D4","D5","D6","D7","D8","D9",
          "DA","DB","DC","DD","DE","DF","E0","E1","E2","E3","E4","E5","E6","E7","E8","E9",
          "EA","EB","EC","ED","EE","EF","F0","F1","F2","F3","F4","F5","F6","F7","F8","F9",
          "FA","FB","FC","FD","FE","FF");
           function go()
           {
            setTimeout('start();',100);
           }
           var i=0;
           function start()
           {
            if(i++<256)
            {
             ps.innerHTML += "<span style='width:1px;background-color:#FF"+_Hex[256-i]+"00;'>";
             bn.innerHTML = Math.floor(i/2.56)+"%";
             setTimeout('start();',10);
            }
           }
           
          </script>
          <style type="text/css">
          #ps {
          background-color:#FFFF00;
          width:256px;
          margin: 1px;
          float:left;
          }
          #bn {
          width:39px;
          margin: 1px;
          float:right;
          text-align:center;
          color:#FFFFFF;
          font-family:Arial;
          font-size:13px;
          }
          </style>
          </head>
          <body onload="go();">

          <div style="background-color:black;width:300px;height:20px;"><div id="ps"></div><div id="bn"></div></div>
          </body>
          </html>

          posted @ 2005-11-29 10:24 十三郎 閱讀(570) | 評論 (0)編輯 收藏

          常用正則表達式

          非負整數(正整數 + 0)
          [^\\d+$] 

          正整數                 
          [^[0-9]*[1-9][0-9]*$]   

          非正整數(負整數 + 0)
          [^((-\\d+)|(0+))$]        

          負整數
          [^-[0-9]*[1-9][0-9]*$]  

          整數
          [^-?\\d+$]       

          非負浮點數(正浮點數 + 0)
          [^\\d+(
          \\.\\d+)?$]  

          正浮點數
          [^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$]  

          非正浮點數(負浮點數 + 0)
          [^((-\\d+(
          \\.\\d+)?)|(0+(\\.0+)?))$]  

          負浮點數
          [^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$]  

          浮點數
          [^(-?\\d+)(
          \\.\\d+)?$]  

          由26個英文字母組成的字符串
          [^[A-Za-z]+$]  

          由26個英文字母的大寫組成的字符串
          [^[A-Z]+$]  

          由26個英文字母的小寫組成的字符串
          [^[a-z]+$]  

          由數字和26個英文字母組成的字符串
          [^[A-Za-z0-9]+$]  

          由數字、26個英文字母或者下劃線組成的字符串
          [^\\w+$]  

          email地址
          [^[\\w-]+(
          \\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$]    

          url
          [^[a-zA-z]+://(
          \\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$]  


          匹配中文字符的正則表達式: [\u4e00-\u9fa5]
          匹配雙字節字符(包括漢字在內):[^\x00-\xff]


          中國電話號碼驗證
          匹配形式如:0511-4405222 或者021-87888822 或者 021-44055520-555 或者 (0511)4405222
          正則表達式 "((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*"

          中國郵政編碼驗證
          匹配形式如:215421
          正則表達式 "d{6}"

          電子郵件驗證
          匹配形式如:justali@justdn.com
          正則表達式 "w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"

          身份證驗證
          匹配形式如:15位或者18位身份證
          正則表達式 "d{18}|d{15}"

          常用數字驗證
          正則表達式 
          "d{n}" n為規定長度
          "d{n,m}" n到m的長度范圍

          非法字符驗證
          匹配非法字符如:< > & / ' | 
          正則表達式 [^<>&/|'\]+

          日期驗證
          匹配形式如:20030718,030718
          范圍:1900--2099
          正則表達式((((19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}

          posted @ 2005-11-29 09:54 十三郎 閱讀(447) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 墨竹工卡县| 曲沃县| 百色市| 漳平市| 晋宁县| 泰安市| 海原县| 乐安县| 民权县| 甘孜县| 康乐县| 隆子县| 迭部县| 卓尼县| 八宿县| 珠海市| 东兰县| 卢氏县| 筠连县| 佛冈县| 庆元县| 白沙| 华容县| 六安市| 尼勒克县| 道真| 寿光市| 易门县| 康保县| 永仁县| 珲春市| 资源县| 滦平县| 民县| 东乡族自治县| 赣州市| 翁源县| 四会市| 施甸县| 绥阳县| 楚雄市|