1. encode.html
<script language="JavaScript">
document.write(encodeURI('http://www.tkk7.com/chenlb/abc 中文'));
</script>
2.
decode.jsp
/*
* <script language="JavaScript">
* document.write(encodeURI('http://www.tkk7.com/chenlb/abc 中文'));
* </script>
*/
String url = "http://www.tkk7.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();
}
用了svn管理源碼已經(jīng)好久了,但久了沒有配置也忘了,今天有同學(xué)問我svn怎么安裝配置,一時(shí)間命令忘記了。找了下文檔,還是可以把它搭起來,為了方便以后查閱,blog記錄下。
下載
svn-1.4.0-setup.exe(服務(wù)器)
TortoiseSVN-1.4.3.8645-win32-svn-1.4.3.msi(客戶端)
LanguagePack-1.4.3.8645-win32-zh_CN.exe(客戶端中文包)
1.安裝
安裝服務(wù)器(svn-1.4.0-setup.exe)和客戶端(TortoiseSVN-1.4.3.8645-win32-svn-1.4.3.msi),按照提示即可。
2.創(chuàng)建資源庫
svnadmin create d:/svnroot/repos
3.運(yùn)行svn服務(wù)
svnserve -d -r d:/svnroot
4.授權(quán)
進(jìn)入d:/svnroot/repos目錄下的conf目錄,打開svnserve.conf,去掉anon-access = read前面的#號(hào)注釋,最好anon-access = read前沒有空格也去掉,然后把a(bǔ)non-access = read改為anon-access = none,意思是說沒有用戶名與密碼的不能讀寫,同樣地把a(bǔ)uth-access = write和password-db = passwd 去注釋(和前面的空格)
5.設(shè)置密碼
打開conf/passwd文件,在文件尾加如下:
user_name = your_password
6.導(dǎo)入
右擊你待導(dǎo)入的目錄TortoiseSVN->Import(導(dǎo)入)...,然后URL里輸入svn://localhost/repos即可。
7.檢出項(xiàng)目
右擊一個(gè)新的目錄(待存放的項(xiàng)目的目錄)SVN Check Out(檢出)...,然后URL里輸入svn://localhost/repos即可。完成后,這個(gè)新的目錄左下角有一個(gè)綠色的鉤。
前幾天開始寫代碼,在weblogic 8.1.4上用hibernate3寫hql語句,hql語句中出現(xiàn)有實(shí)體屬性名(而不表字段名,兩個(gè)不一樣),竟然報(bào)錯(cuò)說表中沒有這個(gè)字段,同時(shí)出現(xiàn)org.hibernate.hql.ast.HqlToken異常。郁悶,于是網(wǎng)上搜索下,說是weblogic 8.1.4 與 hibernate3沖突。都用了antlr.jar。
多謝 蹣跚而行的博客
http://blog.chinajavaworld.com/entry.jspa?id=829
轉(zhuǎn)載他的
ClassNotFoundException: org.hibernate.hql.ast.HqlToken 錯(cuò)誤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)否則不能解釋批量更新的語句,當(dāng)使用的時(shí)候出現(xiàn)了不支持條件輸入中文的情況。選擇(2)可以支持輸入中文,但沒法解釋批量更新語句了
在hibernate3中需要用到antlr,然而這個(gè)包在weblogic.jar中已經(jīng)包含了antrl類庫,就會(huì)產(chǎn)生一些類加載的錯(cuò)誤,無法找到在war或者ear中的hibernate3.jar。
出現(xiàn)這個(gè)錯(cuò)誤之后,antlr會(huì)調(diào)用System.exit(),這樣weblogic就會(huì)中止服務(wù)。
解決方法:
1.是在hibernate.properties文件中增加屬性:hibernate.query.factory_class,屬性的值是org.hibernate.hql.classic.ClassicQueryTranslatorFactory,這樣就可以解決問題了。
但是部分功能會(huì)有問題,譬如
但本系在批量刪除和更新會(huì)有問題,本系統(tǒng)不采用
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的同一目錄(注:替換之后沒做做過嚴(yán)格測(cè)試,尚不知是否有后遺癥)
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
實(shí)驗(yàn)室機(jī)房里安裝的Weblogic 每次想打開網(wǎng)頁看一下時(shí)都說連接不上,說頁面打不開。最后得出原因是:過久了Web服務(wù)就關(guān)閉了,遠(yuǎn)程連下機(jī)器Web服務(wù)才開,每次都要這樣遠(yuǎn)程鏈下機(jī)器,真煩,想到Windows服務(wù)方式運(yùn)行不會(huì)這樣。于是就找了下。今天終于找到了,^_^
D:\bea\user_projects\domains\mydomain目錄下的installService.cmd文件中的:runAdmin下面的內(nèi)容
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
^_^
前幾天用spring+hibernate+struts寫了個(gè)增/刪/改/查的例子。調(diào)試期間問題就來了,當(dāng)查詢結(jié)果翻頁好幾次就沒N久沒有響應(yīng)了。最后控制報(bào)錯(cuò)。網(wǎng)上查了,它說數(shù)據(jù)庫連接(池)問題。
出現(xiàn)錯(cuò)誤如下:
<2007-9-30 下午12時(shí)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.環(huán)境:
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條件取出來,清空兩者來執(zhí)行Count操作
Projection projection = impl.getProjection();
//獲取總記錄數(shù)
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);
//取得結(jié)果
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次,服務(wù)器就沒響應(yīng)了,最后出現(xiàn)上面的錯(cuò)誤的了。
剛用weblogic,也剛用ssh套餐。郁悶。
前天解決了。
問題解決,問題的原因是數(shù)據(jù)庫連接耗盡,我用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釋放后就沒事了,調(diào)用HiberanteDaoSupport的releaseSession(session);方法后即可解決。
現(xiàn)在正確的代碼:
public Page listByPage(Class entityClass, int pageNo, int pageSize, List criterions, List orders) {
Session session = getSession();
//創(chuàng)建criteria
Criteria criteria = session.createCriteria(entityClass);
//為criteria添加criterions
createCriteria(entityClass, criteria, criterions);
CriteriaImpl impl = (CriteriaImpl) criteria;
// 先把Projection和OrderBy條件取出來,清空兩者來執(zhí)行Count操作
Projection projection = impl.getProjection();
//獲取總記錄數(shù)
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);
//取得結(jié)果
List list = criteria.setFirstResult(startIndex).setMaxResults(pageSize).list();
//釋放hiberante資源,一定要釋放,要不然就數(shù)據(jù)庫連接耗盡.
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;
}
^_^
今天看了javascript的書,突然有點(diǎn)想法,javascript處理iframe中網(wǎng)頁,一開始,遇到引用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為其它網(wǎng)頁時(shí)雙拒絕訪問,郁悶,baidu下才得知是跨域不用被javascript處理。郁悶,想法又能實(shí)現(xiàn)了。不知誰有好的建議。^_^
我想要的效果是:自己的網(wǎng)頁的一個(gè)區(qū)可以顯示其它網(wǎng)頁(這個(gè)很重要,顯示效果就像真的在瀏覽器里,被顯示的網(wǎng)頁我稱:subpage),然后javascript處理下subpage,使得實(shí)現(xiàn)想要的效果,比如:點(diǎn)subpage里鏈接時(shí)alert()出一些內(nèi)容,等。
1、安裝好weblogic8.1
2、利用Configuration Wizard配置Domain和server,按照缺省即可
如:
第二部后,我機(jī)上結(jié)果:有了D:\bea\user_projects\domains\mydomain目錄其中mydomain是向?qū)е凶约簩懙摹H缓蟀褀eb應(yīng)用程序放到D:\bea\user_projects\domains\mydomain\applications目錄中,applications相當(dāng)于Tomcat中的webapps目錄。
WEB-INF目錄下可以不用weblogic.xml文件,文件內(nèi)容如下:
<?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應(yīng)用的根地址,訪問地址就成了這樣:http://localhost:7001/WebModule1/index.jsp
如果沒有<context-root>/WebModule1</context-root>或沒有weblogic.xml文件,訪問地址為:http://localhost:7001/blank/index.jsp
其中blank是applications下的Web應(yīng)用程序的根目錄。
我等這些裝雙系統(tǒng)(Windows、Linux)的人,很關(guān)心的問題是在Linux下能訪問Windows的分區(qū)。在FC4下試過,F(xiàn)C4訪問ntfs分區(qū)下還要打上內(nèi)核補(bǔ)丁。FC7不用了(可能FC5就不用了)。FC7手動(dòng)掛載如下:
mount -t ntfs /dev/sda5 /mnt/win/d
說明:我的是SATA的硬盤,所以是sda,D盤(Windows下的第二個(gè)盤塊)是5。如果不知道硬盤順序情況,用fdisk -l查看。
1.在/root下建立winmount.sh文件(vi winmount.sh),內(nèi)容如下:
#!/bin/bash
case $1 in
m)
mount -t ntfs /dev/sda5 /mnt/win/d
;;
u)
umount /mnt/win/d
;;
esac
2.分可執(zhí)行權(quán)限
chmod u+x winmount.sh
3.讓開機(jī)自動(dòng)啟動(dòng)
在/etc/rc.d/rc.local里添加如下內(nèi)容:
sh ./root/winmount.sh m
^_^, 好重啟后就可以了,F(xiàn)C7上測(cè)試通過。
這些得益于
紅客burton的博客 http://burton.bokee.com/1627823.html
一直想在Linux下安裝視頻播放器,以年前就在FC4下安裝了mplayer,安裝了兩個(gè)星期,安裝還是沒有界面的,郁悶。N久沒有用Linux了,這學(xué)期一開始就讓Linux的課,就又用Linux了,安裝的是FC7。用了幾天決定安裝mplayer,曾在虛擬機(jī)里安裝過,但make時(shí)說我硬件不支持界面。郁悶,今晚終于把mplayer安裝上了。得益于qwent寫的安裝手冊(cè)。
如下(我在FC7下安裝沒事,現(xiàn)在一邊聽歌一邊寫blog):
在fc5中安裝mplayer,安裝借鑒了qwent的《寫給初學(xué)者的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
(我的上面一行出錯(cuò),說沒有那個(gè)目錄或文件,先mkdir ~/.mplayer就好了)
桌面建立一啟動(dòng)器,命令為/usr/bin/gmplayer,圖標(biāo)名稱是mplayer-desktop.xpm
(我的沒有出現(xiàn)下面錯(cuò)誤,安裝Linux時(shí)選擇開發(fā)的), ^_^ 好高興
附:
1,make時(shí)提示:Error: X11 support required for GUI compilation.
缺少gtk+和gtk+-devel包
#yum install gtk+
#yum install gtk+-devel
2,安裝完運(yùn)行程序時(shí)提示:cannot load bitmap font:/usr/share/mplayer/font/font.desc
缺少字體文件
在http: //www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=geninfo& did=2858下載字體文件,解壓縮后將其中一個(gè)文件夾中的文件放入/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,錯(cuò)誤消失。
用過慮器,但只對(duì)post有效,get方式請(qǐng)看。
http://www.tkk7.com/chenlb/archive/2007/07/17/130922.html
1.用tomcat里面的例子(在webapps\servlets-examples\WEB-INF\classes\里把filters目錄放到你的classer\下,其實(shí)只要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>