﻿<?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-Thinking in Manito</title><link>http://www.blogjava.net/liaohaiying/</link><description>智慧+汗水=？</description><language>zh-cn</language><lastBuildDate>Tue, 21 Apr 2026 10:10:43 GMT</lastBuildDate><pubDate>Tue, 21 Apr 2026 10:10:43 GMT</pubDate><ttl>60</ttl><item><title>SmartUpload 中文API帮助</title><link>http://www.blogjava.net/liaohaiying/archive/2005/11/22/21022.html</link><dc:creator>廖海瀛</dc:creator><author>廖海瀛</author><pubDate>Tue, 22 Nov 2005 12:11:00 GMT</pubDate><guid>http://www.blogjava.net/liaohaiying/archive/2005/11/22/21022.html</guid><wfw:comment>http://www.blogjava.net/liaohaiying/comments/21022.html</wfw:comment><comments>http://www.blogjava.net/liaohaiying/archive/2005/11/22/21022.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaohaiying/comments/commentRss/21022.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaohaiying/services/trackbacks/21022.html</trackback:ping><description><![CDATA[<FONT size=2>㈠ File类 <BR><BR>　　这个类包装了一个上传文件的所有信息。通过它，可以得到上传文件的文件名、文件大小、扩展名、文件数据等信息。 <BR><BR>　　File类主要提供以下方法： <BR><BR>1、saveAs作用：将文件换名另存。 <BR><BR>原型： <BR><BR>public void saveAs(java.lang.String destFilePathName) <BR><BR>或 <BR><BR>public void saveAs(java.lang.String destFilePathName, int optionSaveAs) <BR><BR>其中，destFilePathName是另存的文件名，optionSaveAs是另存的选项，该选项有三个值，分别是SAVEAS_PHYSICAL,SAVEAS_VIRTUAL，SAVEAS_AUTO。SAVEAS_PHYSICAL表明以操作系统的根目录为文件根目录另存文件，SAVEAS_VIRTUAL表明以Web应用程序的根目录为文件根目录另存文件，SAVEAS_AUTO则表示让组件决定，当Web应用程序的根目录存在另存文件的目录时，它会选择SAVEAS_VIRTUAL，否则会选择SAVEAS_PHYSICAL。 <BR><BR>例如，saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)执行后若Web服务器安装在C盘，则另存的文件名实际是c:\upload\sample.zip。而saveAs("/upload/sample.zip",SAVEAS_VIRTUAL)执行后若Web应用程序的根目录是webapps/jspsmartupload，则另存的文件名实际是webapps/jspsmartupload/upload/sample.zip。saveAs("/upload/sample.zip",SAVEAS_AUTO)执行时若Web应用程序根目录下存在upload目录，则其效果同saveAs("/upload/sample.zip",SAVEAS_VIRTUAL)，否则同saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)。 <BR><BR>建议：对于Web程序的开发来说，最好使用SAVEAS_VIRTUAL，以便移植。 <BR><BR>2、isMissing <BR><BR>作用：这个方法用于判断用户是否选择了文件，也即对应的表单项是否有值。选择了文件时，它返回false。未选文件时，它返回true。 <BR><BR>原型：public boolean isMissing() <BR><BR>3、getFieldName <BR><BR>作用：取HTML表单中对应于此上传文件的表单项的名字。 <BR><BR>原型：public String getFieldName() <BR><BR>4、getFileName <BR><BR>作用：取文件名（不含目录信息） <BR><BR>原型：public String getFileName() <BR><BR>5、getFilePathName <BR><BR>作用：取文件全名（带目录） <BR><BR>原型：public String getFilePathName <BR><BR>6、getFileExt <BR><BR>作用：取文件扩展名（后缀） <BR><BR>原型：public String getFileExt() <BR><BR>7、getSize <BR><BR>作用：取文件长度（以字节计） <BR><BR>原型：public int getSize() <BR><BR>8、getBinaryData <BR><BR>作用：取文件数据中指定位移处的一个字节，用于检测文件等处理。 <BR><BR>原型：public byte getBinaryData(int index)。其中，index表示位移，其值在0到getSize()-1之间。 <BR><BR>㈡ Files类 <BR><BR>　　这个类表示所有上传文件的集合，通过它可以得到上传文件的数目、大小等信息。有以下方法： <BR><BR>1、getCount <BR><BR>作用：取得上传文件的数目。 <BR><BR>原型：public int getCount() <BR><BR>2、getFile <BR><BR>作用：取得指定位移处的文件对象File（这是com.jspsmart.upload.File，不是java.io.File，注意区分）。 <BR><BR>原型：public File getFile(int index)。其中，index为指定位移，其值在0到getCount()-1之间。 <BR><BR>3、getSize <BR><BR>作用：取得上传文件的总长度，可用于限制一次性上传的数据量大小。 <BR><BR>原型：public long getSize() <BR><BR>4、getCollection <BR><BR>作用：将所有上传文件对象以Collection的形式返回，以便其它应用程序引用，浏览上传文件信息。 <BR><BR>原型：public Collection getCollection() <BR><BR>5、getEnumeration <BR><BR>作用：将所有上传文件对象以Enumeration（枚举）的形式返回，以便其它应用程序浏览上传文件信息。 <BR><BR>原型：public Enumeration getEnumeration() <BR><BR>㈢ Request类 <BR><BR>　　这个类的功能等同于JSP内置的对象request。只所以提供这个类，是因为对于文件上传表单，通过request对象无法获得表单项的值，必须通过jspSmartUpload组件提供的Request对象来获取。该类提供如下方法： <BR><BR>1、getParameter <BR><BR>作用：获取指定参数之值。当参数不存在时，返回值为null。 <BR><BR>原型：public String getParameter(String name)。其中，name为参数的名字。 <BR><BR>2、getParameterValues <BR><BR>作用：当一个参数可以有多个值时，用此方法来取其值。它返回的是一个字符串数组。当参数不存在时，返回值为null。 <BR><BR>原型：public String[] getParameterValues(String name)。其中，name为参数的名字。 <BR><BR>3、getParameterNames <BR><BR>作用：取得Request对象中所有参数的名字，用于遍历所有参数。它返回的是一个枚举型的对象。 <BR><BR>原型：public Enumeration getParameterNames() <BR><BR>㈣ SmartUpload类这个类完成上传下载工作。 <BR><BR>A．上传与下载共用的方法： <BR><BR>只有一个：initialize。 <BR><BR>作用：执行上传下载的初始化工作，必须第一个执行。 <BR><BR>原型：有多个，主要使用下面这个： <BR><BR>public final void initialize(javax.servlet.jsp.PageContext pageContext) <BR><BR>其中，pageContext为JSP页面内置对象（页面上下文）。 <BR><BR>B．上传文件使用的方法： <BR><BR>1、upload <BR><BR>作用：上传文件数据。对于上传操作，第一步执行initialize方法，第二步就要执行这个方法。 <BR><BR>原型：public void upload() <BR><BR>2、save <BR><BR>作用：将全部上传文件保存到指定目录下，并返回保存的文件个数。 <BR><BR>原型：public int save(String destPathName) <BR><BR>和public int save(String destPathName,int option) <BR><BR>其中，destPathName为文件保存目录，option为保存选项，它有三个值，分别是SAVE_PHYSICAL,SAVE_VIRTUAL和SAVE_AUTO。（同File类的saveAs方法的选项之值类似）SAVE_PHYSICAL指示组件将文件保存到以操作系统根目录为文件根目录的目录下，SAVE_VIRTUAL指示组件将文件保存到以Web应用程序根目录为文件根目录的目录下，而SAVE_AUTO则表示由组件自动选择。 <BR><BR>注：save(destPathName)作用等同于save(destPathName,SAVE_AUTO)。 <BR><BR>3、getSize <BR><BR>作用：取上传文件数据的总长度 <BR><BR>原型：public int getSize() <BR><BR>4、getFiles <BR><BR>作用：取全部上传文件，以Files对象形式返回，可以利用Files类的操作方法来获得上传文件的数目等信息。 <BR><BR>原型：public Files getFiles() <BR><BR>5、getRequest <BR><BR>作用：取得Request对象，以便由此对象获得上传表单参数之值。 <BR><BR>原型：public Request getRequest() <BR><BR>6、setAllowedFilesList <BR><BR>作用：设定允许上传带有指定扩展名的文件，当上传过程中有文件名不允许时，组件将抛出异常。 <BR><BR>原型：public void setAllowedFilesList(String allowedFilesList) <BR><BR>其中，allowedFilesList为允许上传的文件扩展名列表，各个扩展名之间以逗号分隔。如果想允许上传那些没有扩展名的文件，可以用两个逗号表示。例如：setAllowedFilesList("doc,txt,,")将允许上传带doc和txt扩展名的文件以及没有扩展名的文件。 <BR><BR>7、setDeniedFilesList <BR><BR>作用：用于限制上传那些带有指定扩展名的文件。若有文件扩展名被限制，则上传时组件将抛出异常。 <BR><BR>原型：public void setDeniedFilesList(String deniedFilesList) <BR><BR>其中，deniedFilesList为禁止上传的文件扩展名列表，各个扩展名之间以逗号分隔。如果想禁止上传那些没有扩展名的文件，可以用两个逗号来表示。例如：setDeniedFilesList("exe,bat,,")将禁止上传带exe和bat扩展名的文件以及没有扩展名的文件。 <BR><BR>8、setMaxFileSize <BR><BR>作用：设定每个文件允许上传的最大长度。 <BR><BR>原型：public void setMaxFileSize(long maxFileSize) <BR><BR>其中，maxFileSize为为每个文件允许上传的最大长度，当文件超出此长度时，将不被上传。 <BR><BR>9、setTotalMaxFileSize <BR><BR>作用：设定允许上传的文件的总长度，用于限制一次性上传的数据量大小。 <BR><BR>原型：public void setTotalMaxFileSize(long totalMaxFileSize) <BR><BR>其中，totalMaxFileSize为允许上传的文件的总长度。 <BR><BR>C．下载文件常用的方法 <BR><BR>1、setContentDisposition <BR><BR>作用：将数据追加到MIME文件头的CONTENT-DISPOSITION域。jspSmartUpload组件会在返回下载的信息时自动填写MIME文件头的CONTENT-DISPOSITION域，如果用户需要添加额外信息，请用此方法。 <BR><BR>原型：public void setContentDisposition(String contentDisposition) <BR><BR>其中，contentDisposition为要添加的数据。如果contentDisposition为null，则组件将自动添加"attachment;"，以表明将下载的文件作为附件，结果是IE浏览器将会提示另存文件，而不是自动打开这个文件（IE浏览器一般根据下载的文件扩展名决定执行什么操作，扩展名为doc的将用word程序打开，扩展名为pdf的将用acrobat程序打开，等等）。 <BR><BR>2、downloadFile <BR><BR>作用：下载文件。 <BR><BR>原型：共有以下三个原型可用，第一个最常用，后两个用于特殊情况下的文件下载（如更改内容类型，更改另存的文件名）。 <BR><BR>① public void downloadFile(String sourceFilePathName) <BR><BR>其中，sourceFilePathName为要下载的文件名（带目录的文件全名） <BR><BR>② public void downloadFile(String sourceFilePathName,String contentType) <BR><BR>其中，sourceFilePathName为要下载的文件名（带目录的文件全名）,contentType为内容类型（MIME格式的文件类型信息，可被浏览器识别）。 <BR><BR>③ public void downloadFile(String sourceFilePathName,String contentType,String destFileName) <BR><BR>其中，sourceFilePathName为要下载的文件名（带目录的文件全名）,contentType为内容类型（MIME格式的文件类型信息，可被浏览器识别）,destFileName为下载后默认的另存文件名。 </FONT><img src ="http://www.blogjava.net/liaohaiying/aggbug/21022.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaohaiying/" target="_blank">廖海瀛</a> 2005-11-22 20:11 <a href="http://www.blogjava.net/liaohaiying/archive/2005/11/22/21022.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP生成彩色验证码的源码</title><link>http://www.blogjava.net/liaohaiying/archive/2005/11/18/20495.html</link><dc:creator>廖海瀛</dc:creator><author>廖海瀛</author><pubDate>Fri, 18 Nov 2005 12:43:00 GMT</pubDate><guid>http://www.blogjava.net/liaohaiying/archive/2005/11/18/20495.html</guid><wfw:comment>http://www.blogjava.net/liaohaiying/comments/20495.html</wfw:comment><comments>http://www.blogjava.net/liaohaiying/archive/2005/11/18/20495.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaohaiying/comments/commentRss/20495.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaohaiying/services/trackbacks/20495.html</trackback:ping><description><![CDATA[<P><FONT size=2>产生验证码图片的文件-----image.jsp</FONT></P>
<P><FONT size=2>&lt;%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %&gt;<BR>&lt;%!<BR>Color getRandColor(int fc,int bc){//给定范围获得随机颜色<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Random random = new Random();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(fc&gt;255) fc=255;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(bc&gt;255) bc=255;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int r=fc+random.nextInt(bc-fc);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int g=fc+random.nextInt(bc-fc);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int b=fc+random.nextInt(bc-fc);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new Color(r,g,b);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>%&gt;<BR>&lt;%<BR>//设置页面不缓存<BR>response.setHeader("Pragma","No-cache");<BR>response.setHeader("Cache-Control","no-cache");<BR>response.setDateHeader("Expires", 0);</FONT></P>
<P><FONT size=2>// 在内存中创建图象<BR>int width=60, height=20;<BR>BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);</FONT></P>
<P><FONT size=2>// 获取图形上下文<BR>Graphics g = image.getGraphics();</FONT></P>
<P><FONT size=2>//生成随机类<BR>Random random = new Random();</FONT></P>
<P><FONT size=2>// 设定背景色<BR>g.setColor(getRandColor(200,250));<BR>g.fillRect(0, 0, width, height);</FONT></P>
<P><FONT size=2>//设定字体<BR>g.setFont(new Font("Times New Roman",Font.PLAIN,18));</FONT></P>
<P><FONT size=2>//画边框<BR>//g.setColor(new Color());<BR>//g.drawRect(0,0,width-1,height-1);</FONT></P>
<P><BR><FONT size=2>// 随机产生155条干扰线，使图象中的认证码不易被其它程序探测到<BR>g.setColor(getRandColor(160,200));<BR>for (int i=0;i&lt;155;i++)<BR>{<BR>&nbsp;int x = random.nextInt(width);<BR>&nbsp;int y = random.nextInt(height);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int xl = random.nextInt(12);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int yl = random.nextInt(12);<BR>&nbsp;g.drawLine(x,y,x+xl,y+yl);<BR>}</FONT></P>
<P><FONT size=2>// 取随机产生的认证码(4位数字)<BR>String sRand="";<BR>for (int i=0;i&lt;4;i++){<BR>&nbsp;&nbsp;&nbsp; String rand=String.valueOf(random.nextInt(10));<BR>&nbsp;&nbsp;&nbsp; sRand+=rand;<BR>&nbsp;&nbsp;&nbsp; // 将认证码显示到图象中<BR>&nbsp;&nbsp;&nbsp; g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同，可能是因为种子太接近，所以只能直接生成<BR>&nbsp;&nbsp;&nbsp; g.drawString(rand,13*i+6,16);<BR>}</FONT></P>
<P><FONT size=2>// 将认证码存入SESSION<BR>session.setAttribute("rand",sRand);</FONT></P>
<P><BR><FONT size=2>// 图象生效<BR>g.dispose();</FONT></P>
<P><FONT size=2>// 输出图象到页面<BR>ImageIO.write(image, "JPEG", response.getOutputStream());</FONT></P>
<P><BR><FONT size=2>%&gt; </FONT></P>
<P><FONT size=2>---------------使用验证码图片的文件---------a.jsp------------------------------------</FONT></P>
<P><FONT size=2>&lt;%@ page contentType="text/html;charset=gb2312" %&gt;<BR>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;title&gt;认证码输入页面&lt;/title&gt;<BR>&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<BR>&lt;META HTTP-EQUIV="Pragma" CONTENT="no-cache"&gt; <BR>&lt;META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"&gt; <BR>&lt;META HTTP-EQUIV="Expires" CONTENT="0"&gt; <BR>&lt;/head&gt;<BR>&lt;body&gt;<BR>&lt;form method=post action="check.jsp"&gt;<BR>&lt;table&gt;<BR>&lt;tr&gt;<BR>&lt;td align=left&gt;系统产生的认证码：&lt;/td&gt;<BR>&lt;td&gt;&lt;img border=0 src="image.jsp"&gt;&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;tr&gt;<BR>&lt;td align=left&gt;输入上面的认证码：&lt;/td&gt;<BR>&lt;td&gt;&lt;input type=text name=rand maxlength=4 value=""&gt;&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;tr&gt;<BR>&lt;td colspan=2 align=center&gt;&lt;input type=submit value="提交检测"&gt;&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;/form&gt;<BR>&lt;/body&gt;<BR>&lt;/html&gt;</FONT></P>
<P><FONT size=2>-----------------验证的页面----------check.jsp</FONT></P>
<P><FONT size=2>&lt;%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %&gt;<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;title&gt;认证码验证页面&lt;/title&gt;<BR>&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<BR>&lt;META HTTP-EQUIV="Pragma" CONTENT="no-cache"&gt; <BR>&lt;META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"&gt; <BR>&lt;META HTTP-EQUIV="Expires" CONTENT="0"&gt; <BR>&lt;/head&gt;</FONT></P>
<P><FONT size=2>&lt;body&gt;<BR>&lt;% <BR>&nbsp;String rand = (String)session.getAttribute("rand");<BR>&nbsp;String input = request.getParameter("rand");<BR>%&gt;<BR>系统产生的认证码为： &lt;%= rand %&gt;&lt;br&gt;<BR>您输入的认证码为： &lt;%= input %&gt;&lt;br&gt;<BR>&lt;br&gt;<BR>&lt;%<BR>&nbsp; if (rand.equals(input)) {<BR>%&gt;<BR>&lt;font color=green&gt;输入相同，认证成功！&lt;/font&gt;<BR>&lt;%<BR>&nbsp; } else {<BR>%&gt;<BR>&lt;font color=red&gt;输入不同，认证失败！&lt;/font&gt;<BR>&lt;%<BR>&nbsp; }<BR>%&gt;<BR>&lt;/body&gt;<BR>&lt;/html&gt;</FONT></P><img src ="http://www.blogjava.net/liaohaiying/aggbug/20495.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaohaiying/" target="_blank">廖海瀛</a> 2005-11-18 20:43 <a href="http://www.blogjava.net/liaohaiying/archive/2005/11/18/20495.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>以前用的一个网站表单字符处理的类</title><link>http://www.blogjava.net/liaohaiying/archive/2005/11/06/18470.html</link><dc:creator>廖海瀛</dc:creator><author>廖海瀛</author><pubDate>Sun, 06 Nov 2005 08:53:00 GMT</pubDate><guid>http://www.blogjava.net/liaohaiying/archive/2005/11/06/18470.html</guid><wfw:comment>http://www.blogjava.net/liaohaiying/comments/18470.html</wfw:comment><comments>http://www.blogjava.net/liaohaiying/archive/2005/11/06/18470.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaohaiying/comments/commentRss/18470.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaohaiying/services/trackbacks/18470.html</trackback:ping><description><![CDATA[<P><BR><FONT size=2>public class CodeFilter<BR>{</FONT></P>
<P><FONT size=2>&nbsp;&nbsp;&nbsp; public CodeFilter()<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; }</FONT></P>
<P><FONT size=2>&nbsp;&nbsp;&nbsp; public static String toHtml(String s)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(s == null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = "";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return s;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, "&amp;", "&amp;amp;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, "&lt;", "&amp;lt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, "&gt;", "&amp;gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, "\t", "&nbsp;&nbsp;&nbsp; ");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, "\r\n", "\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, "\n", "&lt;br&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, " ", "&amp;nbsp;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, "'", "&amp;#39;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, "\\", "&amp;#92;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return s;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }</FONT></P>
<P><FONT size=2>&nbsp;&nbsp;&nbsp; public static String unHtml(String s)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, "&amp;lt;img&amp;nbsp;src=&amp;#39;", "&lt;img src='");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, "&amp;#39;&amp;gt;", "'&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, "&amp;lt;center&amp;gt;", "&lt;center&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = Replace(s, "&amp;lt;/center&amp;gt;", "&lt;/center&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return s;<BR>&nbsp;&nbsp;&nbsp; }</FONT></P>
<P><FONT size=2>&nbsp;&nbsp;&nbsp; public static String Replace(String s, String s1, String s2)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer stringbuffer = new StringBuffer();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i = s.length();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int j = s1.length();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int k;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int l;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(k = 0; (l = s.indexOf(s1, k)) &gt;= 0; k = l + j)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stringbuffer.append(s.substring(k, l));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stringbuffer.append(s2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT></P>
<P><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(k &lt; i)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stringbuffer.append(s.substring(k));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return stringbuffer.toString();<BR>&nbsp;&nbsp;&nbsp; }<BR>}<BR></FONT></P><img src ="http://www.blogjava.net/liaohaiying/aggbug/18470.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaohaiying/" target="_blank">廖海瀛</a> 2005-11-06 16:53 <a href="http://www.blogjava.net/liaohaiying/archive/2005/11/06/18470.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp图像处理 X11错解决方法 </title><link>http://www.blogjava.net/liaohaiying/archive/2005/11/06/18465.html</link><dc:creator>廖海瀛</dc:creator><author>廖海瀛</author><pubDate>Sun, 06 Nov 2005 08:22:00 GMT</pubDate><guid>http://www.blogjava.net/liaohaiying/archive/2005/11/06/18465.html</guid><wfw:comment>http://www.blogjava.net/liaohaiying/comments/18465.html</wfw:comment><comments>http://www.blogjava.net/liaohaiying/archive/2005/11/06/18465.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/liaohaiying/comments/commentRss/18465.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaohaiying/services/trackbacks/18465.html</trackback:ping><description><![CDATA[当在linux服务器上没有装xwindows时,处理图像时会报<BR>java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.这个错. <BR><BR>解决方法: <BR><BR>在tomcat的catalina.sh文件中 找到<BR># ----- Execute The Requested Command -----------------------------------------<BR>echo "Using CATALINA_BASE: $CATALINA_BASE" <BR>echo "Using CATALINA_HOME: $CATALINA_HOME" <BR>echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR" <BR>echo "Using JAVA_HOME: $JAVA_HOME" <BR>加入<BR>JAVA_OPTS="-Djava.awt.headless=true " <BR><BR>就能解决问题. <img src ="http://www.blogjava.net/liaohaiying/aggbug/18465.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaohaiying/" target="_blank">廖海瀛</a> 2005-11-06 16:22 <a href="http://www.blogjava.net/liaohaiying/archive/2005/11/06/18465.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于极限编程，理论与实践的结合！</title><link>http://www.blogjava.net/liaohaiying/archive/2005/11/06/18460.html</link><dc:creator>廖海瀛</dc:creator><author>廖海瀛</author><pubDate>Sun, 06 Nov 2005 08:05:00 GMT</pubDate><guid>http://www.blogjava.net/liaohaiying/archive/2005/11/06/18460.html</guid><wfw:comment>http://www.blogjava.net/liaohaiying/comments/18460.html</wfw:comment><comments>http://www.blogjava.net/liaohaiying/archive/2005/11/06/18460.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaohaiying/comments/commentRss/18460.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaohaiying/services/trackbacks/18460.html</trackback:ping><description><![CDATA[<FONT size=2>&nbsp;&nbsp;&nbsp; 极限编程（XP）是一种轻量级的软件开发方法论，XP从实践中来，是对实践的总结，也是经过实践检验的，其主要特征是要适应环境变化和需求变化，充分发挥开发人员的主动精神。XP承诺降低软件项目风险，改善业务变化的反应能力，提高开发期间的生产力，为软件开发过程增加乐趣，相信这些足以吸引每个人的眼球。在XP的项目开发中，首先引入了四个变量：成本、时间、质量和范围，通过研究变量之间的相互作用，将项目开发分析的更加透彻，成功讲述一个项目成功的原则。为了能成功地实施XP，XP制定四个准则：沟通、简单、反馈和勇气，和十二条原则：计划游戏、小版本、隐喻、简单设计、测试、重构、结队编程、代码集体所有、持续集成、每周工作40小时、现场客户、编码标准，以及对开发人员的工作要求：编码、测试、倾听和设计。XP是一个非常庞大的知识库，每一项都是一门值得深究的学问。提出这些要求和原则后，XP有提出了一系列的解决方案，也就是策略，其中包含：管理策略、设施策略、计划策略、开发策略、设计策略和测试策略。在真正去实现XP时，XP又提供了将策略成功应用的实践。可以说XP为你的软件开发的指导老师。<BR>&nbsp;&nbsp;&nbsp; XP是从实践中来的，应此有好多人围绕XP发表了一些自己的实践经验，其中主要包括：测试驱动开发、结队编程、重构和极限编程工具。在这里我们想阐述一下关于极限编程Java工具的应用，主要包含Ant，Junit和IntelliJ，其中IntelliJ包含对Ant和Junit的支持，还包含了对重构的出色支持，再加上众多的个性化定制，相信精通这款对你的编码有很大的帮助。</FONT> <img src ="http://www.blogjava.net/liaohaiying/aggbug/18460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaohaiying/" target="_blank">廖海瀛</a> 2005-11-06 16:05 <a href="http://www.blogjava.net/liaohaiying/archive/2005/11/06/18460.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于易语言</title><link>http://www.blogjava.net/liaohaiying/archive/2005/11/06/18410.html</link><dc:creator>廖海瀛</dc:creator><author>廖海瀛</author><pubDate>Sun, 06 Nov 2005 06:14:00 GMT</pubDate><guid>http://www.blogjava.net/liaohaiying/archive/2005/11/06/18410.html</guid><wfw:comment>http://www.blogjava.net/liaohaiying/comments/18410.html</wfw:comment><comments>http://www.blogjava.net/liaohaiying/archive/2005/11/06/18410.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaohaiying/comments/commentRss/18410.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaohaiying/services/trackbacks/18410.html</trackback:ping><description><![CDATA[好久没有更新过自己的BLOG了！最近看朋友在使用一种中文编程语言，觉得挺有意思的！便也拿来玩玩！感觉和VB的语法结构差不多，对MYSQL数据库的支持挺强大的，用来写些简单的网站后台挺实用的！开发周期也大大的缩短了，我想用来开发一些小程序应该也是挺不错的一个东西！
<img src ="http://www.blogjava.net/liaohaiying/aggbug/18410.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaohaiying/" target="_blank">廖海瀛</a> 2005-11-06 14:14 <a href="http://www.blogjava.net/liaohaiying/archive/2005/11/06/18410.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>谈鬼神与对象！（一）</title><link>http://www.blogjava.net/liaohaiying/archive/2005/06/17/6316.html</link><dc:creator>廖海瀛</dc:creator><author>廖海瀛</author><pubDate>Fri, 17 Jun 2005 14:08:00 GMT</pubDate><guid>http://www.blogjava.net/liaohaiying/archive/2005/06/17/6316.html</guid><wfw:comment>http://www.blogjava.net/liaohaiying/comments/6316.html</wfw:comment><comments>http://www.blogjava.net/liaohaiying/archive/2005/06/17/6316.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/liaohaiying/comments/commentRss/6316.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaohaiying/services/trackbacks/6316.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天和同事在上班的时候，无意间谈起中学时小女生们常玩的“笔仙”、“银仙”和“碟仙”等较“灵异”的一些东西。偶然大感兴趣，也许是遇到一个未知的领域而特别稀奇，本想让公司里一位较为“通灵”的MM带我玩玩，也见识下这些传说中的未知物，但MM似乎挺忌讳的跟我说这些东西很“邪”，说什么也不肯带我玩，但好奇心的驱使，我还是忍不住在Google上搜索了半天，终于让找到了些资料！<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 鬼啊，神啊，究竟真的存在吗？如果他们存在，他们又是以何种形态存在的呢？这个世界存在的灵异传闻是真的吗？究竟这些匪夷所思的“奇迹”是如何产生的呢？偶然见，我突想到，鬼神不一直都是被人们抽象化的一种事物吗？而我们现在所接触到的所有程序语言不也都提供着抽象化机制。于是乎，我便尝试着用面向对象的思想来解释这一切的“不可思议”！<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;未完待续……<BR><img src ="http://www.blogjava.net/liaohaiying/aggbug/6316.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaohaiying/" target="_blank">廖海瀛</a> 2005-06-17 22:08 <a href="http://www.blogjava.net/liaohaiying/archive/2005/06/17/6316.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>