﻿<?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-沙罗双树园下的三轮明日</title><link>http://www.blogjava.net/mercurymarsx/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 07 May 2026 02:14:04 GMT</lastBuildDate><pubDate>Thu, 07 May 2026 02:14:04 GMT</pubDate><ttl>60</ttl><item><title>XSS跨站脚本攻击的防护措施</title><link>http://www.blogjava.net/mercurymarsx/archive/2012/04/10/373737.html</link><dc:creator>天涯浪侠</dc:creator><author>天涯浪侠</author><pubDate>Tue, 10 Apr 2012 12:26:00 GMT</pubDate><guid>http://www.blogjava.net/mercurymarsx/archive/2012/04/10/373737.html</guid><wfw:comment>http://www.blogjava.net/mercurymarsx/comments/373737.html</wfw:comment><comments>http://www.blogjava.net/mercurymarsx/archive/2012/04/10/373737.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mercurymarsx/comments/commentRss/373737.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mercurymarsx/services/trackbacks/373737.html</trackback:ping><description><![CDATA[<p style="color: #333333; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; ">先总结一下常见的攻击手法：&nbsp;<br />1. 依赖跨站漏洞，需要在被攻击网站的页面种入脚本的手法&nbsp;<br />1.1. Cookie 盗取，通过javascript 获取被攻击网站种下的cookie，并发送给攻击者。&nbsp;<br />1.1.1. 从cookie 中提取密码等隐私&nbsp;<br />1.1.2. 利用cookie 伪造session，发起重放攻击&nbsp;<br />1.2. Ajex 信息盗取，通过javascript 发起ajex 请求。&nbsp;<br />1.2.1. 从ajex 结果中获取隐私。&nbsp;<br />1.2.2. 模拟用户完成多页表单。&nbsp;<br />2. 不依赖跨站漏洞的手法&nbsp;<br />2.1. 单向HTTP 动作，通过img.src 等方法发起跨站访问，冒充被攻击者执行特权操作。但是很难拿到服务器的返回值。&nbsp;<br />2.2. 双向HTTP 动作，如果服务器产生一段动态的script，那么可以用script.src 的方法发起跨站访问并拿到服务器的返回值。</p><p style="color: #333333; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; ">防范手法如下：&nbsp;<br />1. 防堵跨站漏洞，阻止攻击者利用在被攻击网站上发布跨站攻击语句不可以信任用户提交的任何内容，首先代码里对用户输入的地方和变量都需要仔细检查长度和对&#8221;&lt;&#8221;,&#8221;&gt;&#8221;,&#8221;;&#8221;,&#8221;&#8217;&#8221;等字符做过滤；其次任何内容写到页面之前都必须加以encode，避免不小心把html tag 弄出来。这一个层面做好，至少可以堵住超过一半的XSS 攻击。&nbsp;<br />2. Cookie 防盗&nbsp;<br />首先避免直接在cookie 中泄露用户隐私，例如email、密码等等。其次通过使cookie 和系统ip 绑定来降低cookie 泄露后的危险。这样攻击者得到的cookie 没有实际价值，不可能拿来重放。&nbsp;<br />3. 尽量采用POST 而非GET 提交表单&nbsp;<br />POST 操作不可能绕开javascript 的使用，这会给攻击者增加难度，减少可利用的&nbsp;<br />跨站漏洞。&nbsp;<br />4. 严格检查refer&nbsp;<br />检查http refer 是否来自预料中的url。这可以阻止第2 类攻击手法发起的http 请求，也能防止大部分第1 类攻击手法，除非正好在特权操作的引用页上种了跨站访问。&nbsp;<br />5. 将单步流程改为多步，在多步流程中引入效验码&nbsp;<br />多步流程中每一步都产生一个验证码作为hidden 表单元素嵌在中间页面，下一步操作时这个验证码被提交到服务器，服务器检查这个验证码是否匹配。&nbsp;<br />首先这为第1 类攻击者大大增加了麻烦。其次攻击者必须在多步流程中拿到上一步产生的效验码才有可能发起下一步请求，这在第2 类攻击中是几乎无法做到的。&nbsp;<br />6. 引入用户交互&nbsp;<br />简单的一个看图识数可以堵住几乎所有的非预期特权操作。&nbsp;<br />7. 只在允许anonymous 访问的地方使用动态的javascript。&nbsp;<br />8. 对于用户提交信息的中的img 等link，检查是否有重定向回本站、不是真的图片等&nbsp;<br />可疑操作。&nbsp;<br />9. 内部管理网站的问题&nbsp;<br />很多时候，内部管理网站往往疏于关注安全问题，只是简单的限制访问来源。这种网站往往对XSS 攻击毫无抵抗力，需要多加注意。安全问题需要长期的关注，从来不是一锤子买卖。XSS 攻击相对其他攻击手段更加隐蔽和多变，和业务流程、代码实现都有关系，不存在什么一劳永逸的解决方案。此外，面对XSS，往往要牺牲产品的便利性才能保证完全的安全，如何在安全和便利之间平衡也是一件需要考虑的事情。</p><p style="color: #333333; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; ">web应用开发者注意事项：&nbsp;<br />　　1.对于开发者，首先应该把精力放到对所有用户提交内容进行可靠的输入验证上。这些提交内容包括URL、查询关键&nbsp;<br />字、http头、post数据等。只接受在你所规定长度范围内、采用适当格式、你所希望的字符。阻塞、过滤或者忽略其它的&nbsp;<br />任何东西。&nbsp;<br />　　2.保护所有敏感的功能，以防被bots自动化或者被第三方网站所执行。实现session标记（session tokens）、&nbsp;<br />CAPTCHA系统或者HTTP引用头检查。&nbsp;<br />　　3.如果你的web应用必须支持用户提供的HTML，那么应用的安全性将受到灾难性的下滑。但是你还是可以做一些事来&nbsp;<br />保护web站点：确认你接收的HTML内容被妥善地格式化，仅包含最小化的、安全的tag（绝对没有JavaScript），去掉任何&nbsp;<br />对远程内容的引用（尤其是样式表和JavaScript）。为了更多的安全，请使用httpOnly的cookie。</p><img src ="http://www.blogjava.net/mercurymarsx/aggbug/373737.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mercurymarsx/" target="_blank">天涯浪侠</a> 2012-04-10 20:26 <a href="http://www.blogjava.net/mercurymarsx/archive/2012/04/10/373737.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>System.getProperties 和 System.getProperty</title><link>http://www.blogjava.net/mercurymarsx/articles/362454.html</link><dc:creator>天涯浪侠</dc:creator><author>天涯浪侠</author><pubDate>Tue, 01 Nov 2011 08:33:00 GMT</pubDate><guid>http://www.blogjava.net/mercurymarsx/articles/362454.html</guid><wfw:comment>http://www.blogjava.net/mercurymarsx/comments/362454.html</wfw:comment><comments>http://www.blogjava.net/mercurymarsx/articles/362454.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mercurymarsx/comments/commentRss/362454.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mercurymarsx/services/trackbacks/362454.html</trackback:ping><description><![CDATA[<div>Java里有这么一段获取服务器参数的代码<br />public static java.util.Properties System.getProperties(); // 获取所有系统参数<br />public static String System.getProperty(String key); // 获取指定参数<br />public static String System.getProperty(String key, String def); // 获取指定参数,如果获取不到则返回默认值(def)<br />能获取到的常用参数如下:<br />
<table summary="Shows property keys and associated values">
<tbody>
<tr>
<th>Key</th>
<th>Description of Associated Value</th></tr>
<tr>
<td><code>java.version</code></td>
<td>Java 运行环境版本</td></tr>
<tr>
<td><code>java.vendor</code></td>
<td>Java 运行环境<font style="background-color: #ffffff">供应商</font></td></tr>
<tr>
<td><code>java.vendor.url</code></td>
<td>Java 供应商 URL</td></tr>
<tr>
<td><code>java.home</code></td>
<td>Java 安装路径</td></tr>
<tr>
<td><code>java.vm.specification.version</code></td>
<td>Java 虚拟机规范版本</td></tr>
<tr>
<td><code>java.vm.specification.vendor</code></td>
<td>Java 虚拟机规范供应商</td></tr>
<tr>
<td><code>java.vm.specification.name</code></td>
<td>Java 虚拟机规范名称</td></tr>
<tr>
<td><code>java.vm.version</code></td>
<td>Java 虚拟机实现版本</td></tr>
<tr>
<td><code>java.vm.vendor</code></td>
<td style="width: 530px; height: 24px">Java 虚拟机实现供应商</td></tr>
<tr>
<td><code>java.vm.name</code></td>
<td>Java 虚拟机实现供应商</td></tr>
<tr>
<td><code>java.specification.version</code></td>
<td>Java 运行环境规范版本</td></tr>
<tr>
<td><code>java.specification.vendor</code></td>
<td>Java 运行环境规范供应商</td></tr>
<tr>
<td><code>java.specification.name</code></td>
<td>Java 运行环境规范名称</td></tr>
<tr>
<td><code>java.class.version</code></td>
<td>Java 类规范版本号</td></tr>
<tr>
<td><code>java.class.path</code></td>
<td>Java 类路径</td></tr>
<tr>
<td><code>java.library.path</code></td>
<td>加载库时搜索的路径列表 </td></tr>
<tr>
<td><code>java.io.tmpdir</code></td>
<td><font face="Verdana">默认的临时文件路径</font></td></tr>
<tr>
<td><code>java.compiler</code></td>
<td>要使用的 JIT 编译器的名称</td></tr>
<tr>
<td><code>java.ext.dirs</code></td>
<td>一个或多个扩展目录的路径</td></tr>
<tr>
<td><code>os.name</code></td>
<td>操作系统名称</td></tr>
<tr>
<td><code>os.arch</code></td>
<td>操作系统架构</td></tr>
<tr>
<td><code>os.version</code></td>
<td>操作系统版本</td></tr>
<tr>
<td><code>file.separator</code></td>
<td>文件分隔符（在 UNIX 系统中是&#8220;/&#8221;）</td></tr>
<tr>
<td><code>path.separator</code></td>
<td>路径分隔符（在 UNIX 系统中是&#8220;:&#8221;）</td></tr>
<tr>
<td><code>line.separator</code></td>
<td>行分隔符（在 UNIX 系统中是&#8220;/n&#8221;）</td></tr>
<tr>
<td><code>user.name</code></td>
<td>用户账户名称</td></tr>
<tr>
<td><code>user.home</code></td>
<td>用户主目录</td></tr>
<tr>
<td><code>user.dir</code></td>
<td>用户的当前工作目录</td></tr></tbody></table><br />其余的参数请自行getProperties查看。</div><img src ="http://www.blogjava.net/mercurymarsx/aggbug/362454.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mercurymarsx/" target="_blank">天涯浪侠</a> 2011-11-01 16:33 <a href="http://www.blogjava.net/mercurymarsx/articles/362454.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA基本数据类型</title><link>http://www.blogjava.net/mercurymarsx/articles/362247.html</link><dc:creator>天涯浪侠</dc:creator><author>天涯浪侠</author><pubDate>Fri, 28 Oct 2011 07:57:00 GMT</pubDate><guid>http://www.blogjava.net/mercurymarsx/articles/362247.html</guid><wfw:comment>http://www.blogjava.net/mercurymarsx/comments/362247.html</wfw:comment><comments>http://www.blogjava.net/mercurymarsx/articles/362247.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mercurymarsx/comments/commentRss/362247.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mercurymarsx/services/trackbacks/362247.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="font-family: simsun; line-height: 23px; background-color: #ffffff; ">共有8种：int, short, long, byte, float, double, boolean, char<br />注：这里没有String<br /></span><img src ="http://www.blogjava.net/mercurymarsx/aggbug/362247.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mercurymarsx/" target="_blank">天涯浪侠</a> 2011-10-28 15:57 <a href="http://www.blogjava.net/mercurymarsx/articles/362247.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Oracle将小于1的数字to_char后丢掉0的解决办法</title><link>http://www.blogjava.net/mercurymarsx/articles/349682.html</link><dc:creator>天涯浪侠</dc:creator><author>天涯浪侠</author><pubDate>Fri, 06 May 2011 07:35:00 GMT</pubDate><guid>http://www.blogjava.net/mercurymarsx/articles/349682.html</guid><wfw:comment>http://www.blogjava.net/mercurymarsx/comments/349682.html</wfw:comment><comments>http://www.blogjava.net/mercurymarsx/articles/349682.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/mercurymarsx/comments/commentRss/349682.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mercurymarsx/services/trackbacks/349682.html</trackback:ping><description><![CDATA[<p>SQL代码如下：</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">rtrim</span><span style="color: #000000">(to_char(</span><span style="color: #800000; font-weight: bold">0.11</span><span style="color: #000000">,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">fm9990.99</span><span style="color: #ff0000">'</span><span style="color: #000000">),&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">.</span><span style="color: #ff0000">'</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;dual;</span></div>
其中<br />
0.11为需要to_char的数字<br />
fm去掉字符串前面的空格<br />
9990.99表示4位数字，千位百位十位无数字时不显示[标识9]，个位数[标识0]永久显示，小数没有不显示[标识9]<br />
如果数字位数超过4位则返回结果为####[符号#的个数由原字符串长度决定，比如：12345.01则返回8个#号]<br />
此时需要增加格式化位数以达到目的[如：9999999990.99，表示最大10位整数]<br />
如果需要永久显示两位小数，则用9990.00进行格式化<br />
rtrim(str, '.') 去掉右侧的小数点符号[用于没有小数的整数] 
<img src ="http://www.blogjava.net/mercurymarsx/aggbug/349682.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mercurymarsx/" target="_blank">天涯浪侠</a> 2011-05-06 15:35 <a href="http://www.blogjava.net/mercurymarsx/articles/349682.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JForum安装在Oracle数据库上</title><link>http://www.blogjava.net/mercurymarsx/articles/348166.html</link><dc:creator>天涯浪侠</dc:creator><author>天涯浪侠</author><pubDate>Tue, 12 Apr 2011 10:24:00 GMT</pubDate><guid>http://www.blogjava.net/mercurymarsx/articles/348166.html</guid><wfw:comment>http://www.blogjava.net/mercurymarsx/comments/348166.html</wfw:comment><comments>http://www.blogjava.net/mercurymarsx/articles/348166.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mercurymarsx/comments/commentRss/348166.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mercurymarsx/services/trackbacks/348166.html</trackback:ping><description><![CDATA[<p>参考资料：<a href="http://jforum.net/install_no_wizard.jsp" target="_blank">http://jforum.net/install_no_wizard.jsp</a> <br />
<br />
1. 数据库配置<br />
首先，你的安装数据库，这里安装的是Oracle，不解释。<br />
打开 WEB-INF/config/SystemGlobals.properties 文件，找到配置参数 database.driver.name 并且配置成 oracle ，要小写。<br />
<br />
然后，需要告诉 JForum 是否使用连接池，使用连接池能提升应用的性能，当然我们选择使用。<br />
<br />
连接池配置是参数 database.connection.implementation ，这里用默认的 net.jforum.PooledConnection 就行了。<br />
<br />
接着配置连接池。找到 WEB-INF/config/database/oracle/oracle.properties ，有以下几处需要修改：<br />
database.connection.host 数据库服务器地址，IP或者域名<br />
database.connection.dbname 数据库SID<br />
database.connection.username 用户名<br />
database.connection.password 密码<br />
其他的设置这里不用管，默认就行。<br />
<br />
<br />
2. 创建数据库表<br />
接下来需要创建数据库表。找到 WEB-INF/config/database/oracle 目录下的 oracle_db_struct.sql 并在数据库里执行，会创建运行JForum必须的表。<br />
<br />
<br />
3. 导入初始数据<br />
找到 WEB-INF/config/database/oracle 目录下的 oracle_data_dump.sql 并执行，导入JForum需要的初始数据。<br />
<br />
<br />
4. 系统配置<br />
主要的配置文件是 WEB-INF/config/SystemGlobals.properties，自己尝试着看看各个选项的功能，或者在网上搜一份中文说明吧。</p>
<img src ="http://www.blogjava.net/mercurymarsx/aggbug/348166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mercurymarsx/" target="_blank">天涯浪侠</a> 2011-04-12 18:24 <a href="http://www.blogjava.net/mercurymarsx/articles/348166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JForum与web应用整合</title><link>http://www.blogjava.net/mercurymarsx/articles/348163.html</link><dc:creator>天涯浪侠</dc:creator><author>天涯浪侠</author><pubDate>Tue, 12 Apr 2011 09:59:00 GMT</pubDate><guid>http://www.blogjava.net/mercurymarsx/articles/348163.html</guid><wfw:comment>http://www.blogjava.net/mercurymarsx/comments/348163.html</wfw:comment><comments>http://www.blogjava.net/mercurymarsx/articles/348163.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mercurymarsx/comments/commentRss/348163.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mercurymarsx/services/trackbacks/348163.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在jforum工程下创建一个CookieUserSSO，实现SSO接口：&nbsp;1package&nbsp;net.jforum.sso;&nbsp;2&nbsp;3import&nbsp;javax.servlet.http.Cookie;&nbsp;4&nbsp;5import&nbsp;net.jforum.ControllerUtils;&nbsp;6impor...&nbsp;&nbsp;<a href='http://www.blogjava.net/mercurymarsx/articles/348163.html'>阅读全文</a><img src ="http://www.blogjava.net/mercurymarsx/aggbug/348163.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mercurymarsx/" target="_blank">天涯浪侠</a> 2011-04-12 17:59 <a href="http://www.blogjava.net/mercurymarsx/articles/348163.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FCKEditor配置文件详解</title><link>http://www.blogjava.net/mercurymarsx/articles/347832.html</link><dc:creator>天涯浪侠</dc:creator><author>天涯浪侠</author><pubDate>Thu, 07 Apr 2011 14:21:00 GMT</pubDate><guid>http://www.blogjava.net/mercurymarsx/articles/347832.html</guid><wfw:comment>http://www.blogjava.net/mercurymarsx/comments/347832.html</wfw:comment><comments>http://www.blogjava.net/mercurymarsx/articles/347832.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mercurymarsx/comments/commentRss/347832.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mercurymarsx/services/trackbacks/347832.html</trackback:ping><description><![CDATA[FCKeditor网页文本编辑器，它是一款专门使用在网页上属于开放源代码的所见即所得网页文本编辑器。它可以支持几乎所有的浏览器，也是目前网页中使用最多的文本编辑器。这里简单介绍一下它的配置文件fckconfig.js中文注释。<br />
FCKConfig.CustomConfigurationsPath = '' ;&nbsp;&nbsp; //自定义配置文件路径和名称<br />
FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;&nbsp;&nbsp; //文本编辑区域的样式表文件路径<br />
FCKConfig.EditorAreaStyles = '' ;&nbsp;&nbsp; //文本编辑区域的样式表风格<br />
FCKConfig.ToolbarComboPreviewCSS = '' ;&nbsp;&nbsp; //工具栏预览CSS<br />
FCKConfig.DocType = '' ;&nbsp;&nbsp; //文档类型<br />
FCKConfig.BaseHref = '' ;&nbsp;&nbsp; //相对链接的基地址<br />
FCKConfig.FullPage = false ;&nbsp;&nbsp; //是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容<br />
FCKConfig.StartupShowBlocks = false ;&nbsp;&nbsp; //是否启用"显示模块"<br />
FCKConfig.Debug = false ;&nbsp;&nbsp; //是否开启调试窗口功能<br />
FCKConfig.AllowQueryStringDebug = true ;&nbsp;&nbsp; //是否启用网页查询调试功能<br />
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;&nbsp;&nbsp; //FCKeditor皮肤路径<br />
FCKConfig.SkinEditorCSS = '' ;&nbsp;&nbsp; //编辑器的皮肤CSS路径<br />
FCKConfig.SkinDialogCSS = '' ;&nbsp;&nbsp; //对话窗口的皮肤CSS路径<br />
FCKConfig.PreloadImages = [ FCKConfig.SkinPath + 'images/toolbar.start.gif', FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif' ] ;&nbsp;&nbsp; //预装入的图片<br />
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;&nbsp;&nbsp; //插件路径<br />
FCKConfig.AutoGrowMax = 400 ;&nbsp;&nbsp; //文本编辑区域允许自动增长的最大高度限制，设置此属性时应同时将// FCKConfig.Plugins.Add( 'autogrow' ) ;属性的注释去除，配合使用<br />
FCKConfig.AutoDetectLanguage&nbsp;&nbsp; = true ;&nbsp;&nbsp; //是否自动检测语言<br />
FCKConfig.DefaultLanguage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 'en' ;&nbsp;&nbsp; //默认语言<br />
FCKConfig.ContentLangDirection&nbsp;&nbsp; = 'ltr' ;&nbsp;&nbsp; //默认的文字方向,可选"ltr/rtl",即从左到右或从右到左<br />
FCKConfig.ProcessHTMLEntities&nbsp;&nbsp; = true ;&nbsp;&nbsp; //处理HTML实体<br />
FCKConfig.IncludeLatinEntities&nbsp;&nbsp; = true ;&nbsp;&nbsp; //包括拉丁文<br />
FCKConfig.IncludeGreekEntities&nbsp;&nbsp; = true ;&nbsp;&nbsp; //包括希腊文<br />
FCKConfig.ProcessNumericEntities = false ;&nbsp;&nbsp; //处理数字实体<br />
FCKConfig.AdditionalNumericEntities = '' ;&nbsp;&nbsp; //附加的数字实体<br />
FCKConfig.FillEmptyBlocks&nbsp;&nbsp; = true ;&nbsp;&nbsp; //是否填充空块<br />
FCKConfig.FormatSource&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = true ;&nbsp;&nbsp; //在切换到代码视图时是否自动格式化代码<br />
FCKConfig.FormatOutput&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = true ;&nbsp;&nbsp; //当输出内容时是否自动格式化代码<br />
FCKConfig.FormatIndentator&nbsp;&nbsp; = '&nbsp;&nbsp;&nbsp; ' ;&nbsp;&nbsp; //当在源码格式下缩进代码使用的字符<br />
FCKConfig.EMailProtection = 'none' ;&nbsp;&nbsp; //侦测电子邮件链接<br />
FCKConfig.EMailProtectionFunction = 'mt(NAME,DOMAIN,SUBJECT,BODY)' ;&nbsp;&nbsp; //侦测电子邮件链接<br />
FCKConfig.StartupFocus&nbsp;&nbsp; = false ;&nbsp;&nbsp; //开启时焦点是否到编辑器,即打开页面时光标是否停留在fckeditor上<br />
FCKConfig.ForcePasteAsPlainText&nbsp;&nbsp; = false ;&nbsp;&nbsp; //是否强制粘贴为纯文本内容<br />
FCKConfig.AutoDetectPasteFromWord = true ;&nbsp;&nbsp; //是否自动探测从word粘贴文件,仅支持IE<br />
FCKConfig.ShowDropDialog = true ;&nbsp;&nbsp; //是否显示下拉菜单<br />
FCKConfig.ForceSimpleAmpersand&nbsp;&nbsp; = false ;&nbsp;&nbsp; //是否不把&amp;符号转换为XML实体<br />
FCKConfig.TabSpaces&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0 ;&nbsp;&nbsp; //按下Tab键时光标跳格数,默认值为零为不跳格<br />
FCKConfig.ShowBorders&nbsp;&nbsp; = true ;&nbsp;&nbsp; //是否合并边框<br />
FCKConfig.SourcePopup&nbsp;&nbsp; = false ;&nbsp;&nbsp; //是否弹出<br />
FCKConfig.ToolbarStartExpanded&nbsp;&nbsp; = true ;&nbsp;&nbsp; //启动FCKeditor工具栏默认是否展开<br />
FCKConfig.ToolbarCanCollapse&nbsp;&nbsp; = true ;&nbsp;&nbsp; //是否允许折叠或展开工具栏<br />
FCKConfig.IgnoreEmptyParagraphValue = true ;&nbsp;&nbsp; //是否忽略空的段落值<br />
FCKConfig.FloatingPanelsZIndex = 10000 ;&nbsp;&nbsp; //浮动面板索引<br />
FCKConfig.HtmlEncodeOutput = false ;&nbsp;&nbsp; //是否将HTML编码输出<br />
FCKConfig.TemplateReplaceAll = true ;&nbsp;&nbsp; //是否替换所有模板<br />
FCKConfig.TemplateReplaceCheckbox = true ;&nbsp;&nbsp; //是否将实际内容显示在模版窗口中<br />
FCKConfig.ToolbarLocation = 'In' ;&nbsp;&nbsp; //工具栏位置<br />
FCKConfig.ToolbarSets["Default"]&nbsp;&nbsp; //配置默认工具栏中各按钮，适合用于后台编辑<br />
FCKConfig.ToolbarSets["Basic"]&nbsp;&nbsp; //配置基本工具栏按扭，适合前台编辑<br />
FCKConfig.EnterMode = 'p' ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //编辑文本时按回车键自动生成&lt;P&gt;&lt;/P&gt;标签<br />
FCKConfig.ShiftEnterMode = 'br' ;&nbsp;&nbsp; ////编辑文本时按Shift+回车键自动生成&lt;br /&gt;标签<br />
FCKConfig.Keystrokes&nbsp;&nbsp; //自定义键盘快捷键<br />
FCKConfig.ContextMenu&nbsp;&nbsp; //定义右键菜单的内容<br />
FCKConfig.BrowserContextMenuOnCtrl = false ;&nbsp;&nbsp; //是否允许在编辑区域中当按下Ctrl键时，点击鼠标右键显示浏览器的上下文菜单<br />
FCKConfig.BrowserContextMenu = false ;&nbsp;&nbsp; //是否允许在编辑区域中点击鼠标右键显示浏览器的上下文菜单<br />
FCKConfig.EnableMoreFontColors = true ;&nbsp;&nbsp; //是否禁止更多颜色选项<br />
FCKConfig.FontColors&nbsp;&nbsp; //文字颜色列表<br />
FCKConfig.FontFormats&nbsp;&nbsp; //文字格式列表<br />
FCKConfig.FontNames&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //字体列表<br />
FCKConfig.FontSizes&nbsp;&nbsp; //字号列表<br />
FCKConfig.StylesXmlPath&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = FCKConfig.EditorPath + 'fckstyles.xml' ;&nbsp;&nbsp; //CSS样式列表的XML文件的位置<br />
FCKConfig.TemplatesXmlPath&nbsp;&nbsp; = FCKConfig.EditorPath + 'fcktemplates.xml' ;&nbsp;&nbsp; //模版的XML文件位置<br />
FCKConfig.SpellChecker&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 'WSC' ;&nbsp;&nbsp; //拼写检查器<br />
FCKConfig.IeSpellDownloadUrl&nbsp;&nbsp; = 'http://www.iespell.com/download.php' ;&nbsp;&nbsp; //下载拼写检查器的网址<br />
FCKConfig.SpellerPagesServerScript = 'server-scripts/spellchecker.php' ;&nbsp;&nbsp; //拼写检查器脚本路径<br />
FCKConfig.FirefoxSpellChecker&nbsp;&nbsp; = false ;&nbsp;&nbsp; //Firefox浏览器拼写检查<br />
FCKConfig.MaxUndoLevels = 15 ;&nbsp;&nbsp; //最大可以撤销的次数<br />
FCKConfig.DisableObjectResizing = false ;&nbsp;&nbsp; //是否禁止用户调整图像和表格的大小<br />
FCKConfig.DisableFFTableHandles = true ;&nbsp;&nbsp; //是否禁用表格工具<br />
FCKConfig.LinkDlgHideTarget&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = false ;&nbsp;&nbsp; //是否隐藏Link窗口的target标签<br />
FCKConfig.LinkDlgHideAdvanced&nbsp;&nbsp; = false ;&nbsp;&nbsp; //是否隐藏Link窗口的advanced标签<br />
FCKConfig.ImageDlgHideLink&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = false ;&nbsp;&nbsp; //是否隐藏image窗口的link标签<br />
FCKConfig.ImageDlgHideAdvanced&nbsp;&nbsp; = false ;&nbsp;&nbsp; //是否隐藏image窗口的advanced标签<br />
FCKConfig.FlashDlgHideAdvanced&nbsp;&nbsp; = false ;&nbsp;&nbsp; //是否隐藏Flash窗口的advanced标签<br />
FCKConfig.ProtectedTags = '' ;&nbsp;&nbsp; //添加HTML套用格式<br />
FCKConfig.BodyId = '' ;&nbsp;&nbsp; //设置编辑器的id<br />
FCKConfig.BodyClass = '' ;&nbsp;&nbsp; //设置编辑器的class<br />
FCKConfig.DefaultStyleLabel = '' ;&nbsp;&nbsp; //设置文本编辑器的风格，默认为空白文档<br />
FCKConfig.DefaultFontFormatLabel = '' ;&nbsp;&nbsp; //设置默认格式<br />
FCKConfig.DefaultFontLabel = '' ;&nbsp;&nbsp; //设置默认字体<br />
FCKConfig.DefaultFontSizeLabel = '' ;&nbsp;&nbsp; //设置默认字体大小<br />
FCKConfig.DefaultLinkTarget = '' ;&nbsp;&nbsp; //设置默认链接目标为(_blank、_self _parent、_top)<br />
FCKConfig.CleanWordKeepsStructure = false ;&nbsp;&nbsp; //是否设置直接粘贴为Word格式<br />
FCKConfig.RemoveFormatTags&nbsp;&nbsp; //删除文字时是否删除相应的格式<br />
FCKConfig.RemoveAttributes //删除文字时是否删除相应的样式<br />
FCKConfig.CustomStyles&nbsp;&nbsp; //样式菜单<br />
FCKConfig.CoreStyles&nbsp;&nbsp; //设置FCKeditor核心样式<br />
FCKConfig.IndentLength = 40 ;&nbsp;&nbsp; //编辑器中缩进量的长度<br />
FCKConfig.IndentUnit = 'px' ;&nbsp;&nbsp; //编辑器中缩进量的单位<br />
FCKConfig.IndentClasses = [] ;&nbsp;&nbsp; //FCKeditor允许使用CSS缩进<br />
FCKConfig.JustifyClasses = [] ;&nbsp;&nbsp; //FCKeditor允许使用CSS类文本<br />
var _FileBrowserLanguage&nbsp;&nbsp; = 'php' ;&nbsp;&nbsp; //文件浏览器使用的语言<br />
var _QuickUploadLanguage&nbsp;&nbsp; = 'php' ;&nbsp;&nbsp; //快速上传使用的语言<br />
var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ;&nbsp;&nbsp; //文件浏览器扩展<br />
var _QuickUploadExtension = _QuickUploadLanguage == 'perl' ? 'cgi' : _QuickUploadLanguage ;&nbsp;&nbsp; //快速上传扩展<br />
FCKConfig.LinkBrowser = true ;&nbsp;&nbsp; //是否允许在插入链接时浏览服务器<br />
FCKConfig.LinkBrowserURL&nbsp;&nbsp; //插入链接时浏览服务器的URL<br />
FCKConfig.LinkBrowserWindowWidth&nbsp;&nbsp; //链接目标浏览器窗口宽度<br />
FCKConfig.LinkBrowserWindowHeight&nbsp;&nbsp; //链接目标浏览器窗口高度<br />
FCKConfig.ImageBrowser = true ;&nbsp;&nbsp; //是否关闭图片文件浏览服务器的功能<br />
FCKConfig.ImageBrowserURL&nbsp;&nbsp; //图片文件浏览服务器的URL<br />
FCKConfig.ImageBrowserWindowWidth&nbsp;&nbsp; //图像浏览器窗口宽度<br />
FCKConfig.ImageBrowserWindowHeight&nbsp;&nbsp; //图像浏览器窗口高度<br />
FCKConfig.FlashBrowser = true ;&nbsp;&nbsp; //是否关闭Flash浏览服务器的功能<br />
FCKConfig.FlashBrowserURL&nbsp;&nbsp; //Flash浏览服务器的URL<br />
FCKConfig.FlashBrowserWindowWidth&nbsp;&nbsp; //Flash浏览器窗口宽度<br />
FCKConfig.FlashBrowserWindowHeight&nbsp;&nbsp; //Flash浏览器窗口高度<br />
FCKConfig.LinkUpload = true ;&nbsp;&nbsp; //是否开启文件上传的功能<br />
FCKConfig.LinkUploadURL&nbsp;&nbsp; //指定默认上传文件的地址<br />
FCKConfig.LinkUploadAllowedExtensions&nbsp;&nbsp; //设置允许上传文件的扩展名<br />
FCKConfig.LinkUploadDeniedExtensions&nbsp;&nbsp; = "" ;&nbsp;&nbsp; //设置允许上传脚本文件的扩展名<br />
FCKConfig.ImageUpload = true ;&nbsp;&nbsp; //是否开启图片上传功能<br />
FCKConfig.ImageUploadURL&nbsp;&nbsp; //指定默认上传图片文件的地址<br />
FCKConfig.ImageUploadAllowedExtensions&nbsp;&nbsp; //设置允许上传图片文件的扩展名<br />
FCKConfig.ImageUploadDeniedExtensions&nbsp;&nbsp; = "" ;&nbsp;&nbsp; //设置允许上传图片脚本文件的扩展名<br />
FCKConfig.FlashUpload = true ;&nbsp;&nbsp; //是否开启Flash上传功能<br />
FCKConfig.FlashUploadURL&nbsp;&nbsp; //Flash上传文件的地址<br />
FCKConfig.FlashUploadAllowedExtensions&nbsp;&nbsp; //设置允许上传Flash文件的扩展名<br />
FCKConfig.FlashUploadDeniedExtensions&nbsp;&nbsp; = "" ;&nbsp;&nbsp; //设置允许上传Flash脚本文件的扩展名<br />
FCKConfig.SmileyPath&nbsp;&nbsp; //插入表情图标的路径<br />
FCKConfig.SmileyImages&nbsp;&nbsp; //表情图标的文件名称<br />
FCKConfig.SmileyColumns = 8 ;&nbsp;&nbsp; //表情窗口显示表情列数<br />
FCKConfig.SmileyWindowWidth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 320 ;&nbsp;&nbsp; //表情窗口显示宽度，此窗口会因为表情文件的改变而作调整<br />
FCKConfig.SmileyWindowHeight&nbsp;&nbsp; = 210 ;&nbsp;&nbsp; //表情窗口显示高度，此窗口会因为表情文件的改变而作调整<br />
FCKConfig.BackgroundBlockerColor = '#ffffff' ;&nbsp;&nbsp; //编辑器弹出窗口时，背景遮照住的颜色<br />
FCKConfig.BackgroundBlockerOpacity = 0.50 ;&nbsp;&nbsp; //编辑器弹出窗口时，背景遮照住的透明度<br />
FCKConfig.MsWebBrowserControlCompat = false ;<br />
FCKConfig.PreventSubmitHandler = false ;
 <img src ="http://www.blogjava.net/mercurymarsx/aggbug/347832.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mercurymarsx/" target="_blank">天涯浪侠</a> 2011-04-07 22:21 <a href="http://www.blogjava.net/mercurymarsx/articles/347832.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FCKEditor工具条定制</title><link>http://www.blogjava.net/mercurymarsx/articles/347830.html</link><dc:creator>天涯浪侠</dc:creator><author>天涯浪侠</author><pubDate>Thu, 07 Apr 2011 14:10:00 GMT</pubDate><guid>http://www.blogjava.net/mercurymarsx/articles/347830.html</guid><wfw:comment>http://www.blogjava.net/mercurymarsx/comments/347830.html</wfw:comment><comments>http://www.blogjava.net/mercurymarsx/articles/347830.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mercurymarsx/comments/commentRss/347830.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mercurymarsx/services/trackbacks/347830.html</trackback:ping><description><![CDATA[在fckconfig.js中找到FCKConfig.ToolbarSets 段，默认有两个工具条样式，一个是Default，一个是Basic<br />
<br />
增加如下一段：<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #000000">FCKConfig.ToolbarSets</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">"Custom"</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000; font-weight: bold">[<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #800000; font-weight: bold"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">'FontFormat','FontName','FontSize'</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000">,</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">'Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000">,</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">'OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000">,</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">'JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000">,</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">'Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000">,</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">'Link','Unlink','Anchor'</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000">,</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">'TextColor','BGColor'</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000">,</span><span style="color: #000000">'/'<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">'Cut','Copy','Paste','PasteText','PasteWord'</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000">,</span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">'Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000">,</span><span style="color: #000000"><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">'FitWindow','ShowBlocks','-','Source','About'</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;No&nbsp;comma&nbsp;for&nbsp;the&nbsp;last&nbsp;row.<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />]&nbsp;</span><span style="color: #008000">;</span></div>
<br />
然后再调用代码中做如下更改<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #000000">&lt;</span><span style="color: #000000">%<br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Dim</span><span style="color: #000000">&nbsp;oFCKeditor<br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Set</span><span style="color: #000000">&nbsp;oFCKeditor&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">New</span><span style="color: #000000">&nbsp;FCKeditor<br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.BasePath&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">edit/</span><span style="color: #000000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.Value&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000"><br />
</span><span style="color: #008080">6</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.Config(</span><span style="color: #000000">"</span><span style="color: #000000">SkinPath</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">/website/manage/edit/editor/skins/silver/</span><span style="color: #000000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">7</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.ToolbarSet&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">Custom</span><span style="color: #000000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">8</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.Create&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">txtcontent</span><span style="color: #000000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">9</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />%</span><span style="color: #000000">&gt;</span></div>
<br />
如果采用 &lt;%@ taglib&nbsp;prefix="FCK" uri="http://java.fckeditor.net"%&gt; 标签方式，则做如下更改<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">FCK:editor&nbsp;</span><span style="color: #ff0000">instanceName</span><span style="color: #0000ff">="editorDefault"</span><span style="color: #ff0000">&nbsp;basePath</span><span style="color: #0000ff">="/fckeditor"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:attribute&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="value"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">请填写内容</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">jsp:attribute</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:attribute&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="toolbarSet"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">Custom</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">jsp:attribute</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">FCK:editor</span><span style="color: #0000ff">&gt;</span></div>
<br />
其定制语法很简单<br />
[]&nbsp; 表示一个工具条，<br />
[]&nbsp; 中的短横线'-'表示一个垂直分割线<br />
''&nbsp; 两个单引号中间加一个标识符表示一个工具栏按钮，具体的对应关系见下表。<br />
'/' 作用类似于一个回车。使该符号后面的工具栏新起一行排列。<br />
<br />
<p>下面对编辑器的按钮进行详细介绍：</p>
<p>EditSource 显示HTML源代码 <br />
StrikeThrough 删除线 <br />
Save 保存 <br />
NewPage 新建空白页面 <br />
Superscrīpt 上标 <br />
Subscrīpt 下标 <br />
Preview 预览 <br />
JustifyLeft 左对齐 <br />
Cut 剪切 <br />
Copy 复制 <br />
Paste 粘贴 <br />
JustifyCenter 居中对齐 <br />
JustifyRight 右对齐 <br />
JustifyFull 两端对齐 <br />
PasteText 纯文本粘贴 <br />
InsertOrderedList 自动编号 <br />
PasteWord 来自Word的粘贴 <br />
InsertUnorderedList 项目符号 <br />
Print 打印 <br />
Outdent 减少缩进 <br />
SpellCheck 拼写检查 <br />
Indent 增加缩进 <br />
Find 查找 <br />
ShowTableBorders 显示表格线 <br />
Replace 替换 <br />
ShowDetails 显示明细 <br />
Undo 撤销 <br />
Form 添加Form动作 <br />
Redo 还原 <br />
Checkbox 复选框 <br />
SelectAll 全选 <br />
Radio 单选按钮 <br />
RemoveFormat 去除格式 <br />
Input 单行文本框 <br />
Link 插入/编辑 链接 <br />
Textarea 滚动文本框 <br />
RemoveLink 去除连接 <br />
Select 下拉菜单 <br />
Anchor 锚点 <br />
Button 按钮 <br />
Image 插入/编辑 图片 <br />
ImageButton 图片按钮 <br />
Table 插入/编辑 表格 <br />
Hidden 隐藏 <br />
Rule 插入水平线 <br />
Zoom 显示比例 <br />
SpecialChar 插入特殊字符 <br />
FontStyleAdv 系统字体 <br />
UniversalKey 软键盘 <br />
FontStyle 字体样式 <br />
Smiley 插入表情符号 <br />
FontFormat 字体格式 <br />
About 关于 <br />
Font 字体 <br />
Bold 粗体 <br />
FontSize 字体大小 <br />
Italic 斜体 <br />
TextColor 文字颜色 <br />
Underline 下划线 <br />
BGColor 背景色 </p>
 <img src ="http://www.blogjava.net/mercurymarsx/aggbug/347830.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mercurymarsx/" target="_blank">天涯浪侠</a> 2011-04-07 22:10 <a href="http://www.blogjava.net/mercurymarsx/articles/347830.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>org.apache.jasper.JasperException: page.jsp(1,1) Attribute value request.getParameter("item") is quoted with " which must be escaped when used within the value</title><link>http://www.blogjava.net/mercurymarsx/articles/347724.html</link><dc:creator>天涯浪侠</dc:creator><author>天涯浪侠</author><pubDate>Wed, 06 Apr 2011 10:32:00 GMT</pubDate><guid>http://www.blogjava.net/mercurymarsx/articles/347724.html</guid><wfw:comment>http://www.blogjava.net/mercurymarsx/comments/347724.html</wfw:comment><comments>http://www.blogjava.net/mercurymarsx/articles/347724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mercurymarsx/comments/commentRss/347724.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mercurymarsx/services/trackbacks/347724.html</trackback:ping><description><![CDATA[有网友认为 Tomcat 没有遵循 JSP 2.0 specification （JSP .1.6 Quoting and Escape Conventions, Quoting in Attributes, Page 72-73），让下面不合法的语法在 Tomcat 5.5.26 之前的版本是可以被接受的<br />
<br />
&lt;mytags:tag value="&lt;%= "hi!" %&gt;" /&gt;<br />
但是合法的写法应该是下列这几种：&nbsp;<br />
&lt;mytags:tag value='&lt;%= "hi!" %&gt;' /&gt;<br />
&lt;mytags:tag value="&lt;%= \"hi!\" %&gt;" /&gt;<br />
&lt;mytags:tag value='&lt;%= \"hi!\" %&gt;' /&gt;<br />
<br />
也就是作为标签属性值时不能使用两次双引号，可以改用单引号取代外面的双引号或是里面的双引号前面要加转义字符(\)，为了符合遵循标准的参考实作这个精神，所以 Tomcat 开发团队就修正了这个问题，自 Tomcat 5.5.27 和 6.0.17 起改成这样。<br />
<br />
解决方式：<br />
<br />
方法 1：使用单引号<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:include&nbsp;</span><span style="color: #ff0000">page</span><span style="color: #0000ff">="split_page.jsp"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jspUrl"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="&lt;%=jspUrl%&gt;"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="category"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">='&lt;%=equest.getParameter("category")%</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">'&nbsp;/&gt;<br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="searchFlag"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="T"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">jsp:include</span><span style="color: #0000ff">&gt;</span></div>
<br />
方法 2：使用转义字符("\")<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:include&nbsp;</span><span style="color: #ff0000">page</span><span style="color: #0000ff">="split_page.jsp"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jspUrl"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="&lt;%=jspUrl%&gt;"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="category"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="&lt;%=equest.getParameter(\"</span><span style="color: #ff0000">category\")%</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">"&nbsp;/&gt;<br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="searchFlag"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="T"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">jsp:include</span><span style="color: #0000ff">&gt;</span></div>
<br />
方法 3：修改 Tomcat 设置（不修改程序代码）<br />
如果网页比较多的话，另外的解决办法是在 ${CATALINA_BASE}/conf 下面的 catalina.properties 中加入以下内容，重新启动 Tomcat 即可：<br />
<br />
<pre class="brush: java" name="code">org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false</pre>
<pre class="brush: java" name="code">参考资料： <br />
<a class="snap_shots" href="https://issues.apache.org/bugzilla/show_bug.cgi?id=45015" rel="nofollow" target="_blank">https://issues.apache.org/bugzilla/show_bug.cgi?id=45015</a><br />
<a class="snap_shots" href="http://tomcat.apache.org/tomcat-5.5-doc/config/systemprops.html" rel="nofollow" target="_blank">http://tomcat.apache.org/tomcat-5.5-doc/config/systemprops.html</a><br />
<a class="snap_shots" href="http://tomcat.apache.org/tomcat-6.0-doc/config/systemprops.html" rel="nofollow" target="_blank">http://tomcat.apache.org/tomcat-6.0-doc/config/systemprops.html</a></pre>
 <img src ="http://www.blogjava.net/mercurymarsx/aggbug/347724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mercurymarsx/" target="_blank">天涯浪侠</a> 2011-04-06 18:32 <a href="http://www.blogjava.net/mercurymarsx/articles/347724.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何用CMD删除目录下的所有.svn文件</title><link>http://www.blogjava.net/mercurymarsx/articles/347521.html</link><dc:creator>天涯浪侠</dc:creator><author>天涯浪侠</author><pubDate>Sat, 02 Apr 2011 05:51:00 GMT</pubDate><guid>http://www.blogjava.net/mercurymarsx/articles/347521.html</guid><wfw:comment>http://www.blogjava.net/mercurymarsx/comments/347521.html</wfw:comment><comments>http://www.blogjava.net/mercurymarsx/articles/347521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mercurymarsx/comments/commentRss/347521.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mercurymarsx/services/trackbacks/347521.html</trackback:ping><description><![CDATA[<p>把下面代码保存为delete.bat 就可以了。<br />
@for /r . %%a in (.) do @if exist "%%a\.svn" rd /s /q "%%a\.svn"</p>
<p>注意在你的项目的根目录新建那个文件</p>
 <img src ="http://www.blogjava.net/mercurymarsx/aggbug/347521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mercurymarsx/" target="_blank">天涯浪侠</a> 2011-04-02 13:51 <a href="http://www.blogjava.net/mercurymarsx/articles/347521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>