(2). 在期望出现FCKeditor的位置添加:
 
 (2). 在适当的位置显示:(value的值不能为空,否则会NullPointerException)
 
<servlet-class>指定为自定义的ConnectorServlet.  自定义的ConnectorServlet如下:
public class ConnectorServlet extends HttpServlet {  
  
    private static final long serialVersionUID = -5742008970929377161L;  
    private static final Logger logger = LoggerFactory.getLogger(ConnectorServlet.class);  
  
    public void init() throws ServletException, IllegalArgumentException {  
        String realDefaultUserFilesPath = getServletContext().getRealPath(  
                ConnectorHandler.getDefaultUserFilesPath());  
  
        File defaultUserFilesDir = new File(realDefaultUserFilesPath);  
        UtilsFile.checkDirAndCreate(defaultUserFilesDir);  
  
        logger.info("ConnectorServlet successfully initialized!");  
    }  
  
    public void doGet(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
        logger.debug("Entering ConnectorServlet#doGet");  
  
        response.setCharacterEncoding("UTF-8");  
        response.setContentType("application/xml; charset=UTF-8");  
        response.setHeader("Cache-Control", "no-cache");  
        PrintWriter out = response.getWriter();  
  
        String commandStr = request.getParameter("Command");  
        String typeStr = request.getParameter("Type");  
        String currentFolderStr = request.getParameter("CurrentFolder");  
  
        logger.debug("Parameter Command: {}", commandStr);  
        logger.debug("Parameter Type: {}", typeStr);  
        logger.debug("Parameter CurrentFolder: {}", currentFolderStr);  
  
        XmlResponse xr;  
  
        if (!RequestCycleHandler.isEnabledForFileBrowsing(request))  
            xr = new XmlResponse(XmlResponse.EN_ERROR, Messages.NOT_AUTHORIZED_FOR_BROWSING);  
        else if (!CommandHandler.isValidForGet(commandStr))  
            xr = new XmlResponse(XmlResponse.EN_ERROR, Messages.INVALID_COMMAND);  
        else if (typeStr != null && !ResourceTypeHandler.isValid(typeStr))  
            xr = new XmlResponse(XmlResponse.EN_ERROR, Messages.INVALID_TYPE);  
        else if (!UtilsFile.isValidPath(currentFolderStr))  
            xr = new XmlResponse(XmlResponse.EN_ERROR, Messages.INVALID_CURRENT_FOLDER);  
        else {  
            CommandHandler command = CommandHandler.getCommand(commandStr);  
            ResourceTypeHandler resourceType = ResourceTypeHandler.getDefaultResourceType(typeStr);  
  
            String typePath = UtilsFile.constructServerSidePath(request, resourceType);  
            String typeDirPath = getServletContext().getRealPath(typePath);  
  
            File typeDir = new File(typeDirPath);  
            UtilsFile.checkDirAndCreate(typeDir);  
  
            File currentDir = new File(typeDir, currentFolderStr);  
  
            if (!currentDir.exists())  
                xr = new XmlResponse(XmlResponse.EN_INVALID_FOLDER_NAME);  
            else {  
  
                xr = new XmlResponse(command, resourceType, currentFolderStr, UtilsResponse  
                        .constructResponseUrl(request, resourceType, currentFolderStr, true,  
                                ConnectorHandler.isFullUrl()));  
  
                if (command.equals(CommandHandler.GET_FOLDERS))  
                    xr.setFolders(currentDir);  
                else if (command.equals(CommandHandler.GET_FOLDERS_AND_FILES))  
                    xr.setFoldersAndFiles(currentDir);  
                else if (command.equals(CommandHandler.CREATE_FOLDER)) {  
                    String newFolderStr = UtilsFile.sanitizeFolderName(request  
                            .getParameter("NewFolderName"));  
                    logger.debug("Parameter NewFolderName: {}", newFolderStr);  
  
                    File newFolder = new File(currentDir, newFolderStr);  
                    int errorNumber = XmlResponse.EN_UKNOWN;  
  
                    if (newFolder.exists())  
                        errorNumber = XmlResponse.EN_ALREADY_EXISTS;  
                    else {  
                        try {  
                            errorNumber = (newFolder.mkdir()) ? XmlResponse.EN_OK  
                                    : XmlResponse.EN_INVALID_FOLDER_NAME;  
                        } catch (SecurityException e) {  
                            errorNumber = XmlResponse.EN_SECURITY_ERROR;  
                        }  
                    }  
                    xr.setError(errorNumber);  
                }  
            }  
        }  
  
        out.print(xr);  
        out.flush();  
        out.close();  
        logger.debug("Exiting ConnectorServlet#doGet");  
    }  
  
    @SuppressWarnings("un
checked")  
    public void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
        logger.debug("Entering Connector#doPost");  
  
        response.setCharacterEncoding("UTF-8");  
        response.setContentType("text/html; charset=UTF-8");  
        response.setHeader("Cache-Control", "no-cache");  
        PrintWriter out = response.getWriter();  
  
        String commandStr = request.getParameter("Command");  
        String typeStr = request.getParameter("Type");  
        String currentFolderStr = request.getParameter("CurrentFolder");  
  
        logger.debug("Parameter Command: {}", commandStr);  
        logger.debug("Parameter Type: {}", typeStr);  
        logger.debug("Parameter CurrentFolder: {}", currentFolderStr);  
  
        UploadResponse ur;  
  
        // if this is a QuickUpload request, 'commandStr' and 'currentFolderStr'  
        // are empty  
        if (Utils.isEmpty(commandStr) && Utils.isEmpty(currentFolderStr)) {  
            commandStr = "QuickUpload";  
            currentFolderStr = "/";  
        }  
  
        if (!RequestCycleHandler.isEnabledForFileUpload(request))  
            ur = new UploadResponse(UploadResponse.SC_SECURITY_ERROR, null, null,  
                    Messages.NOT_AUTHORIZED_FOR_UPLOAD);  
        else if (!CommandHandler.isValidForPost(commandStr))  
            ur = new UploadResponse(UploadResponse.SC_ERROR, null, null, Messages.INVALID_COMMAND);  
        else if (typeStr != null && !ResourceTypeHandler.isValid(typeStr))  
            ur = new UploadResponse(UploadResponse.SC_ERROR, null, null, Messages.INVALID_TYPE);  
        else if (!UtilsFile.isValidPath(currentFolderStr))  
            ur = UploadResponse.UR_INVALID_CURRENT_FOLDER;  
        else {  
            ResourceTypeHandler resourceType = ResourceTypeHandler.getDefaultResourceType(typeStr);  
  
            String typePath = UtilsFile.constructServerSidePath(request, resourceType);  
            String typeDirPath = getServletContext().getRealPath(typePath);  
  
            File typeDir = new File(typeDirPath);  
            UtilsFile.checkDirAndCreate(typeDir);  
  
            File currentDir = new File(typeDir, currentFolderStr);  
  
            if (!currentDir.exists())  
                ur = UploadResponse.UR_INVALID_CURRENT_FOLDER;  
            else {  
  
                String newFilename = null;  
                FileItemFactory factory = new DiskFileItemFactory();  
                ServletFileUpload upload = new ServletFileUpload(factory);  
                                //1  
                try {  
                    List<FileItem> items = upload.parseRequest(request);  
                    FileItem uplFile = items.get(0);  
                    String rawName = UtilsFile.sanitizeFileName(uplFile.getName());  
                    String filename = FilenameUtils.getName(rawName);  
                    String baseName = FilenameUtils.removeExtension(filename);  
                    String extension = FilenameUtils.getExtension(filename);  
                    if (!ExtensionsHandler.isAllowed(resourceType, extension))  
                        ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION);  
                    else {  
                        File pathToSave = new File(currentDir, filename);  
                        int counter = 1;  
                        while (pathToSave.exists()) {  
                            newFilename = baseName.concat("(").concat(String.valueOf(counter))  
                                    .concat(")").concat(".").concat(extension);  
                            pathToSave = new File(currentDir, newFilename);  
                            counter++;  
                        }  
                        if (Utils.isEmpty(newFilename))  
                            ur = new UploadResponse(UploadResponse.SC_OK, UtilsResponse  
                                    .constructResponseUrl(request, resourceType, currentFolderStr,  
                                            true, ConnectorHandler.isFullUrl()).concat(filename));  
                        else  
                            ur = new UploadResponse(UploadResponse.SC_RENAMED,  
                                    UtilsResponse.constructResponseUrl(request, resourceType,  
                                            currentFolderStr, true, ConnectorHandler.isFullUrl())  
                                            .concat(newFilename), newFilename);  
  
                        // secure image check  
                        if (resourceType.equals(ResourceTypeHandler.IMAGE)  
                                && ConnectorHandler.isSecureImageUploads()) {  
                            if (UtilsFile.isImage(uplFile.getInputStream()))  
                                uplFile.write(pathToSave);  
                            else {  
                                uplFile.delete();  
                                ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION);  
                            }  
                        } else  
                            uplFile.write(pathToSave);  
  
                    }  
                } catch (Exception e) {  
                    ur = new UploadResponse(UploadResponse.SC_SECURITY_ERROR);  
                }  
            }  
        }  
        out.print(ur);  
        out.flush();  
        out.close();  
        logger.debug("Exiting Connector#doPost");  
    }  
}