<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>丝丝入扣哈>_<</title>
    <description></description>
    <link>http://othella.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>PermGen space 错误的解决办法</title>
        <author>othella</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://othella.javaeye.com">othella</a>&nbsp;
          链接：<a href="http://othella.javaeye.com/blog/227900" style="color:red;">http://othella.javaeye.com/blog/227900</a>&nbsp;
          发表时间: 2008年08月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          转载地址:http://www.wujianrong.com/archives/2006/12/javalangoutofmemoryerror_permg.html<br /><br />PermGen space的全称是Permanent Generation space,是指内存的永久保存区域<br />OutOfMemoryError: PermGen space从表面上看就是内存益出，解决方法也一定是加大<br />内存。说说为什么会内存益出：这一部分用于存放Class和Meta的信息,Class在被 Load<br />的时候被放入PermGen space区域，它和和存放Instance的Heap区域不同,GC(Garbage<br />Collection)不会在主程序运行期对PermGen space进行清理，所以如果你的APP会LOAD<br />很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进<br />行pre compile的时候。<br /><br />改正方法：-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m<br /><br /><br />这里以tomcat环境为例，其它WEB服务器如jboss,weblogic等是同一个道理。<br />一、java.lang.OutOfMemoryError: PermGen space<br /><br />PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,<br />这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen<br />space中,<br />它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运<br />行期对<br />PermGen space进行清理，所以如果你的应用中有很多CLASS的话,就很可能出现PermGen<br />space错误,<br />这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大<br />量的第三方jar, 其大小<br />超过了jvm默认的大小(4M)那么就会产生此错误信息了。<br />解决方法： 手动设置MaxPermSize大小<br /><br />修改TOMCAT_HOME/bin/catalina.sh<br />在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行：<br />JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m<br />建议：将相同的第三方jar文件移置到tomcat/shared/lib目录下，这样可以达到减少<br />jar 文档重复占用内存的目的。<br /><br />------------------------------------------------------------------<br />在域bin文件夹中修改startWebLogic.cmd文件,增加下面的一行即可增加JVM内存<br /><br />set MEM_ARGS=-Xms512m -Xmx1024m -XX:CompileThreshold=8000 -XX:PermSize=48m  -XX:MaxPermSize=128m
          <br/>
          <span style="color:red;">
            <a href="http://othella.javaeye.com/blog/227900#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 14 Aug 2008 09:45:16 +0800</pubDate>
        <link>http://othella.javaeye.com/blog/227900</link>
        <guid>http://othella.javaeye.com/blog/227900</guid>
      </item>
      <item>
        <title>使用String.split方法时遇到的问题</title>
        <author>othella</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://othella.javaeye.com">othella</a>&nbsp;
          链接：<a href="http://othella.javaeye.com/blog/226988" style="color:red;">http://othella.javaeye.com/blog/226988</a>&nbsp;
          发表时间: 2008年08月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          使用String.split方法时遇到的问题（转载）<br />http://blog.csdn.net/jame_peng/archive/2006/05/22/749308.aspx<br />使用String.split方法时遇到的问题<br /><br />今天在使用String.split()方法时因为使用"|"作分割符,总是得不到结果。于是在网上Google了一下，终于找到了答案。<br />在使用String.split方法分隔字符串时，分隔符如果用到一些特殊字符，可能会得不到我们预期的结果。<br />我们看jdk doc中说明<br />public String[] split(String regex)<br />Splits this string around matches of the given regular expression.<br />参数regex是一个 regular-expression的匹配模式而不是一个简单的String，他对一些特殊的字符可能会出现你预想不到的结果，比如测试下面的代码：<br />用竖线 | 分隔字符串，你将得不到预期的结果<br />    String[] aa = "aaa|bbb|ccc".split("|");<br />    //String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果<br />    for (int i = 0 ; i &lt;aa.length ; i++ ) {<br />      System.out.println("--"+aa[i]);<br />    }<br />用 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常，用加号 + 也是如此。<br />    String[] aa = "aaa*bbb*ccc".split("*");<br />    //String[] aa = "aaa|bbb|ccc".split("\\*"); 这样才能得到正确的结果   <br />    for (int i = 0 ; i &lt;aa.length ; i++ ) {<br />      System.out.println("--"+aa[i]);<br />    }<br />显然，+ * 不是有效的模式匹配规则表达式，用"\\*" "\\+"转义后即可得到正确的结果。<br />"|" 分隔串时虽然能够执行，但是却不是预期的目的，"\\|"转义后即可得到正确的结果。<br />还有如果想在串中使用"\"字符，则也需要转义.首先要表达"aaaa\bbbb"这个串就应该用"aaaa\\bbbb",如果要分隔就应该这样才能得到正确结果：<br />String[] aa = "aaa\\bbb\\bccc".split("\\\\");<br /><br />另在JDK API里找到此段说明，大意是为了防止正则表达式里的转义符与java语句里的"\"搞混，特用"\\"作转义符。<br />Backslashes within string literals in Java source code are interpreted as required by the Java Language Specification as either Unicode escapes or other character escapes. It is therefore necessary to double backslashes in string literals that represent regular expressions to protect them from interpretation by the Java bytecode compiler. The string literal "\b", for example, matches a single backspace character when interpreted as a regular expression, while "\\b" matches a word boundary. The string literal "\(hello\)" is illegal and leads to a compile-time error; in order to match the string (hello) the string literal "\\(hello\\)" must be used.<br /><br /> <br /><br />String.split()用法的一点经验<br />http://www.e-stu.net/Article/kaishixinxi/jisuanji/jsjja/JAZYYY/2007-01-04/Article_10008.html<br />作者：maxine 文章来源：本站原创 点击数： 更新时间：2007-1-4 10:19:41<br /> <br />在java.lang包中有String.split()方法，返回是一个数组<br />我在应用中用到一些，给大家总结一下，仅供大家参考：<br />1、如果用“.”作为分隔的话，必须是如下写法：String.split("\\."),这样才能正确的分隔开，不能用String.split(".");<br />2、如果用“|”作为分隔的话，必须是如下写法：String.split("\\|"),这样才能正确的分隔开，不能用String.split("|");<br />“.”和“|”都是转义字符，必须得加"\\";<br />3、如果在一个字符串中有多个分隔符，可以用“|”作为连字符，比如：“acount=? and uu =? or n=?”,把三个都分隔出来，可以用String.split("and|or");
          <br/>
          <span style="color:red;">
            <a href="http://othella.javaeye.com/blog/226988#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 12 Aug 2008 13:37:43 +0800</pubDate>
        <link>http://othella.javaeye.com/blog/226988</link>
        <guid>http://othella.javaeye.com/blog/226988</guid>
      </item>
      <item>
        <title>Weblogic只支持自己默认的jdk版本吗=-=</title>
        <author>othella</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://othella.javaeye.com">othella</a>&nbsp;
          链接：<a href="http://othella.javaeye.com/blog/190655" style="color:red;">http://othella.javaeye.com/blog/190655</a>&nbsp;
          发表时间: 2008年05月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近用jdk1.5做了个小项目，在weblogic8.1上发布就抛如下错误：<br />Error 500--Internal Server Error <br />javax.servlet.jsp.JspException: Exception creating bean of class com.webex.struts.form.LogonForm: {1}<br />	at org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:487)<br />	at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:457)<br /> <br />...................<br />在tomcat下能好好运行的，在weblogic下就变成这样了。<br />于是我在搜索了大量相关错误的信息，查找可能导致这个的原因。<br />后来才发现weblogic8.1似乎只支持到jdk1.4。<br />于是重新建了个domain，选择自己用的jdk1.5版本。<br />结果start的时候报错。=-=。。小气的weblogic，根本不支持其他版本的说。郁闷。<br />后来说weblogic9.2能支持到jdk1.5。于是去下载重新装完，发布war包。<br />确实可以了。<br /><br />然后今天项目组有人说自己用了jdk1.6的，把我的项目用jdk1.6给重新编译打包。发布到weblogic9.2上，却报了跟上面贴出来的一样的错误。<br /><br />吸取教训了。。写下来保存下。
          <br/>
          <span style="color:red;">
            <a href="http://othella.javaeye.com/blog/190655#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 07 May 2008 17:00:24 +0800</pubDate>
        <link>http://othella.javaeye.com/blog/190655</link>
        <guid>http://othella.javaeye.com/blog/190655</guid>
      </item>
      <item>
        <title>JAVA操作Cookie</title>
        <author>othella</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://othella.javaeye.com">othella</a>&nbsp;
          链接：<a href="http://othella.javaeye.com/blog/186413" style="color:red;">http://othella.javaeye.com/blog/186413</a>&nbsp;
          发表时间: 2008年04月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1.设置Cookie<br /><br />Cookie cookie = new Cookie("key", "value");<br />cookie.setMaxAge(60); //设置60秒生存期，如果设置为负值的话，则为浏览器进程Cookie(内存中保存)，关闭浏览器就失效。<br />cookie.setPath("/test/test2"); //设置Cookie路径，不设置的话为当前路径(对于Servlet来说为request.getContextPath() + web.xml里配置的该Servlet的url-pattern路径部分)<br />response.addCookie(cookie);<br /><br />2.读取Cookie<br /><br />该方法可以读取当前路径以及“直接父路径”的所有Cookie对象，如果没有任何Cookie的话，则返回null<br />Cookie[] cookies = request.getCookies();<br /><br />3.删除Cookie<br /><br />Cookie cookie = new Cookie("key", null);<br />cookie.setMaxAge(0); //设置为0为立即删除该Cookie<br />cookie.setPath("/test/test2"); //删除指定路径上的Cookie，不设置该路径，默认为删除当前路径Cookie<br />response.addCookie(cookie);<br /><br />4.修改Cookie<br />首先读取cookie<br />Cookie[] cks = request.getCookies();<br />for (int i = 0; i &lt; cks.length; i ++){<br />  Cookie cookie = cks[i];<br />  if (cookie.getName().equalsIgnoreCase("cookiename")){<br />	cookie.setValue("newvalue"); 设置新的值<br />        response.addCookie(cookie);<br />   }<br />}<br /><br />5.注意：假设路径结构如下<br /><br />/<br /><br />/test<br /><br />/test/test2<br /><br />/test345<br /><br />/test555/test666<br /><br />a.相同键名的Cookie(值可以相同或不同)可以存在于不同的路径下。<br /><br />b. 删除时，如果当前路径下没有键为"key"的Cookie，则查询全部父路径，检索到就执行删除操作(每次只能删除一个与自己最近的父路径Cookie)<br /><br />FF.必须指定与设定cookie时使用的相同路径来删除改cookie，而且cookie的键名不论大写、小写或大小混合都要指定路径。<br /><br />IE.键名小写时，如果当前路径为/test/test2，如果找不到再向上查询/test、/test555、/test345，如果还找不到就查询/ 。(/test555/test666不查询)<br /><br />键名大小写混合或大写时，不指定路径则默认删除当前路径，并且不向上查询。<br /><br />c.读取Cookie时只能读取直接父路径的Cookie。<br /><br />如果当前路径为/test/test2，要读取的键为"key"。当前路径读取后，还要读取/test，/test读取后，还要读取/<br /><br />d.在做Java的web项目时，由于一般的Web服务器(如Tomcat或Jetty)都用Context来管理不同的Web Application，这样对于每个Context有不同的Path，<br /><br />在一个Server中有多个Web Application时要特别小心，不要设置Path为/的Cookie，容易误操作。(当然前提是域名相同)
          <br/>
          <span style="color:red;">
            <a href="http://othella.javaeye.com/blog/186413#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 24 Apr 2008 15:42:21 +0800</pubDate>
        <link>http://othella.javaeye.com/blog/186413</link>
        <guid>http://othella.javaeye.com/blog/186413</guid>
      </item>
      <item>
        <title>用javascript操作cookie</title>
        <author>othella</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://othella.javaeye.com">othella</a>&nbsp;
          链接：<a href="http://othella.javaeye.com/blog/164281" style="color:red;">http://othella.javaeye.com/blog/164281</a>&nbsp;
          发表时间: 2008年02月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1，设置cookie（name是自定义的cookie名字标识，value为保存的信息，expires为有效时间，path存放路径，domain存放域名（没怎么用），secure貌似没用到<br />//set cookie<br />function set_cookie(name,value,expires,path,domain,secure ) <br />{<br />// set time, it's in milliseconds<br />var today = new Date();<br />today.setTime(today.getTime());<br />if (expires){<br />	expires = expires * 1000 * 60 * 60 * 24;<br />}<br />var expires_date = new Date(today.getTime() + (expires));<br />document.cookie = name + "=" +escape(value) <br />	+ ((expires)?";expires=" + expires_date.toGMTString() : "" ) <br />	+ ((path)?";path=" + path : "") <br />	+ ((domain)?";domain=" + domain : "" ) <br />	+ ((secure)?";secure" : "" );<br />}<br /><br />2.根据cookie名字标识获取本地的cookie值，怎么取看代码就马上可以看出来了<br />//get cookie<br />function get_cookie(name){	<br />var start = document.cookie.indexOf( name + "=" );<br />var len = start + name.length + 1;<br />if ((!start)&&(name != document.cookie.substring( 0, name.length )))<br />{<br />	return null;<br />}<br />if ( start == -1 ) return null;<br />var end = document.cookie.indexOf( ";", len);<br />if ( end == -1 ) end = document.cookie.length;<br />return unescape(document.cookie.substring( len, end ));<br />}<br /><br />3.删除cookie，虽然叫delete，其实只是把有效日期搞得很久很久以前了而已<br />function delete_cookie( name, path, domain ) {<br />if (get_cookie(name))<br />	document.cookie = name + "=" + ((path)?";path=" + path : "") <br />	+ ((domain)?";domain=" + domain : "") <br />	+ ";expires=Thu, 01-Jan-1970 00:00:01 GMT";<br />}
          <br/>
          <span style="color:red;">
            <a href="http://othella.javaeye.com/blog/164281#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 22 Feb 2008 16:15:11 +0800</pubDate>
        <link>http://othella.javaeye.com/blog/164281</link>
        <guid>http://othella.javaeye.com/blog/164281</guid>
      </item>
      <item>
        <title>[学习点滴]XP中JVM的判断方法</title>
        <author>othella</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://othella.javaeye.com">othella</a>&nbsp;
          链接：<a href="http://othella.javaeye.com/blog/147274" style="color:red;">http://othella.javaeye.com/blog/147274</a>&nbsp;
          发表时间: 2007年12月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          XP系统<br />1.在html里面声明自定义tag名称MSIE<br />&lt;html xmlns:MSIE><br />2.加入该段代码<br />&lt;STYLE><br />@media all {<br />   MSIE\:CLIENTCAPS {behavior:url(#default#clientcaps)}<br />}<br />&lt;/STYLE><br />3.页面上设置控件<br />&lt;MSIE:CLIENTCAPS ID="oClientCaps" /><br />4.判断是否有JVM<br />oClientCaps.isComponentInstalled("{08B0E5C0-4FCB-11CF-AAA5-00401C608500}","componentid")<br />返回值为boolean值<br />其中{08B0E5C0-4FCB-11CF-AAA5-00401C608500}为注册表中：<br />HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components <br />javavm控件的固定字符串（文件夹名）<br />5.判断jvm是否可用：<br />oClientCaps.JavaEnabled<br /><br />MSDN上的例子（http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/xmlns.asp?frame=true）：<br />&lt;HTML XMLNS:MSIE><br />&lt;HEAD><br />&lt;STYLE><br />@media all {<br />   MSIE\:clientCaps {behavior:url(#default#clientcaps);}<br />}<br />&lt;/STYLE><br /><br />&lt;SCRIPT><br />function window.onload()<br />{<br />   var bDataBindingAvailable  = false;<br />   var sDataBindingVersion = '';<br />   var sDataBindingID = <br />       "{333C7BC4-460F-11D0-BC04-0080C7055A83}"; <br />   bDataBindingAvailable = <br />       oClientCaps.isComponentInstalled(sDataBindingID,"clsid");<br /><br />   // if data binding is unavailable, install it<br />   if (!bDataBindingAvailable)<br />   {<br />      oClientCaps.addComponentRequest (sDataBindingID, <br />          "componentid");<br />      bDataBindingAvailable = oClientCaps.doComponentRequest();<br />   }<br />}<br />&lt;/SCRIPT><br />&lt;/HEAD><br /><br />&lt;BODY BGCOLOR="#FFFFFF"><br />   &lt;MSIE:CLIENTCAPS ID="oClientCaps" /><br />&lt;/BODY><br /><br /><br />二，另外一种比上面简单的方式<br />1.在body里定义该控件（如下）：<br />&lt;BODY  STYLE="behavior:url(#default#clientCaps)" ID="oClientCaps"><br />2.判断是否有JVM<br />oClientCaps.isComponentInstalled("{08B0E5C0-4FCB-11CF-AAA5-00401C608500}","componentid")<br />3.判断jvm是否可用：<br />oClientCaps.JavaEnabled<br />MSDN上的例子（http://msdn.microsoft.com/workshop/author/behaviors/reference/behaviors/clientcaps.asp）：<br />&lt;SCRIPT><br />function window.onload()<br />{<br />    var sVersion = oClientCaps.getComponentVersion ("{89820200-ECBD-11CF-8B85-00AA005B4383}","componentid");<br />	myText.innerHTML = "&lt;FONT SIZE=4>You are running Internet Explorer " + sVersion + ".&lt;/FONT>";<br />}<br />&lt;/SCRIPT><br /><br />&lt;BODY BGCOLOR="#FFFFFF" STYLE="behavior:url(#default#clientCaps)" ID="oClientCaps"><br />&lt;DIV ID="myText">&lt;/DIV>
          <br/>
          <span style="color:red;">
            <a href="http://othella.javaeye.com/blog/147274#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 10 Dec 2007 15:15:30 +0800</pubDate>
        <link>http://othella.javaeye.com/blog/147274</link>
        <guid>http://othella.javaeye.com/blog/147274</guid>
      </item>
  </channel>
</rss>