81.Spring中注入Filter。
若是隻是爲了使用Filter,實際上能夠不使用Spring的注入,直接在web.xml中配置就能夠了。php
如今出現了新的需求,Filter中用到了Service,須要注入進去。
web.xml配置一個
<filter>
<filter-name>DelegatingFilterProxy</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
<param-value>myFilter</param-value> //本身過濾器的名字,好比SessionFilter
</init-param>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>java
<filter-mapping>
<filter-name>DelegatingFilterProxy</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>web
配置過濾器時,必定要注意讓合法的請求能夠經過。
第2天,發現Flex調用Java接口的請求被過濾了,致使Flex端沒法登陸。ajax
/* 攔截全部的內容,感受有點多。spring
82.Session過時。
經過配置Filter,能夠方便地檢查Session是否過時和用戶是否登陸。
可是在經過Ajax異步上傳文件時,若是此時過時了,此時後臺返回值,
正常狀況是「正確」或「錯誤」,如今變成了「login頁面的jsp源碼」。數據庫
須要特殊處理。apache
關於session等權限檢查問題和特殊處理ajax上傳文件,待進一步研究。ubuntu
83.多數據源獲取Hibernate的Session失敗。
出現的異常:對象名table_name不存在。
實際狀況:目標數據庫存在table_name這個表。
Session session = getSessionByProjectId(projectId);
多數據源的實現是經過Spring配置的。
大部分功能都沒有問題。
在一個多線程的方法中,實現 動態獲取Session,執行CRUD操做時,發現
獲取的Session老是默認的Session,而不是根據projectId獲取的Session。
後來,把多線程改爲了單線程,就能夠了。
至於具體緣由,不清楚。
教訓:儘可能不使用多線程。多線程不必定會使程序運行的更快。瀏覽器
84.Spring事務回滾與Dao捕獲異常。
原來的代碼:
@Transactional(...配置事務)
serviceFunction(){
for(int index=0;index<10000;index++){
daoFunction();
}
}
daoFunction(){
try{
//access db
}catch{
}
}
問題:若是daoFunction內部發生了異常,Spring也不會回滾事務。
改進:daoFunction不捕獲異常,直接拋出。或者捕獲,再拋出異常。tomcat
85.事務與內存。
代碼同上。
for(int index=0;index<10000;index++){
daoFunction();
}
若是dao執行1萬次,再提交,能夠保證這1萬次在同一個事務中。
若是發生了錯誤,事務回滾,保證數據正常。
缺點:因爲一直沒有提交,致使內存佔用愈來愈大。
MyEclipse會自動進行垃圾回收,線上的服務器應該不會。
86.查看Hibernate的Session訪問的數據庫。
在調試問題83時,想知道Session訪問的數據庫。
最開始使用的是:Session.createSQLQuery("show tables").list();
提示,語法不正確。估計是,Hibernate不支持。
使用下面這個方法是能夠的。
Session.connection().getCatalog()。
87.加速Eclipse和MyEclipse的啓動。
每次打開Eclipse,都提示我是否須要提交一些信息給Eclipse指定的某個網站。
實在是難以忍受,網上找到了一點技巧。
首選項-General-Startup and Shutdown,把不須要的選項去掉。
好比,MyEclipse EASIE Weblogic。
88.PhpMyadmin登陸失敗。
登陸phpmyadmin提示: #1045 沒法登陸 MySQL 服務器
根本緣由:管理員帳號是root,不是admin。
IE,Firefox,搜狗 3個瀏覽器使用admin登陸幾十次都失敗。從新安裝後,admin也失敗。
我就隨手輸入了個root,成功了。
無語啊!
89.PHP sites-enabled下配置了多個相似的文件,本覺得只會讀取000-default,實際上
該目錄下的全部文件都看成了配置文件。
90.http://42.96.184.84/fansunion改成http://42.96.184.84/後,
首頁能夠進去,文章和目錄頁面打不開,而登陸功能卻可使用。
一直覺得是虛擬主機沒有配置好,我也很奇怪,由於81端口的虛擬主機都是好的。
後來終於發現,是固定連接須要更新。而.htaccess由於權限不夠,不能自動更新。
91.ubuntu 默認面板恢復命令
昨天裝了Ubuntu,折騰來折騰去,面板不見了,不是默認的佈局了,添加面板不是解決辦法。
Google 了下,解決辦法以下:
打開終端,終端窗口打開以後,當即在提示符後面輸入下列命令:
gconftool --recursive-unset /apps/panel
(注意:每一個斜槓 「/」 後面沒有空格)
接下來輸入下列命令:
rm -rf ~/.gconf/apps/panel
最後還須要執行:
pkill gnome-panel
接下來,Ubuntu 默認的上下兩欄面板就會恢復默認值,出現頂部+底部各一面板的默認佈局。
92.在dos環境下,爲了將java命令的使用幫助信息放到一個文件中,
使用標記-複製方法不行,只好換了另一種方法。
java> c:\java.txt就能夠了
c盤根目錄java.txt就有java的詳細使用信息了。
熟悉dos 命令的使用
93. 切換到 非C盤目錄。
須要增長 /D 參數
cd /D J:\開發工具\Tomcat家族\apache-tomcat-6.0.35\bin
94.dos命令行復制
a. 點擊標題欄-右鍵菜單-編輯-標記,選中標記菜單,開始標記。
b. 選中 黑屏中須要複製的內容,完成標記過程。
c. 點擊標題欄-右鍵菜單-編輯-複製,完成複製過程,而後就能夠粘貼了。
95.eclipse內存不足
Eclipse發生內存不足錯誤時,使用記事本修改eclipse.ini文件是個錯誤的方法。(換行容易發生錯誤)
應該使用notepad++等編輯器打開,修改參數設置,才能夠!
運行程序時,報內存溢出,也有多是Tomcat的內存不夠致使的。
96. 環境變量
新建環境變量JAVA_HOME ,值爲C:\Program Files (x86)\Jave(末尾不能有分號)
不須要末尾的分號,難道是由於只有一個麼.
97.安裝OpenCMS修改MySQL配置。
提示MySQL的'max_allowed_packet' 過小,須要調大一點。
修改C:\Program Files (x86)\MySQL\MySQL Server 5.5/my.ini,添加
max_allowed_packet=167772160(160M),任務管理器-服務-MySQL-從新啓動就能夠繼續安裝了。
98. 把引用到的jar包摺疊起來。
直接把一個包下的文件夾,好比src目錄下的lib文件夾裏的jar,所有加入到classpath中,
這些jar包全都顯示在 項目列表中,而不是在一個 文件夾下。
而我期待的是 這種形式的:ReferencedJars,點擊ReferencedJars,出現jar列表。
99.壓縮文件
JDK自帶的有。
// 聲明壓縮流對象
ZipOutputStream zipOut = null;
zipOut = new ZipOutputStream(new FileOutputStream(new File(
zipFilePath)));
for (String file : files) {
File file2 = new File(file);
// 設置ZipEntry對象
zipOut.putNextEntry(new ZipEntry(file2.getName()));
// zipOut.setComment("www.fansunion.cn");
zipOut.write(FileUtils.getBytesFromFile(file2));
}
JODD,Apache Commons Compress也能夠,應該是對JDK自帶類庫的進一步封裝。
100. 字符串比較 區分大小寫。
修改一個項目的名稱時,把大寫改成小寫,提示項目名稱已存在。
方法一:從數據庫查詢出字符串與目標字符串 比較。
方法二:修改數據庫的信息,修改列屬性的排序規則(SQLServer)。
相關閱讀
工做問題 http://blog.csdn.net/FansUnion/article/category/1334371