﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-方伟的博客-随笔分类-J2EE相关</title><link>http://www.blogjava.net/fangw/category/2127.html</link><description>j2ee技术、网络、web等，同名的人真多，我的QQ是20025404</description><language>zh-cn</language><lastBuildDate>Thu, 30 May 2013 08:34:33 GMT</lastBuildDate><pubDate>Thu, 30 May 2013 08:34:33 GMT</pubDate><ttl>60</ttl><item><title>网页非定时刷新的处理技巧</title><link>http://www.blogjava.net/fangw/archive/2013/05/30/399977.html</link><dc:creator>方伟的博客</dc:creator><author>方伟的博客</author><pubDate>Thu, 30 May 2013 07:40:00 GMT</pubDate><guid>http://www.blogjava.net/fangw/archive/2013/05/30/399977.html</guid><wfw:comment>http://www.blogjava.net/fangw/comments/399977.html</wfw:comment><comments>http://www.blogjava.net/fangw/archive/2013/05/30/399977.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fangw/comments/commentRss/399977.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fangw/services/trackbacks/399977.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 比如待办事项、短信、公告等，点击后新开了页面，但回到主页面后，希望刷新下最新数据，一般很多网站都是设定一个定时轮询，比如10秒自动刷一次，但这样效果并不是太好，有时候主页面也会打开无数个，每个都提示，加上声音提示，搞的一片混乱，而且也不能做到及时，服务器压力也非常大。&nbsp;&nbsp;<a href='http://www.blogjava.net/fangw/archive/2013/05/30/399977.html'>阅读全文</a><img src ="http://www.blogjava.net/fangw/aggbug/399977.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fangw/" target="_blank">方伟的博客</a> 2013-05-30 15:40 <a href="http://www.blogjava.net/fangw/archive/2013/05/30/399977.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java多线程的volatile关键字</title><link>http://www.blogjava.net/fangw/archive/2013/05/30/399973.html</link><dc:creator>方伟的博客</dc:creator><author>方伟的博客</author><pubDate>Thu, 30 May 2013 07:26:00 GMT</pubDate><guid>http://www.blogjava.net/fangw/archive/2013/05/30/399973.html</guid><wfw:comment>http://www.blogjava.net/fangw/comments/399973.html</wfw:comment><comments>http://www.blogjava.net/fangw/archive/2013/05/30/399973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fangw/comments/commentRss/399973.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fangw/services/trackbacks/399973.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 对于volatile修饰的变量，jvm虚拟机只是保证从主内存加载到线程工作内存的值是最新的<br>例如假如线程1，线程2 在进行read,load 操作中，发现主内存中count的值都是5，那么都会加载这个最新的值<br>在线程1堆count进行修改之后，会write到主内存中，主内存中的count变量就会变为6<br>线程2由于已经进行read,load操作，在进行运算之后，也会更新主内存count的变量值为6<br>导致两个线程及时用volatile关键字修改之后，还是会存在并发的情况。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/fangw/archive/2013/05/30/399973.html'>阅读全文</a><img src ="http://www.blogjava.net/fangw/aggbug/399973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fangw/" target="_blank">方伟的博客</a> 2013-05-30 15:26 <a href="http://www.blogjava.net/fangw/archive/2013/05/30/399973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个操作String的javabean</title><link>http://www.blogjava.net/fangw/archive/2005/07/13/7644.html</link><dc:creator>方伟的博客</dc:creator><author>方伟的博客</author><pubDate>Wed, 13 Jul 2005 08:03:00 GMT</pubDate><guid>http://www.blogjava.net/fangw/archive/2005/07/13/7644.html</guid><wfw:comment>http://www.blogjava.net/fangw/comments/7644.html</wfw:comment><comments>http://www.blogjava.net/fangw/archive/2005/07/13/7644.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/fangw/comments/commentRss/7644.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fangw/services/trackbacks/7644.html</trackback:ping><description><![CDATA[/*
*Author:tyfun
*DateTime:2002.12.19
*Package:com.westarsoft.function
*/

package com.westarsoft.function;

public class HtmlFilter {
    /*USE:
     *String escapeHTMLTags( String input , boolean htmlFlag )
     */
    public static String escapeHTMLTags( String input , boolean htmlFlag ) {
        if( input == null || input.length() == 0 || htmlFlag ) {
          return input;
        }
        StringBuffer buf = new StringBuffer(input.length()+6);
        char ch = '' '';     
        for( int i=0; i<input.length(); i++ ) {
            ch = input.charAt(i);
            if( ch == ''<'' ) {
                buf.append( "<" );
            }
            else if( ch == ''>'' ) {
                buf.append( ">" );
            }
            else {
             buf.append( ch );
            }
        }
        return buf.toString();
    }
    /*USE:
     *String replace( String line, String oldString, String newString )
     */
    public static String replace( String line, String oldString, String newString ) {
        int i=0;        
        if ( ( line == null || oldString == null ) ) {
            return null;
        }        
        if ( ( i=line.indexOf( oldString, i ) ) >= 0 ) {
            int oLength = oldString.length();
            int nLength = newString.length();
            StringBuffer buf = new StringBuffer();
            buf.append(line.substring(0,i)).append(newString);
            i += oLength;
            int j = i;            
            while( (i=line.indexOf(oldString,i)) > 0 ) {
                buf.append(line.substring(j,i)).append(newString);
                i += oLength;
                j = i;
            }
            buf.append(line.substring(j));
            return buf.toString();
        }
        return line;
    }
    /*USE:
     *String replaceIgnoreCase( String line, String oldString, String newString )
     */
    public static String replaceIgnoreCase( String line, String oldString, String newString ) {
        if (line == null) {
            return null;
        }
        String lcLine = line.toLowerCase();
        String lcOldString = oldString.toLowerCase();
        int i=0;        
        if ( ( i=lcLine.indexOf( lcOldString, i ) ) >= 0 ) {
            char [] line2 = line.toCharArray();
            char [] newString2 = newString.toCharArray();
            int oLength = oldString.length();
            StringBuffer buf = new StringBuffer(line2.length);
            buf.append(line2, 0, i).append(newString2);
            i += oLength;
            int j = i;            
            while( ( i=lcLine.indexOf( lcOldString, i ) ) > 0 ) {
                buf.append(line2, j, i-j).append(newString2);
                i += oLength;
                j = i;
            }
            buf.append(line2, j, line2.length - j);
            return buf.toString();
        }
        return line;
    }
    /*USE:
     *String convertUBB( String input )
     */
    public static String convertUBB ( String input ) {
        if( input == null || input.length() == 0 ) {
            return input;
        }
        else {
            input = replaceIgnoreCase( input , "<" ,"<" ) ;
            input = replaceIgnoreCase( input , "<%" ,"<%" ) ;
            input = replaceIgnoreCase( input , "%>" ,"%>" ) ;
            input = replaceIgnoreCase( input , ">" ,">" ) ;
            input = replaceIgnoreCase( input , "" ,"<b>" ) ;
               input = replaceIgnoreCase( input , "" ,"</b>" ) ;
             input = replaceIgnoreCase( input , "" ,"<i>" ) ;
             input = replaceIgnoreCase( input , "" ,"</i>" ) ;
             input = replaceIgnoreCase( input , "" ,"<u>" ) ;
             input = replaceIgnoreCase( input , "" ,"</u>" ) ;
            input = replaceIgnoreCase( input , "[red]" ,"<font color=red>" ) ;
            input = replaceIgnoreCase( input , "[/red]" ,"</font>" ) ;
            input = replaceIgnoreCase( input , " 
" ,"<ul>" ) ;
             input = replaceIgnoreCase( input , "
" ,"</ul>" ) ;
            input = replaceIgnoreCase( input , " 
" ,"<li>" ) ;
            input = replaceIgnoreCase( input , "" ,"</li>" ) ;
            input = replaceIgnoreCase ( input , " 
" , "<blockquote><hr><b>" ) ;
            input = replaceIgnoreCase ( input , "
" , "</b><hr></blockquote>" ) ;
            input = replace ( input , "  " ,"  " ) ;
            input = replace ( input , "\n" ,"<br>" ) ;
            if ( input.indexOf("<") >= 0 ) {
                  int oldPre = input.indexOf( "<" , 0 ) ;
                 int oldEnd = input.indexOf( ">" , oldPre ) ;
                 int tempInt = 0 ;
                 StringBuffer setBlank = new StringBuffer () ;            
                 while (  oldPre >= 0 && oldEnd > 0 ) {
                        setBlank = setBlank.append( input.substring( tempInt , oldPre) ) ;
                    setBlank = setBlank.append ( replace ( input.substring( oldPre ,oldEnd ) , " " , " " ) ) ;
                    tempInt = oldEnd ;
                    oldPre = input.indexOf( "<" , oldEnd ) ;
                    oldEnd = input.indexOf( ">" , oldPre ) ;
                }
                 setBlank = setBlank.append ( input.substring( tempInt ) ) ;
                 input = setBlank.toString() ;
            }
        }
        return input;
    }
    /*USE:
     *String convertURL( String input , boolean urlFlag )
     */
    public static String convertURL( String input , boolean urlFlag ) {
        if( input == null || input.length() == 0 || urlFlag || input.indexOf("[url") != -1 ) {
            return input;
        }
        else {
            StringBuffer buf = new StringBuffer();
            int i = 0, j = 0, oldend = 0;
            int len = input.length();
            char cur;
            while ( ( i=input.indexOf( "http://", oldend) ) >= 0 ) {
                j=i+7;
                cur = input.charAt(j);
                while (j < len) {
                     if (cur == '' '') break;
                     if (cur == ''<'') break;
                    if (cur == ''\n'') break;
                       if (cur == ''\r'' && j<len-1 && input.charAt(j+1) == ''\n'') break;
                           j++;
                     if (j<len) {
                        cur = input.charAt(j);
                       }
                }
                buf.append(input.substring(oldend,i));
                buf.append("]");
                buf.append(input.substring(i,j));
                buf.append("");
                oldend = j;
            }
            buf.append(input.substring(j,len));
            return buf.toString();
        }
    }
    //
    public static String convertSpecialTage (
           String input ,
        String tagNamePre ,
          String tagNameEnd ,
          String tagContentPre ,
          String tagContentEnd ,
          String tagAttach ) {
          if( input == null || input.length() == 0 || input.indexOf( tagNamePre ) < 0 ) {
            return input;
        }
          else {
              try {
                 StringBuffer buf = new StringBuffer();
                int i = 0, j = 0, oldend = 0;
                int len = input.length();
                int tagPreLength = tagNamePre.length() ;
                int tagEndLength = tagNameEnd.length() ;
                boolean errorFlag = false ;
                char cur;
                while ( ( i=input.indexOf( tagNamePre , oldend) ) >= 0 ) {
                    j = i + tagPreLength ;
                       j = input.indexOf( tagNameEnd , j ) ;
                       if ( j < 0 ) {
                           buf.append ( input.substring( oldend , len ) ) ;
                          errorFlag = true ;
                          break;
                    }
                    else {
                           buf.append( input.substring(oldend,i));
                          buf.append( tagContentPre );
                          buf.append( input.substring(i + tagPreLength ,j));
                          buf.append( tagContentEnd );
                          buf.append( input.substring(i + tagPreLength ,j)).append( tagAttach ) ;
                    }
                       oldend = j + tagEndLength ;
                }
                   if ( !errorFlag ) {
                    buf.append(input.substring(j + tagEndLength,len));
                }
                return buf.toString();
            }
             catch ( IndexOutOfBoundsException IOBe ) {
                 return input;
            }
             catch ( Exception e ) {
                 return input;
            }
        }
    }
    //
    public static String convertSpecialTage (
           String input ,
          String tagNamePre ,
          String tagNameEnd ,
          String tagContentPre ,
          String tagContentEnd  ) {
          if( input == null || input.length() == 0 || input.indexOf( tagNamePre ) < 0 ) {
            return input;
        }
          else {
              try {
            StringBuffer buf = new StringBuffer();
            int i = 0, j = 0, oldend = 0;
            int len = input.length();
            int tagPreLength = tagNamePre.length() ;
            int tagEndLength = tagNameEnd.length() ;
            boolean errorFlag = false ;
            char cur;
            while ( ( i=input.indexOf( tagNamePre , oldend) ) >= 0 ) {
                j = i + tagPreLength ;
                j = input.indexOf( tagNameEnd , j ) ;
                if ( j < 0 ) {
                    buf.append ( input.substring( oldend , len ) ) ;
                    errorFlag = true ;
                    break;
                }
                else {
                    buf.append( input.substring(oldend,i));
                    buf.append( tagContentPre );
                      buf.append( input.substring(i + tagPreLength ,j));
                      buf.append( tagContentEnd );
                }
                oldend = j + tagEndLength ;
            }
            if ( !errorFlag ) {
                buf.append( input.substring(j + tagEndLength,len));
            }
            return buf.toString();
            }
             catch ( IndexOutOfBoundsException IOBe ) {
                 return input;
            }
            catch ( Exception e ) {
                 return input;
            }
        }
    }
    //
    public static String convertSpecialTage (
           String input ,
        String tagNamePre ,
        String tagNameEnd ,
        String tagContentPre ,
        String tagContentEnd ,
        String tagAttach ,
        String interval ) {
        if( input == null || input.length() == 0 || input.indexOf( tagNamePre ) < 0 ) {
               return input;
        }
        else {
            try {
                   StringBuffer buf = new StringBuffer();
                int i = 0, j = 0, oldend = 0;
                int len = input.length();
                int tagPreLength = tagNamePre.length() ;
                int tagEndLength = tagNameEnd.length() ;
                int intervalLength = interval.length() ;
                boolean errorFlag = false ;
                String tempString = null ;
                char cur;
                while ( ( i=input.indexOf( tagNamePre , oldend) ) >= 0 ) {
                    j = i + tagPreLength ;
                    j = input.indexOf( tagNameEnd , j ) ;
                    if ( j < 0 ) {
                        buf.append ( input.substring( oldend , len ) ) ;
                          errorFlag = true ;
                          break;
                    }
                    else {
                        int intervalPostion = input.indexOf( interval , i + tagPreLength ) ;
                         if ( intervalPostion + intervalLength >= j ) {
                              buf.append ( input.substring( oldend , len ) ) ;
                            errorFlag = true ;
                            break;
                        }
                        buf.append( input.substring(oldend,i));
                        buf.append( tagContentPre );
                        tempString = input.substring(i + tagPreLength ,intervalPostion ).trim() ;
                        if ( tempString.indexOf("\"") == 0 ) {
                               tempString = tempString.substring ( 1 , tempString.indexOf( "\"" , 1 ) ) ;
                        }
                           buf.append( tempString );
                        buf.append( tagContentEnd );
                        buf.append( input.substring( intervalPostion + intervalLength ,j ) ).append( tagAttach ) ;
                    }
                    oldend = j + tagEndLength ;
                }
                if ( !errorFlag ) {
                     buf.append(input.substring(j + tagEndLength,len));
                }
                return buf.toString();
            }
            catch ( IndexOutOfBoundsException IOBe ) {
                   return input;
            }
            catch ( Exception e ) {
                      return input;
            }
        }
    }
    /*USE:
     *String convertIMG( String input )
     */
    public static String convertIMG ( String input ) {
        if( input == null || input.length() == 0 ) {
               return input;
        }
          else {
              return convertSpecialTage ( input , "" , "<img src=\"" , "\">" ) ;
        }
    }
    /*USE:
     *String convertSupperUBB( String input , int level )
     */
    public static String convertSupperUBB ( String input , int level ) {
        if( input == null || input.length() == 0 ) {
                  return input;
          }
          else {
              level++ ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "" , "" , "<a target=\"_blank\" href=\"" , "\">" , "</a>" ) ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "[url=" , "][/url]" , "<a target=\"_blank\" href=\"" , "\">" , "</a>" , "]" ) ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "[color=" ,"][/color]" , "<font color=\"" , "\">" , "</font>" , "]" ) ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "[size=" ,"][/size]" , "<font size=\"" , "\">" , "</font>" , "]" ) ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "" , "" , "<a href=\"mailto:" , "\">" , "</a>" ) ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "" , "<img src=\"" , "\">" ) ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "[swf]" , "[/swf]" ,
                                                    "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0\"><param name=movie value=\"" ,
                                                     "\"><param name=quality value=high><embed src=\"" ,
                                                     "\" quality=high pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"application/x-shockwave-flash\"></embed></object>"
                                                                         ) ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "[url2]" , "[/url2]" , "<a " + "href=\"" , "\">" , "</a>" ) ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "[url2=" , "][/url2]" , "<a " + "href=\"" , "\">" , "</a>" , "]" ) ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "[a]" ,"[/a]" , "<a name=\"" , "\"></a>" ) ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "[div=" ,"][/div]" , "<div align=\"" , "\">" , "</div>" , "]" ) ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "[jsurl=" ,"][/jsurl]" , "<a href=\"#\" onClick=\"" ,"\">" ,"</a>" ,"]") ;
             if ( level-- > 0 ) input = convertSpecialTage ( input , "[class=" ,"][/class]" , "<span class=\"" , "\">" , "</span>" , "]" ) ;         
             input = convertUBB ( input ) ;
             return input ;
        }
    }
    /*USE:
     *String convertMAIL( String input )
     */
    public static String convertMAIL ( String input ) {
        if( input == null || input.length() == 0 ) {
              return input;
        }
          else {
              return convertSpecialTage ( input , "" , "" , "<a href=\"mailto:" , "\">" , "</a>" ) ;
        }
    }
    /*USE:
     *String convertSWF( String input )
     */
    public static String convertSWF ( String input ) {
        if( input == null || input.length() == 0 ) {
               return input;
        }
          else {
            return convertSpecialTage ( input , "[swf]" , "[/swf]" ,
         "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0\"><param name=movie value=\"" ,
         "\"><param name=quality value=high><embed src=\"" ,
         "\" quality=high pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"application/x-shockwave-flash\"></embed></object>"
         ) ;
        }
    }
}

<img src ="http://www.blogjava.net/fangw/aggbug/7644.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fangw/" target="_blank">方伟的博客</a> 2005-07-13 16:03 <a href="http://www.blogjava.net/fangw/archive/2005/07/13/7644.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>