使用JAVA技巧FCKEditor263配合Java的使用步骤.docx

上传人:b****6 文档编号:6573196 上传时间:2023-01-08 格式:DOCX 页数:26 大小:30.01KB
下载 相关 举报
使用JAVA技巧FCKEditor263配合Java的使用步骤.docx_第1页
第1页 / 共26页
使用JAVA技巧FCKEditor263配合Java的使用步骤.docx_第2页
第2页 / 共26页
使用JAVA技巧FCKEditor263配合Java的使用步骤.docx_第3页
第3页 / 共26页
使用JAVA技巧FCKEditor263配合Java的使用步骤.docx_第4页
第4页 / 共26页
使用JAVA技巧FCKEditor263配合Java的使用步骤.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

使用JAVA技巧FCKEditor263配合Java的使用步骤.docx

《使用JAVA技巧FCKEditor263配合Java的使用步骤.docx》由会员分享,可在线阅读,更多相关《使用JAVA技巧FCKEditor263配合Java的使用步骤.docx(26页珍藏版)》请在冰豆网上搜索。

使用JAVA技巧FCKEditor263配合Java的使用步骤.docx

使用JAVA技巧FCKEditor263配合Java的使用步骤

FCKEditor是一个很好的用于Web页面中的格式化文本编译控件。

现在越来越多的论坛的发帖页面中更多的使用了这个控件,我们这里将如何在基于Java的web开发中使用FCKEditor控件的步骤提供给大家,为的是让更多的java开发者花费更少的时间去做重复劳动。

  首先去下载FCKEditor2.6.3(当然本文编写的时候,这个是最新版本,也许你现在看到的已经是更新的版本了,那么可能某些配置办法已经变化了,本文也将跟进以保持最新动态,相反如果你使用的旧版本的控件,其配置和使用方法也有所区别),下载地址:

第一是FCKeditor_2.6.3.zip,就是FCKEditor的控件;

  第二是FCKeditor.Java(fckeditor-java-2.4.1-bin.zip),就是在Java代码中使用FCKEditor的相关工具类;

  有了这两个文件,使用FCKEditor的基础就具备了,考试大提示接下来我们要做两件事情,一件事情就是要把FCKEditor控件放到web项目中,这个控件是用于网页的,所以其代码是使用JavaScript脚本编写的,需要和web网页一起被下载的浏览器上才能执行,第二件事情就是这个网页上的控件因为支持图片的上传与下载,所以在上传与下载的时候需要服务端的支持,那么我们我的java服务端如何支持这个控件的工作呢?

FCKEditor自身提供了相关的java工具,就是我们下载的第二个文件。

因此我们要做的第二件事情就是在服务端配置java工具,使得FCKEditor控件在处理上传图片时能够正确工作。

  接下来我们就开始对配置FCKEditor控件进行两项工作:

  第一:

解压缩FCKeditor_2.6.3.zip,在其中我们能找到一个文件夹叫fckeditor,那么将这个文件夹整个复制到你的web应用的根目录(WebRoot目录)下,就是存放jsp页面的地方。

  第二:

解压缩fckeditor-java-2.4.1-bin.zip,将这样几个jar文件复制到web应用的WEB-INF\lib目录中(commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,java-core-2.4.1.jar,slf4j-api-1.5.2.jar,slf4j-simple-1.5.2.jar),其中最后一个文件在这个zip包中可能不存在,那么你可以去这个链接地址下载一个文件叫fckeditor-java-2.4.1-bin.zip(下载地址:

1.connector.userActionImpl=net.fckeditor.requestcycle.impl.EnabledUserAction   

二:

创建fckeditor.properties文件在src下(编译之后处于classes目录中),文件内容如下:

connector.userFilesPath=/UserUploadFile

connector.resourceType.file.extensions.allowed=|jpg|gif|png|rar|zip|txt|doc|wma|wmv|mp3|flv|swf|

connector.resourceType.media.extensions.allowed=|wma|wmv|mp3|flv|swf|

connector.resourceType.image.extensions.allowed=|jpg|png|gif|

connector.resourceType.flash.extensions.allowed=|swf|

connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl

fckeditor.basePath=/fckeditor(fck资源所在webapp中的目录)

fckeditor.skinPath=/skins/office2003/(fck样式,这里可选默认和office2003的样式)

fckeditor.height=630(fck编辑器的高度)

在web.xml中添加一个Servlet的配置,配置内容如下:

Connector

net.fckeditor.connector.ConnectorServlet

1

Connector

/fckeditor/editor/filemanager/connectors/*

  好了,现在你已经完成了配置的过程,接下来我们需要在jsp中使用FCKEditor控件了,在需要使用这个控件的jsp文件的开头添加标签库的引入语句:

<%@tagliburi=""prefix="FCK"%>

,在使用控件进行文本格式化输入的地方(原来你可能使用的textarea标签)使用如下的内容来替换原来的输入控件:

editorinstanceName="content">

attributename="value">

您的内容.....

attribute>

editor>

自己的实例

editorinstanceName="content"height="400pt">

body>

configSkinPath="${skin}"/>

body>

editor>

  其中instanceName属性的值就相当于form表单中的input的name值。

就是表单提交时候的键值对中的键的名字。

1)在文本框中输入中文提交后得到的中文乱码。

解决办法:

Result.JSP中来转码:

newString(request.getParameter(“content”).getByte(iso-8859-1),”UTF-8”)

试验下,嘿嘿,”汉化”成功!

2)上传中文名图片后保存的中文图片名乱码

解决办法:

下载.jar包,替换以前下载的fckeditor-java-core-2.4.jar包,

OK,上传中文图片名显示正常了,

fckeditor-java-core-2.4.2jar包上传时就不会乱码

在使用FCKeditor2.4.3时若上传的图片或者flash的文件名为中文时,发现一下情况:

问题1:

当点击“插入/编辑图像”或者“插入/编辑Flash”按钮时,在弹出的对话框中选择上传按钮,如果上传的文件名为中文时会出现乱码。

解决办法:

  找到FCKeditor.java解压包中的src目录下SimpleUploaderServlet.java做如下修改:

  找到该程序中DiskFileUploadupload=newDiskFileUpload(),然后在该行下面添加

upload.setHeaderEncoding("UTF-8"),重新编译成class文件并利用WinRAR把该class文件

添加到FCKeditor-2.3.jar中相应的位置,然后覆盖你的web项目中原来的jar包便可。

问题2:

  当点击“插入/编辑图像”或者“插入/编辑Flash”按钮时,在弹出的对话框中使用浏览

服务器按钮上传中文文件时会出现乱码。

解决办法:

  和问题1的解决办法基本一样,只不过需要在ConnectorServlet.java中添加

upload.setHeaderEncoding("UTF-8")便可。

问题3:

  当点击“插入/编辑图像”或者“插入/编辑Flash”按钮时,在弹出的对话框中点击浏览

服务器按钮,会弹出“浏览服务器”页面,如果想在该页面中使用CreateNewFolder按钮

来创建一个中文目录时,会出现中文目录乱码。

解决办法:

  web容器的编码要与FCKeditor默认的编码UTF-8一致,如果使用的是Tomcat,需修改

tomcat服务器中conf目录下的server.xml。

如下:

  

              maxThreads="150"minSpareThreads="25"maxSpareThreads="75"

              enableLookups="false"redirectPort="8443"acceptCount="100"

              connectionTimeout="20000"disableUploadTimeout="true"URIEncoding="utf-8"/>

   

              enableLookups="false"redirectPort="8443"protocol="AJP/1.3"URIEncoding="utf-8"/>

其实就是在原来的基础上添加URIEncoding的属性值为utf-8。

 注:

对于问题3,这种解决办法不可取,最好不要去修改服务器的编码,否则会影响到服务器上其它的工程。

解决这个编码的问题可以修改源代码或者从新编写一个类来处理。

通过观察打开的上传浏览对话框可以找对对应的htm页面和负责处理上传文件名称的com.fredck.FCKeditor.uploader.ConnectorServlet这个类,然后找到对应的参数,转换编码便可。

如:

StringnewFolderStr=request.getParameter("NewFolderName");

newFolderStr=newString(newFolderStr.getBytes("iso8859-1"),"utf-8");

网上很多文章都说修改/editor/filemanager/browser/default/frmupload.html,在head中加一个meta

 ,其实凭这个不行。

3)点击浏览服务器后,选择刚上传的中文图片,图片在预览窗口中不能显示

解决办法:

修改TOMCAT安装目录config下的server.xml文件,在标签内加上URIEncoding="UTF-8"。

OK,中文图片正常显示。

对中文图片进行UUID编码,上传乱码的解决方法

/*

*FCKeditor-ThetexteditorforInternet-

*Copyright(C)2004-2009FredericoCaldeiraKnabben

*

*==BEGINLICENSE==

*

*Licensedunderthetermsofanyofthefollowinglicensesatyour

*choice:

*

*-GNUGeneralPublicLicenseVersion2orlater(the"GPL")

*http:

//www.gnu.org/licenses/gpl.html

*

*-GNULesserGeneralPublicLicenseVersion2.1orlater(the"LGPL")

*http:

//www.gnu.org/licenses/lgpl.html

*

*-MozillaPublicLicenseVersion1.1orlater(the"MPL")

*http:

//www.mozilla.org/MPL/MPL-1.1.html

*

*==ENDLICENSE==

*/

packagenet.fckeditor.connectorl;

importjava.io.File;

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.util.*;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importnet.fckeditor.handlers.CommandHandler;

importnet.fckeditor.handlers.ConnectorHandler;

importnet.fckeditor.handlers.ExtensionsHandler;

importnet.fckeditor.handlers.RequestCycleHandler;

importnet.fckeditor.handlers.ResourceTypeHandler;

importnet.fckeditor.response.UploadResponse;

importnet.fckeditor.response.XmlResponse;

importnet.fckeditor.tool.Utils;

importnet.fckeditor.tool.UtilsFile;

importnet.fckeditor.tool.UtilsResponse;

importmons.fileupload.FileItem;

importmons.fileupload.FileItemFactory;

importmons.fileupload.disk.DiskFileItemFactory;

importmons.fileupload.servlet.ServletFileUpload;

importmons.io.FilenameUtils;

importorg.slf4j.Logger;

importorg.slf4j.LoggerFactory;

/**

*Servlettouploadandbrowsefiles.

*

*Thisservletaccepts4commandswhichinteractwiththeserver-side

*filesystem.

*Theallowedcommandsare:

*

    *

  • GetFolders:

    Retrievesalistoffoldersinthecurrent

    *folder

  • *

  • GetFoldersAndFiles:

    Retrivesalistoffilesandfolders

    *inthecurrentfolder

  • *

  • CreateFolder:

    Createsanewfolderinthecurrentfolder

  • *

  • FileUpload:

    Storesanuploadedfileintothecurrent

    *folder.(mustbesentwithPOST)

  • *

*

*@version$Id:

ConnectorServlet.java38402009-07-0820:

29:

46Zmosipov$

*/

publicclassConnectorServletextendsHttpServlet{

privatestaticfinallongserialVersionUID=-5742008970929377161L;

privatestaticfinalLoggerlogger=LoggerFactory.getLogger(ConnectorServlet.class);

/**

*Initializetheservlet:

mkdir<DefaultUserFilesPath>

*/

publicvoidinit()throwsServletException,IllegalArgumentException{

StringrealDefaultUserFilesPath=getServletContext().getRealPath(

ConnectorHandler.getDefaultUserFilesPath());

FiledefaultUserFilesDir=newFile(realDefaultUserFilesPath);

UtilsFile.checkDirAndCreate(defaultUserFilesDir);

logger.info("ConnectorServletsuccessfullyinitialized!

");

}

/**

*ManagetheGETrequests(GetFolders,

*GetFoldersAndFiles,CreateFolder).

*

*Theservletacceptscommandssentinthefollowingformat:


*connector?

Command=<CommandName>&Type=<ResourceType>&CurrentFolder=<FolderPath>

*

*ItexecutesthecommandsandthenreturnstheresulttotheclientinXML

*format.

*

*/

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

logger.debug("EnteringConnectorServlet#doGet");

response.setCharacterEncoding("UTF-8");

response.setContentType("application/xml;charset=UTF-8");

response.setHeader("Cache-Control","no-cache");

PrintWriterout=response.getWriter();

StringcommandStr=request.getParameter("Command");

StringtypeStr=request.getParameter("Type");

StringcurrentFolderStr=request.getParameter("CurrentFolder");

logger.debug("ParameterCommand:

{}",commandStr);

logger.debug("ParameterType:

{}",typeStr);

logger.debug("ParameterCurrentFolder:

{}",currentFolderStr);

XmlResponsexr;

if(!

RequestCycleHandler.isEnabledForFileBrowsing(request))

xr=newXmlResponse(XmlResponse.EN_ERROR,Messages.NOT_AUTHORIZED_FOR_BROWSING);

elseif(!

CommandHandler.isValidForGet(commandStr))

xr=newXmlResponse(XmlResponse.EN_ERROR,Messages.INVALID_COMMAND);

elseif(typeStr!

=null&&!

ResourceTypeHandler.isValid(typeStr))

xr=newXmlResponse(XmlResponse.EN_ERROR,Messages.INVALID_TYPE);

elseif(!

UtilsFile.isValidPath(currentF

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1