随笔-153  评论-235  文章-19  trackbacks-0
 
1.    encode.html
<script language="JavaScript">
document.write(encodeURI('http:
//www.blogjava.net/chenlb/abc 中文'));
</script>

2.
decode.jsp

        
/*
         * <script language="JavaScript">
         * document.write(encodeURI('
http://www.blogjava.net/chenlb/abc 中文'));
         * </script>
         
*/
        String url 
= "http://www.blogjava.net/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 流浪汗 阅读(9829) | 评论 (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 流浪汗 阅读(618) | 评论 (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 流浪汗 阅读(1206) | 评论 (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 流浪汗 阅读(1081) | 评论 (1)编辑 收藏

前几天用spring+hibernate+struts写了个增/删/改/查的例子。调试期间问题就来了,当查询结果翻页好几次就没N久没有响应了。最后控制报错。网上查了,它说数据库连接(池)问题。

出现错误如下:

<2007-9-30 下午120303 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 流浪汗 阅读(6074) | 评论 (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 流浪汗 阅读(2281) | 评论 (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 流浪汗 阅读(5856) | 评论 (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 流浪汗 阅读(1203) | 评论 (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 流浪汗 阅读(1601) | 评论 (0)编辑 收藏
    用过虑器,但只对post有效,get方式请看。http://www.blogjava.net/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 流浪汗 阅读(412) | 评论 (0)编辑 收藏
仅列出标题
共16页: First 上一页 5 6 7 8 9 10 11 12 13 下一页 Last