便便's profile可爱的便便PhotosBlogLists Tools Help

Blog


    9/23/2005

    [唉唉] oracle真恶心

    别人都是varchar好好的,偏搞个varchar2
    建个表还要自己建sequence,我就服了。
     
    8/19/2005

    [嗯嗯] 今天解决一个问题,resin比较弱智啊

    搞了3个小时,555555

    在webapp的lib下有 xml-apis.jar (里面有W3C的DOM),一般的XML处理都是实现这个接口的。

    默认是用 xalan.jar 的实现类处理:

        public static TransformerFactory newInstance()
            throws TransformerFactoryConfigurationError
        {
            try {
                return (TransformerFactory) FactoryFinder.find(
                    /* The default property name according to the JAXP spec */
                    "javax.xml.transform.TransformerFactory",
                    /* The fallback implementation class name */
                    "org.apache.xalan.processor.TransformerFactoryImpl");
            } catch (FactoryFinder.ConfigurationError e) {
                throw new TransformerFactoryConfigurationError(e.getException(),
                                                               e.getMessage());
            }
        }

    可恶的是resin.jar(在resin的lib目录里)也实现了这个接口。

    这下好了,resin弱智地认为实现类不存在,调它自己的,结果又是错的。

    大家以后出现莫名其妙的问题的时候不妨找找resin的错。呵呵

    8/16/2005

    [厉害] 看自己写的脚本

    今天再次修正portal前台脚本里的一个bug,发现自己的脚本水平很高。
    呵呵,真厉害。
    7/18/2005

    [缓存] MD5加密的实现

    import java.security.MessageDigest;

    ....
          resultString=new String(origin);
          MessageDigest md = MessageDigest.getInstance("MD5");
          resultString=byteArrayToHexString(md.digest(resultString.getBytes()));

    7/15/2005

    [呵呵] resin可真搞笑

    呵呵,resin的出错页面,查看源文件:
     
    <!--
       - Unfortunately, Microsoft has added a clever new
       - "feature" to Internet Explorer.  If the text in
       - an error's message is "too small", specifically
       - less than 512 bytes, Internet Explorer returns
       - its own error message.  Yes, you can turn that
       - off, but *surprise* it's pretty tricky to find
       - buried as a switch called "smart error
       - messages"  That means, of course, that many of
       - Resin's error messages are censored by default.
       - And, of course, you'll be shocked to learn that
       - IIS always returns error messages that are long
       - enough to make Internet Explorer happy.  The
       - workaround is pretty simple: pad the error
       - message with a big comment to push it over the
       - five hundred and twelve byte minimum.  Of course,
       - that's exactly what you're reading right now.
    -->
    6/10/2005

    [郁闷] 版本没控制好

    sign,,,出错了,现在只好恢复到最早的版本了。

    5/27/2005

    [缓存] resin如何禁止目录浏览

    找到你要禁止的目錄 ( resin 里的意思就是一個 web-app )
    let's say '/'

    <web-app id='/'>
    <directory-servlet>none</directory-servlet>
    </web-app>

    [厉害] portal系统支持行排版了

    呵呵。终于作出来了。

    原来只能这样排:

    |A|B
    |E|F

    现在可以这样了:

    | A|B
    |EF|G

    不过我看这个系统这种方法消耗资源比较大,

    因为记录了每个portlet的xyz坐标,使用时循环了两遍。想个办法改进一下。

    5/11/2005

    [注意] 今天郁闷啊,编码问题

    改JavaScript错改了两个小时,怎么都检查不出哪里错了。

    portlet的内容独立出来完全正确,一放到portal容器里就报JavaScript错误。

    报JavaScript错误虽然比Perl报错好一点,其实也没什么参考价值。

    后来搞啊搞啊,把页面、程序一块一块独立出来调试,终于发现是编码的问题。

    所有portal页、portlet的jsp页都是UTF-8的,偏偏js是ANSI的;把js的编码改成UTF-8之后就好了。

    这个问题以前从来没有遇到过,以后要注意。

    5/10/2005

    [原创] FileUtil,提供文件草作的基本方法

    package com.lilytech.bianbian.util;

    import java.io.*;

    /**
     * 提供一些文件操作的方法
     * @version 1.0
     * @author  bianbian
     * Date: 2005-4-29
     * Time: 10:50:43
     */
    public class FileUtil
    {
        public static String readFromFile(String file)
        {
            File ff = new File(file);
            if(!ff.exists())
            {
                return "文件不存在";
            }
            try
            {
                BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
                String strResult = "", data = null;
                while((data = br.readLine())!=null)
                {
                    strResult += data;
                }
                return strResult;
            }
            catch(Exception e)
            {
                return "文件读取失败";
            }
        }

        public static void writeToFile(String file, String strS)
        {
            try
            {
                file = file.replace('\\', '/');
                int p = file.lastIndexOf('/');
                if(p != -1)
                {
                    File dir = new File(file.substring(0, p));//得到上层目录
                    dir.mkdirs(); //建立目录
                }
                FileWriter fw = new FileWriter(file);
                fw.write(strS, 0, strS.length());
                fw.flush();
                fw.close();
            }
            catch (IOException e)
            {
            }
        }
    }

    [原创] HttpUtil,提供HTTP协议的基本方法

    package com.lilytech.bianbian.util;

    import java.io.InputStreamReader;
    import java.io.BufferedReader;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;

    /**
     * 提供一些http协议的方法
     * @version 1.0
     * @author  bianbian
     * Date: 2005-4-30
     * Time: 9:03:13
     */
    public class HttpUtil
    {
        /**
         * 读取url内容
         * @param strUrl 读取的url地址
         * @param strPostRequest POST方式提交的数据,eg: a=xx&b=xx&c=xx
         * @param maxLength 读取多少长度,0为全部读取
         * @return
         */
        public static String getPageContent(String strUrl, String strPostRequest,int maxLength)
        {
            //读取结果网页
            StringBuffer buffer = new StringBuffer();
            try
            {
                URL newUrl = new URL(strUrl);
                HttpURLConnection hConnect = (HttpURLConnection)newUrl.openConnection();
                //POST方式的数据
                if(strPostRequest.length() > 0)
                {
                    hConnect.setDoOutput(true);
                    OutputStreamWriter out = new OutputStreamWriter(hConnect.getOutputStream());
                    out.write(strPostRequest);
                    out.flush();
                    out.close();
                }
                hConnect.connect();

                BufferedReader rd = new BufferedReader (new InputStreamReader(hConnect.getInputStream()));
                int ch;
                for(int length = 0; (ch = rd.read()) > -1 && (maxLength == 0 || length < maxLength); length++)
                    buffer.append((char)ch);
                rd.close();
                hConnect.disconnect();
                return buffer.toString().trim();
            }
            catch (Exception e)
            {
                return "读取网页失败!";
            }
        }
    }