1. encode.html
<script language="JavaScript">
document.write(encodeURI('http://www.aygfsteel.com/chenlb/abc 中文'));
</script>
2.
decode.jsp
/*
* <script language="JavaScript">
* document.write(encodeURI('http://www.aygfsteel.com/chenlb/abc 中文'));
* </script>
*/
String url = "http://www.aygfsteel.com/chenlb/abc%20%E4%B8%AD%E6%96%87";
try {
System.out.println(URLDecoder.decode(url, "UTF-8"));
System.out.println(URLDecoder.decode(url, "GBK"));//亂碼
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
posted @
2007-10-13 21:27 流浪汗 閱讀(9859) |
評論 (6) |
編輯 收藏
用了svn管理源碼已經好久了,但久了沒有配置也忘了,今天有同學問我svn怎么安裝配置,一時間命令忘記了。找了下文檔,還是可以把它搭起來,為了方便以后查閱,blog記錄下。
下載
svn-1.4.0-setup.exe(服務器)
TortoiseSVN-1.4.3.8645-win32-svn-1.4.3.msi(客戶端)
LanguagePack-1.4.3.8645-win32-zh_CN.exe(客戶端中文包)
1.安裝
安裝服務器(svn-1.4.0-setup.exe)和客戶端(TortoiseSVN-1.4.3.8645-win32-svn-1.4.3.msi),按照提示即可。
2.創建資源庫
svnadmin create d:/svnroot/repos
3.運行svn服務
svnserve -d -r d:/svnroot
4.授權
進入d:/svnroot/repos目錄下的conf目錄,打開svnserve.conf,去掉anon-access = read前面的#號注釋,最好anon-access = read前沒有空格也去掉,然后把anon-access = read改為anon-access = none,意思是說沒有用戶名與密碼的不能讀寫,同樣地把auth-access = write和password-db = passwd 去注釋(和前面的空格)
5.設置密碼
打開conf/passwd文件,在文件尾加如下:
user_name = your_password
6.導入
右擊你待導入的目錄TortoiseSVN->Import(導入)...,然后URL里輸入svn://localhost/repos即可。
7.檢出項目
右擊一個新的目錄(待存放的項目的目錄)SVN Check Out(檢出)...,然后URL里輸入svn://localhost/repos即可。完成后,這個新的目錄左下角有一個綠色的鉤。
posted @
2007-10-09 22:05 流浪汗 閱讀(642) |
評論 (0) |
編輯 收藏
前幾天開始寫代碼,在weblogic 8.1.4上用hibernate3寫hql語句,hql語句中出現有實體屬性名(而不表字段名,兩個不一樣),竟然報錯說表中沒有這個字段,同時出現org.hibernate.hql.ast.HqlToken異常。郁悶,于是網上搜索下,說是weblogic 8.1.4 與 hibernate3沖突。都用了antlr.jar。
多謝 蹣跚而行的博客
http://blog.chinajavaworld.com/entry.jspa?id=829
轉載他的
ClassNotFoundException: org.hibernate.hql.ast.HqlToken 錯誤weblogic異常退出。
原因:
Hibernate3.0 采用新的基于ANTLR的HQL/SQL查詢翻譯器,在Hibernate的配置文件中,hibernate.query.factory_class屬性用來選擇查詢翻譯器。
(1)選擇Hibernate3.0的查詢翻譯器:
hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory
(2)選擇Hibernate2.1的查詢翻譯器
hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory
為了使用3.0的批量更新和刪除功能,只能選擇(1)否則不能解釋批量更新的語句,當使用的時候出現了不支持條件輸入中文的情況。選擇(2)可以支持輸入中文,但沒法解釋批量更新語句了
在hibernate3中需要用到antlr,然而這個包在weblogic.jar中已經包含了antrl類庫,就會產生一些類加載的錯誤,無法找到在war或者ear中的hibernate3.jar。
出現這個錯誤之后,antlr會調用System.exit(),這樣weblogic就會中止服務。
解決方法:
1.是在hibernate.properties文件中增加屬性:hibernate.query.factory_class,屬性的值是org.hibernate.hql.classic.ClassicQueryTranslatorFactory,這樣就可以解決問題了。
但是部分功能會有問題,譬如
但本系在批量刪除和更新會有問題,本系統不采用
2.將antlr-2.7.5H3.jar到Weblogic的pre_Classpath :用WinRar或Winzip打開C:\bea\weblogic81\server\lib\weblogic.jar 刪除里面的antlr目錄, 然后再antlr-2.7.5H3.jar放在weblogic.jar的同一目錄(注:替換之后沒做做過嚴格測試,尚不知是否有后遺癥)
3. 1、拷貝Hibernate3里帶的包antlr-2.7.5H3.jar到%WL_HOME%\server\lib下
2、修改% mydomain% \ startWebLogic.cmd :
在set CLASSPATH之前加上下面一句:
set PRE_CLASSPATH=%WL_HOME%\server\lib\antlr-2.7.5H3.jar;
在set CLASSPATH之后加上下面一句:
set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%
一切OK!
具體原因可參照此頁:http://dev2dev.bea.com/blog/pmalani/archive/2005/07/configuring_web.html
我用antlr-2.7.6.jar可以,我用的hibernate3.2.3ga
posted @
2007-10-07 16:37 流浪汗 閱讀(1226) |
評論 (0) |
編輯 收藏
實驗室機房里安裝的Weblogic 每次想打開網頁看一下時都說連接不上,說頁面打不開。最后得出原因是:過久了Web服務就關閉了,遠程連下機器Web服務才開,每次都要這樣遠程鏈下機器,真煩,想到Windows服務方式運行不會這樣。于是就找了下。今天終于找到了,^_^
D:\bea\user_projects\domains\mydomain目錄下的installService.cmd文件中的:runAdmin下面的內容
1.
set WLS_USER=weblogic
set WLS_PW=
改為
set WLS_USER=weblogic
set WLS_PW=weblogic
2.
set CMDLINE="%JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -classpath \"%CLASSPATH%\" -Dweblogic.Name=%SERVER_NAME% -Dweblogic.management.username=%WLS_USER% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy=\"%WL_HOME%\server\lib\weblogic.policy\" weblogic.Server"
改為
set CMDLINE="%JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -classpath \"%CLASSPATH%\" -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server"
雙擊installService.cmd,就OK了
注意防火墻要允許7001端口
非常感謝
囫圇不吞棗
的博客
http://blog.sina.com.cn/s/blog_3ec64d78010005wu.html
^_^
posted @
2007-10-06 23:02 流浪汗 閱讀(1105) |
評論 (1) |
編輯 收藏
前幾天用spring+hibernate+struts寫了個增/刪/改/查的例子。調試期間問題就來了,當查詢結果翻頁好幾次就沒N久沒有響應了。最后控制報錯。網上查了,它說數據庫連接(池)問題。
出現錯誤如下:
<2007-9-30 下午12時03分03秒 CST> <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '13' for queue: 'weblogic.kernel.Default' has been busy for "901" seconds working on the request "Http Request: /admin/school.do", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
先說下我配置
1.環境:
spring 2.0.6,hibernate 3.2.3,struts 1.2.9,oracle 10.2,weblogic 8.1.4
jdbc是ojdbc14.jar
2.連接池用DBCP
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
bean>
3.分頁方法(參考springside的),此類繼承HibernateDaoSupport
public Page listByPage(Class entityClass, int pageNo, int pageSize, List criterions, List orders) {
Criteria criteria = createCriteria(entityClass, criterions);
CriteriaImpl impl = (CriteriaImpl) criteria;
// 先把Projection和OrderBy條件取出來,清空兩者來執行Count操作
Projection projection = impl.getProjection();
//獲取總記錄數
int totalCount = ((Integer) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();
if(totalCount < 1) {
return new Page();
}
//加排序
if(orders != null) {
for(int i=0; i
criteria.addOrder((Order) orders.get(i));
}
}
//原來的投影
criteria.setProjection(projection);
int startIndex = Page.getStartOfPage(pageNo, pageSize);
//取得結果
List list = criteria.setFirstResult(startIndex).setMaxResults(pageSize).list();
return new Page(startIndex, totalCount, pageSize, list);
}
public Criteria createCriteria(Class entityClass, List criterions) {
Criteria criteria = getSession().createCriteria(entityClass);
if(criterions != null) {
for(int i=0; i
criteria.add((Criterion) criterions.get(i));
}
}
return criteria;
}
另外,沒有用OpenSessionInViewFilter,struts與spring的整合:DelegatingRequestProcessor、action path與bean name同名。
翻頁不過10次,服務器就沒響應了,最后出現上面的錯誤的了。
剛用weblogic,也剛用ssh套餐。郁悶。
前天解決了。
問題解決,問題的原因是數據庫連接耗盡,我用HiberanteDaoSupport的getSession()方法取得Session后沒有釋放Session。
出問題的代碼處(紅色部分):
public Criteria createCriteria(Class entityClass, List criterions) {
Criteria criteria = getSession().createCriteria(entityClass);
if(criterions != null) {
for(int i=0; i
criteria.add((Criterion) criterions.get(i));
}
}
return criteria;
}
用完Session釋放后就沒事了,調用HiberanteDaoSupport的releaseSession(session);方法后即可解決。
現在正確的代碼:
public Page listByPage(Class entityClass, int pageNo, int pageSize, List criterions, List orders) {
Session session = getSession();
//創建criteria
Criteria criteria = session.createCriteria(entityClass);
//為criteria添加criterions
createCriteria(entityClass, criteria, criterions);
CriteriaImpl impl = (CriteriaImpl) criteria;
// 先把Projection和OrderBy條件取出來,清空兩者來執行Count操作
Projection projection = impl.getProjection();
//獲取總記錄數
int totalCount = ((Integer) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();
if(totalCount < 1) {
return new Page();
}
//加排序
if(orders != null) {
for(int i=0; i
criteria.addOrder((Order) orders.get(i));
}
}
//原來的投影
criteria.setProjection(projection);
int startIndex = Page.getStartOfPage(pageNo, pageSize);
//取得結果
List list = criteria.setFirstResult(startIndex).setMaxResults(pageSize).list();
//釋放hiberante資源,一定要釋放,要不然就數據庫連接耗盡.
releaseSession(session);
return new Page(startIndex, totalCount, pageSize, list);
}
public Criteria createCriteria(Class entityClass, Criteria criteria, List criterions) {
if(criterions != null) {
for(int i=0; i
criteria.add((Criterion) criterions.get(i));
}
}
return criteria;
}
^_^
posted @
2007-10-06 21:10 流浪汗 閱讀(6122) |
評論 (4) |
編輯 收藏
今天看了javascript的書,突然有點想法,javascript處理iframe中網頁,一開始,遇到引用iframe問題,如:a.htm里有iframe為subpage.htm,在a.htm引用iframe里的文檔(即:subpage.htm)。方法如下:
1.
var targetDoc = window.parent.frames['targetIframe'].document;
2.
var targetDoc = document.getElementById('targetIframe').contentWindow.document;
解決引用問題后,src為其它網頁時雙拒絕訪問,郁悶,baidu下才得知是跨域不用被javascript處理。郁悶,想法又能實現了。不知誰有好的建議。^_^
我想要的效果是:自己的網頁的一個區可以顯示其它網頁(這個很重要,顯示效果就像真的在瀏覽器里,被顯示的網頁我稱:subpage),然后javascript處理下subpage,使得實現想要的效果,比如:點subpage里鏈接時alert()出一些內容,等。
posted @
2007-09-24 20:34 流浪汗 閱讀(2304) |
評論 (1) |
編輯 收藏
1、安裝好weblogic8.1
2、利用Configuration Wizard配置Domain和server,按照缺省即可
如:
第二部后,我機上結果:有了D:\bea\user_projects\domains\mydomain目錄其中mydomain是向導中自己寫的。然后把web應用程序放到D:\bea\user_projects\domains\mydomain\applications目錄中,applications相當于Tomcat中的webapps目錄。
WEB-INF目錄下可以不用weblogic.xml文件,文件內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<context-root>/WebModule1</context-root>
</weblogic-web-app>
如果有<context-root>/WebModule1</context-root>,WebModule1才是web應用的根地址,訪問地址就成了這樣:http://localhost:7001/WebModule1/index.jsp
如果沒有<context-root>/WebModule1</context-root>或沒有weblogic.xml文件,訪問地址為:http://localhost:7001/blank/index.jsp
其中blank是applications下的Web應用程序的根目錄。
posted @
2007-09-22 18:48 流浪汗 閱讀(5891) |
評論 (0) |
編輯 收藏
我等這些裝雙系統(Windows、Linux)的人,很關心的問題是在Linux下能訪問Windows的分區。在FC4下試過,FC4訪問ntfs分區下還要打上內核補丁。FC7不用了(可能FC5就不用了)。FC7手動掛載如下:
mount -t ntfs /dev/sda5 /mnt/win/d
說明:我的是SATA的硬盤,所以是sda,D盤(Windows下的第二個盤塊)是5。如果不知道硬盤順序情況,用fdisk -l查看。
1.在/root下建立winmount.sh文件(vi winmount.sh),內容如下:
#!/bin/bash
case $1 in
m)
mount -t ntfs /dev/sda5 /mnt/win/d
;;
u)
umount /mnt/win/d
;;
esac
2.分可執行權限
chmod u+x winmount.sh
3.讓開機自動啟動
在/etc/rc.d/rc.local里添加如下內容:
sh ./root/winmount.sh m
^_^, 好重啟后就可以了,FC7上測試通過。
這些得益于
紅客burton的博客 http://burton.bokee.com/1627823.html
posted @
2007-09-10 21:58 流浪汗 閱讀(1227) |
評論 (2) |
編輯 收藏
一直想在Linux下安裝視頻播放器,以年前就在FC4下安裝了mplayer,安裝了兩個星期,安裝還是沒有界面的,郁悶。N久沒有用Linux了,這學期一開始就讓Linux的課,就又用Linux了,安裝的是FC7。用了幾天決定安裝mplayer,曾在虛擬機里安裝過,但make時說我硬件不支持界面。郁悶,今晚終于把mplayer安裝上了。得益于qwent寫的安裝手冊。
如下(我在FC7下安裝沒事,現在一邊聽歌一邊寫blog):
在fc5中安裝mplayer,安裝借鑒了qwent的《寫給初學者的mplayer安裝過程的拾遺》。
在www.mplayerhq.hu下載mplayer及codecs文件:
MPlayer-1.0rc1.tar.bz2
blue-1.6.tar.bz2
all-20061022.tar.bz2
windows-all-20061022.zip
#cd /usr/src/mplayer
#tar xjvf all-20061022.tar.bz2
#mv all-20061022 /usr/lib/codecs
#chmod 644 /usr/lib/codecs/*
#chown root.root /usr/lib/codecs/*
#unzip windows-all-20061022.zip
#mv windows-all-20061022 /usr/lib/wincodecs
#chmod 644 /usr/lib/wincodecs/*
#chown root.root /usr/lib/wincodecs/*
#tar xjvf MPlayer-1.0rc1.tar.bz2
#cd MPlayer-1.0rc1/
#./configure --enable-gui --enable-largefiles --enable-menu --prefix=/usr --with-codecsdir=/usr/lib/codecs/ --with-win32libdir=/usr/lib/wincodecs/ --confdir=/etc/mplayer
#make
#make install
安裝后提示(我自己加的):
*** Download skin(s) at http://www.mplayerhq.hu/dload.html
*** for GUI, and extract to /usr/share/mplayer/skins/
install -m 644 etc/mplayer.xpm /usr/share/pixmaps/mplayer.xpm
install -m 644 etc/mplayer.desktop /usr/share/applications/mplayer.desktop
#cd ..
#bzip2 -cd Blue-1.6.tar.bz2|tar xvf - -C /usr/share/mplayer/skins/
#mv /usr/share/mplayer/skins/Blue/ /usr/share/mplayer/skins/default/
#cd /usr/share/fonts/chinese/TrueType/
#cp ukai.ttf ~/.mplayer/subfont.ttf
(我的上面一行出錯,說沒有那個目錄或文件,先mkdir ~/.mplayer就好了)
桌面建立一啟動器,命令為/usr/bin/gmplayer,圖標名稱是mplayer-desktop.xpm
(我的沒有出現下面錯誤,安裝Linux時選擇開發的), ^_^ 好高興
附:
1,make時提示:Error: X11 support required for GUI compilation.
缺少gtk+和gtk+-devel包
#yum install gtk+
#yum install gtk+-devel
2,安裝完運行程序時提示:cannot load bitmap font:/usr/share/mplayer/font/font.desc
缺少字體文件
在http: //www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=geninfo& did=2858下載字體文件,解壓縮后將其中一個文件夾中的文件放入/usr/share/mplayer/font/下面
#mv font-arial-cp1250.tar.tar font-arial-cp1250.tar.bz2
#tar xjvf font-arial-cp1250.tar.bz2
#cd font-arial-18-cp1250/font-arial-18-cp1250/
#cp * /usr/share/mplayer/font/
重啟mplayer,錯誤消失。
posted @
2007-09-09 23:44 流浪汗 閱讀(1642) |
評論 (0) |
編輯 收藏
用過慮器,但只對post有效,get方式請看。
http://www.aygfsteel.com/chenlb/archive/2007/07/17/130922.html
1.用tomcat里面的例子(在webapps\servlets-examples\WEB-INF\classes\里把filters目錄放到你的classer\下,其實只要SetCharacterEncodingFilter就可以了,在web.xml里加
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.如果用spring,用spring提供的過慮器,同樣在web.xml里加
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
posted @
2007-09-09 09:47 流浪汗 閱讀(429) |
評論 (0) |
編輯 收藏