Posted
Filed under JSP, JAVA
[원문]http://blog.daum.net/_blog/hdn/ArticleContentsView.do?blogid=0Cnf6&articleno=16498176&looping=0&longOpen=

FCKeditor는 오픈 소스로서 웹 환경에서 html편집 기능을 제공 합니다...

1. 톰캣 환경에서 내가 만든 웹프로젝트 안에 FCKedit라는 폴더를 만듭니다.

2. fckeditor 다운로드
2-1. http://www.fckeditor.net/download/ 에서 다운로드
2-2. FCKedit 폴더에 다운로드 된 압축 파일의 압축을 풉니다.
      위의 URL에서 다운받은 것을 사용 하시면 추려낼것들이 좀 많습니다...
      하지만 추려 내지 않고 돌려도 잘 돌아 갑니다...

3.  java 버전용 fckeditor 를  다운로드(FCKeditor-2.3.zip)
3-1. http://sourceforge.net/project/showfiles.php?group_id=75348&package_id=129511 에서 다운로드합니다..
     다운로드 하였다면 압축을 풀고 , 하나 하나 옴겨 보죠...^^
3-2. 먼저 FCKeditor-2.3 의 web/WEB-INF/web.xml을 열어서 톰켓 환경의 web.xml에 추가합니다.
<servlet>
                <servlet-name>Connector</servlet-name>
                <servlet-class>com.fredck.FCKeditor.connector.ConnectorServlet</servlet-class>
               

......<중간 생략>......
 
  <servlet-mapping>
    <servlet-name>SimpleUploader</servlet-name>
    <url-pattern>/simpleuploader</url-pattern>
  </servlet-mapping>

3-3. 그리고 나서는 FCKeditor-2.3 /web/WEB-INF/lib에있는 commons-fileupload.jar파일을
       프로젝트의 WEB-INF/lib안에 복사 하고  빌드패스에 추가 하여 줍니다.
3-4. FCKeditor-2.3/src의 com폴더를 WEB-INF/src에 복사 합니다..
        이렇게 하면 기본적인 jsp에서 사용할수 있는 FCKeditor를 셋팅 됩니다.

기본 셋팅을 했으니까 jsp페이지를 만들어 보죠...
4-1. jsp페이지를 testfck.jsp로 만들도록 하겠습니다...
       페이지에서는

<%@ page   language="java" contentType="text/html;charset=euc-kr"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>


<html>
<head>
   
    <title>FCKeditor</title>

<link href="/css/style.css" rel="stylesheet" type="text/css">

<script language="javascript"  src="/js/message.js" type="text/javascript"></script>
<script type="text/javascript" src="/FCKedit/fckeditor.js"></script>
</head>

<script LANGUAGE="JavaScript"><!--
       
        /**
     * doInit()
     * 개     요 : 화면 로딩시 실행, 일반 textarea를 editor가 포함된 형태로 변형
     * return값 : void
     */
        function doInit() {
       
                var sBasePath = "/FCKedit/";
                oFCKeditor = new FCKeditor( 'FCKeditor' ) ;
                oFCKeditor.BasePath = sBasePath ;
                oFCKeditor.ReplaceTextarea();
        }
        
--></script>

<body style="background-color:transparent" onload="doInit();" oncontextmenu="return false" >
<form id=MsgForm name=MsgForm  method="post" style="width:100%;height:450;" target="myhiddenFrame">
<table id=totalTable width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
        <tr height="100%">
                <td class="td_C5" valign="top" height="100%">
                        <table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">    
                                <tr height="100%">
                                        <td height="100%" id=MSG>
                                                

                                                     <textarea id='FCKeditor' name='FCKeditor' style='width:100%;height:100%;'>
                                                             <c:forEach items="${sessionScope.HelpMsg}" var="it">
                                                                     <c:out value="${it.hlp_msg}"/>
                                                             </c:forEach>
                                                     </textarea>
                                               

                                        </td>
                                </tr>
                        </table>
                </td>
        </tr>
</table>
</form>

</html>

이렇게 구성 하면 jsp페이지 에서 FCKeditor를 볼수 있습니다...
설명을 한다고 했는데 ,, 잘 이해가 되실지 모르겠습니다.....
이글에 대한 궁금한점 리플 달아 주시면 성심 성의껏 답변 해드리겠습니다..

다음 글에서는 FCKeditor의 이미지 업로드에 관한 강좌를 올리도록 하겠습니다...

jsp에서 FCKeditor 사용하기 - 2

FCKeditor에대한 두번째 강좌 이네요..^^
이번 강좌는 편집 문서에 이미지를 넣기 위한 과정으로 좀 까다롭더군요..^^
이거 때문에 고생좀 했습니다..^^

이글을 보시고 FCKeditor를 사용하시는 분들은 고생을 덜하셨으면 합니다..^^

첯 강좌에 commons-fileupload.jar를 lib에 추가 하고, src에 com패키지를 추가 한것을 기억
하실 껍니다..
이 두녀석이 서버의 특정 루트에 파일을 업로드 하게끔 해주는 녀석 입니다..^^
그냥 디폴트로 사용한다면 컨텍스트 아래에 UserFile이라는 이름으로 폴더가 생성 됩니다..
업로드 제한 사이즈 또한 디폴트 용량이 1M안쪽인것 같습니다....
실제 디폴트 용량이 얼마 인지는 저두 확실히 파악하지는 못했습니다....
암튼 수정을 가하지 않고 쓸려니 파일 용량에서 걸리더군요..^^

com패키지 안을 열어 보시면 ConnectorServlet.java파일이 있습니다..
이녀석이 이미지를 업로드 할때 FCKeditor의 frmupload.html에서 녀석을 불러들이고,
ConnectorServlet.java파일 에서는 commons-fileupload.jar파일에 들어 있는 FileItem클래스를
이용하여 파일을 업로드 하게 됩니다..

**** 주의 ****
파일 업로드시 현재 자신이 사용하고 잇는 인코딩 방식을 잘 채크 하고 잇어야 합니다..
사용하는 인토딩 방식에 따라 한글파일 일 경우 파일명이 깨지는 현상이 발생 하기 때문입니다.
****************************************************************************************

ConnectorServlet.java파일에는 몇개의 함수가 존재 하는데..
함수에 대해 잠시 알아 보죠..
init();
서블릿이 구동될때 실행 됩니다.
web.xml에서 폴더명을 가지고 와서 컨택스트폴더 아래에 파일이 업로드될 폴더를 만듭니다.
web.xml에서 폴더명을 얻지 못하였다면 디폴트로 정의된 UserFile이라는 폴더를 생성 합니다.

doGet(HttpServletRequest request, HttpServletResponse response);
UserFile폴더에 들어 잇는 파일명을 읽어 옵니다..
이미지 설정 다이얼로그에서 서버 보기버튼을 누를 때 (browser.html)이 실행되면서 호출 됩니다.
한글 파일의 경우 인코딩 주의

doPost(HttpServletRequest request, HttpServletResponse response);
FCKeditor에서 서버에 전송할때 실제 업로드를 하는 함수 입니다.
이 함수에서 파일 업로드 최대 사이즈 업로드 버퍼 용량등을 조절 가능 합니다.
frmupload.html에서 파일을 선택후 업로드 버튼을 누를때 실행 됩니다.
한글파일의경우 인코딩 주의

getFolders(File dir,Node root,Document doc);
폴더명을 읽어 옵니다.

getFiles(File dir,Node root,Document doc);
파일명을 읽어옵니다.


web.xml을 수정 하고 나면
컨텍스트에 맞게끔 경로 수정이 필요 합니다...

fckconfig.js에서  파일 업로드 경로를 설정 할수있습니다..

web.xml 의
<servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SimpleUploader</servlet-name>
<url-pattern>/editor/filemanager/upload/simpleuploader</url-pattern>
</servlet-mapping>  

위 url-pattern 경로대로 Connector 부분과 UploadURL 을 현재 경로를 재구성해도 되지만
경로를 저리 길게 잡을 필요는 없어서 저는 아래와 같이 xml을 수정 하였습니다

<servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>/connector</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SimpleUploader</servlet-name>
<url-pattern>/simpleuploader</url-pattern>
</servlet-mapping>  

그리고는 fckconfig.js에서 url설정 부분을 아래와 같이 변경 합니다...

FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=/danpum/connector' ;

FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=/danpum/connector' ;

FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=/danpum/connector' ;

FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'simpleuploader?Type=File' ;

FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'simpleuploader?Type=Image' ;

FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'simpleuploader?Type=Flash';


그러면 이미지 업로드 설정은 끝이 납니다,....^^
위와 같이 설정 하면, UserFile이라는 폴더가 컨택스트 폴더 아래에  생성 되고 ,
UserFile/image라는 폴더가 생성 되어 image폴더 안에 파일을 업로드 할수 있습니다.  

설치방법 2

[원문]http://pskppoppo.egloos.com/2771426

현재 개발환경은 eclipse 3.5, jdk 1.6, Tomcat 6.0 버전대이다.

기존 개발시 사용하던 FCKeditor_2.3.2 버전과 세팅방법이 확연히 다르다.

우선 아래의 파일두개를 다운로드한다.

FCKeditor_2.6.5.zip 이건 2.6버전 압축파일, fckeditor-java-demo-2.5.war 이건 필요한 라이브러리들이있는 데모 war 파일

우선 FCKeditor_2.6.5 압축을 푼다.
































기존 2.3버전대랑 디렉토리 구조가 다르다. 2.3버전대에서는 바로 /editor/fckeditor.html 이 존재했지만, 2.6버전대에서는 /fckeditor/editor/fckeditor.html 로 서로 경로가 달랐다.

그리고 2.3버전대에서는 Tomcat 디렉토리안에 압축을 푼후 server.xml 에 아래와 같이 context를 잡아주면 되었다.
<Context docBase="D:/dev/was/apache-tomcat-6.0.16/webapps/FCKeditor_2.3.2" path="/FCKeditor" reloadable="true"/>

이러면 jsp안에서 <%@ taglib uri="http://fckeditor.net/tags-fckeditor" prefix="FCK" %> 이런식으로 선언을 하고 쓸수 있었다.

문제는 2.6버전 일단 2.6버전의 압축파일을 풀어보면 알겠지만 WEB-INF 디렉토리가 없다. 다시말하면 배포된 파일이 아니란 사실이다.

우선 2.6버전을 압축을 풀고 fckeditor 디렉토리를 WebContent 로 복사한다.



































그러면 위와같은 구조가 되겠지? 그런다음 위에있는 fckeditor-java-demo-2.5.war 파일의 압축을 풀어 WEB-INF/lib 폴더에 들어가 아래 파일들을 모두 복사한다.
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
imageinfo-1.9.jar
java-core-2.5.jar
slf4j-api-1.5.8.jar
slf4j-simple-1.5.8.jar

그리고 Tomcat 설치경로 lib 폴더에 붙여넣는다.

다음으로 src 디렉토리에 fckeditor.properties 파일을 만들어 줘야한다.



































fckeditor.properties

그리고 WebContent/WEB-INF/web.xml 에 FCKeditor 부분을 추가해줘야한다.
<display-name>FCKeditor</display-name>
<description>FCKeditor</description>

    <servlet>
        <servlet-name>
ConnectorServlet</servlet-name>
        <servlet-class>net.fckeditor.connector.ConnectorServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>
ConnectorServlet</servlet-name>
   <!-- Do not wrap this line otherwise Glassfish will fail to load this file -->
        <url-pattern>/fckeditor/editor/filemanager/connectors/*</url-pattern>
   </servlet-mapping>

솔까 위에 주석부분은 뭘 뜻하는지 정확히 모르겠음. 이제 완료되었으면 사용할 jsp 단에서 tablib 부분을 선언해줘야한다.

기존 <%@ taglib uri="http://fckeditor.net/tags-fckeditor" prefix="FCK" %> 이렇게 된것을
 
이렇게 말이다. <%@ taglib prefix="FCK" uri="http://java.fckeditor.net" %>

이렇게 하면 Tomcat의 server.xml 에서 설정했던 FCKeditor 관련 Context는 필요가 없어진다.




2010/02/18 18:50 2010/02/18 18:50