后臺數據處理完成的時候設置一個處理完成的session標志
前臺通過發送ajax請求設置成功標志的session的頁面,如果session的成功標志為true則數據處理完成,關閉正在處理的進度條圖片,否則繼續發送ajax請求,顯示正在處理的進度條圖片,當然也可以通過后臺返回數據處理完成的百分比,來制作精確的進度條
當我們在做動態生成checkbox和動態設置checkbox的checked屬性的時候要注意
只有checkbox在頁面生成以后設置checkbox的checked屬性才有效,否則是無效的
也就是說不要在create checkbox后就設置checked屬性,要等到該checkbox已經append到頁面中了在來設置checked屬性這樣才可以
1) 使用response.sendredirect重定向是沒辦法通過request.setAttribute來傳遞對象到另外一個頁面的
但我們可以通過轉發的方式來實現request.getRequestDispatcher("test2.jsp").forward(request,response)
這也是struts默認的頁面跳轉方式,這就是為什么我們可以在action里面request.setAttribute然后在頁面里request.getAttribute
2) 使用response.sendredirect重定向要記得在后面加上return不然后面的語句還是會繼續往下執行的,還有就是response.sendredirect之前最好不要有任何的輸出語句包括html不然可能會重定向失敗
最近我還遇到一個比較奇怪的問題就是response.sendredirect失敗,因為我的端口是通過交換機來轉換的所以可能就是在這里重定向不過去了,所以建議以后大家都使用request.getRequestDispatcher("test2.jsp").forward(request,response)這種方式就不會錯了,當然也可以用jsp標簽的forward
摘要: 1) ICache.java 緩存接口
package com.jgao.cache;/** *//** * 緩存接口 * @author jgao * */public interface ICache {  ...
閱讀全文
??? 基本的思想和步驟都在了,主要就是遞歸
??? /**
???? * 傳入級數返回存放該級數下所有組織列表的列表
???? * @param lever int 組織級數
???? * @return List<List> 存放組織列表
???? */
??? public List<List> getTreeLeverNode(int lever) {
??????? String sqlstr = "select? ID from?table1 where PARENT_ID=0";
??????? Result ret = Dao.executeQuery(sqlstr);
??????? List<List> list = new Vector<List>();
??????? List rslist = new Vector();
??????? List<String> nodeList = new Vector<String>();
??????? for (int i = 0; i < ret.Length(); i++) {
??????????? rslist = getNextNode(Integer.parseInt(ret[i]
??????????????????????? .toString()), lever - 1, nodeList);
??????????????? list.add(rslist);
??????? }
??????? return list;
??? }
??? /**
???? * 返回存放該級數下所有組織的列表
???? * @param reqParentid 請求傳入的父節點ID
???? * @param lever 組織級數
???? * @param list 存放該級數下所有組織的列表
???? * @return List<String> 存放組織
???? */
??? public List<String> getNextNode(int reqParentid, int lever, List list) {
??????? String sqlstr = "select? ID from?table1 where PARENT_ID="
??????????????? + reqParentid;
??????? DBResult ret = super.executeQuery(sqlstr);
??????? List rslist = new Vector();
??????? lever = lever - 1;
??????? if (lever > 0) {
???????????for (int i = 0; i < ret.Length(); i++) {
?????????????????rslist = getNextNode(Integer.parseInt(ret[i]
??????????????????????? .toString()), lever , nodeList);
??????????????? list.add(rslist);
???????????}
??????? } else {
??????????? for (int i = 0; i < ret.Length(); ; i++) {
????????????????list.add(ret[i].toString());
??????????? }
??????? }
??????? return list;
??? }
剛使用erwin時在連接oracle9i數據庫時的那個連接串我一直用jdbc連接oracle的那個格式,所以一直連都連不上
一直出現“內部錯誤,hostdef擴展名不存在”,很是郁悶,不知大家有沒遇到
后來查了一下,才知道本地的話要進行本地的Net服務名配置
配置工具在開始->oracle->Configuration and Migration Tools->NET CONFIGUATION ASSISTANT
然后選擇本地的Net服務名配置,在配置到服務名的時候把你的數據庫名稱添進去,然后往下到完成就行了
也可以直接編輯tnsnames.ora,如下圖:

接下來在erwin進行正向或者反向工程的操作界面,提示連接數據庫的那個連接字符串里輸入你的那個服務名就行了,當然用戶名密碼還是要跟之前的一樣,如下圖:

/**
*臨時寫的偽代碼
*/
//獲取第N級的所有節點
public list getTreeLeverNode(int lever)
??rs0 = select id from menu where parentid is null;? //先從數據庫取出第一級的所有節點
??if(lever<=1)
? return rs0
? //循環第一級的節點遞歸取下面的節點
??for(int i=0; i<rs0.length; i++){
???rslist = getNextNode(rs0[i],lever-1);
???list.add(rslist);
??}
??return rs1;
}
public list getNextNode(int reqParentid,int lever){
??rs2 = select id from menu where parentid = reqParentid;
??lever = lever -1;
??if(lever>0){
???for(int i=0; i<rs2.length; i++){
????rs2 = getNextNode(rs2[i],lever);
????list.add(rs2);
???}
??}
??return rs2;
}
??????1.當執行一個功能的時候需要執行多個更新操作,如:插入多個對象,刪除多個對象等,就可能存在執行一個更新操作成功之后下一個更新操作失敗,那么這個功能的執行就算是失敗的,可是卻向數據庫添加或刪除了不完全的相關數據,所以就會出現臟數據
??????解決方法:
??????1) 通過事物控制讓多個執行語句一起提交commit,commit失敗的話就回滾rollback,做到事物的原子性原則
??????2) 在數據庫設置一個操作成功或失敗的字段(或者本地臨時文件里存放相關的控制數據),通過該字段進行控制,在執行出錯后刪除所有含有操作失敗字段的數據
???????
??????2.數據庫同步訪問控制:比如說一條記錄有兩個以上的用戶同時訪問,他們讀取出來的是相同的數據,但寫入時有先后,如果不做控制就會出現后來寫入的數據把原來做了更新的數據覆蓋,使原來做的更新操作丟失就是無效,因為他們都是在最原始讀取出來的數據上做的修改,而不是在別人做了修改后的數據上做修改
??????解決方法:
??????1) 可以在數據庫多設置一個版本字段來控制該數據的歷史版本號(或者本地臨時文件里存放相關的控制數據),就是沒個人做了修改以后都要更新一下這個版本字段,同時更新之前也要做一下版本的比較,如果現在的版本和之前取出來的數據的版本不一樣,那么就要從新讀取數據再寫入,這樣就可以保證不會丟失修改
?????
tomcat要同時開多個端口只要配置conf文件夾下面的server.xml增加Service節點就可以了,如下我多開了個8083端口,同時我把Catalina文件夾多拷貝了一份另存為Catalina2
<Server port="8005" shutdown="SHUTDOWN" debug="0">
? <!-- Comment out these entries to disable JMX MBeans support -->
? <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
??????????? debug="0"/>
? <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
??????????? debug="0"/>
? <!-- Global JNDI resources -->
? <GlobalNamingResources>
??? <!-- Test entry for demonstration purposes -->
??? <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
??? <!-- Editable user database that can also be used by
???????? UserDatabaseRealm to authenticate users -->
??? <Resource name="UserDatabase" auth="Container"
????????????? type="org.apache.catalina.UserDatabase"
?????? description="User database that can be updated and saved">
??? </Resource>
??? <ResourceParams name="UserDatabase">
????? <parameter>
??????? <name>factory</name>
??????? <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
????? </parameter>
????? <parameter>
??????? <name>pathname</name>
??????? <value>conf/tomcat-users.xml</value>
????? </parameter>
??? </ResourceParams>
? </GlobalNamingResources>
? <!-- Define the Tomcat Stand-Alone Service -->
? <Service name="Catalina">
??? <!-- Define a non-SSL Coyote HTTP/1.1 Connector on the port specified
???????? during installation -->
??? <Connector
port="8081"?????????????? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
?????????????? enableLookups="false" redirectPort="8443" acceptCount="100"
?????????????? debug="0" connectionTimeout="20000"
?????????????? disableUploadTimeout="true" />
??? <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
??? <Connector port="8009"
?????????????? enableLookups="false" redirectPort="8443" debug="0"
?????????????? protocol="AJP/1.3" />
????????
??? <!-- Define the top level container in our container hierarchy -->
??? <Engine name="Catalina" defaultHost="localhost" debug="0">
????? <!--
????? <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
????? -->
????? <!-- Global logger unless overridden at lower levels -->
????? <Logger className="org.apache.catalina.logger.FileLogger"
????????????? prefix="catalina_log." suffix=".txt"
????????????? timestamp="true"/>
????? <!-- This Realm uses the UserDatabase configured in the global JNDI
?????????? resources under the key "UserDatabase".? Any edits
?????????? that are performed against this UserDatabase are immediately
?????????? available for use by the Realm.? -->
????? <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
???????????????? debug="0" resourceName="UserDatabase"/>
????? <!-- Define the default virtual host -->
????? <Host name="localhost" debug="0" appBase="webapps"
?????? unpackWARs="true" autoDeploy="true">
??????? <Logger className="org.apache.catalina.logger.FileLogger"
???????????????? directory="logs"? prefix="localhost_log." suffix=".txt"
??????????? timestamp="true"/>
??????? <!--
????????? <Context path="" docBase="ROOT" debug="0">
??????? -->
????? </Host>
??? </Engine>
? </Service>
?
??? <Service name="Catalina2">
??? <Connector
port="8083"?????????????? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
?????????????? enableLookups="false" redirectPort="8443" acceptCount="100"
?????????????? debug="0" connectionTimeout="20000"
?????????????? disableUploadTimeout="true" />
??? <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
??? <Connector port="8010"
?????????????? enableLookups="false" redirectPort="8443" debug="0"
?????????????? protocol="AJP/1.3" />
????????
??? <!-- Define the top level container in our container hierarchy -->
??? <Engine name="Catalina2" defaultHost="localhost" debug="0">
????? <!-- Global logger unless overridden at lower levels -->
????? <Logger className="org.apache.catalina.logger.FileLogger"
????????????? prefix="catalina_log." suffix=".txt"
????????????? timestamp="true"/>
????? <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
???????????????? debug="0" resourceName="UserDatabase"/>
????? <Host name="localhost" debug="0" appBase="webapps"
?????? unpackWARs="true" autoDeploy="true">
??????? <Logger className="org.apache.catalina.logger.FileLogger"
???????????????? directory="logs"? prefix="localhost_log." suffix=".txt"
??????????? timestamp="true"/>
????? </Host>
??? </Engine>
? </Service>
</Server>