2013년 8월 11일 일요일

더더더더더... 쉬운 스트럿츠 게시판입니다. 기본 설정입니다.

스트럿츠로 구현한 기본에 충실한 게시판입니다.


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  

이클립스와 오라클을 사용했구요.

소스에 주석이 붙어 있으므로 따로 주석을 붙이지 않겠습니다.

제 프로젝트에 있는 소스를 그대로 올리는 것이므로 실행하기 쉬울꺼라 생각되구요.

관련 이미지와 jar파일들은 제 블로그에 올리겠습니다.
주소는 http://blog.naver.com/kkjae7646 입니다.

제일 먼저 시작화면에서 로그인 처리를 하겠지만 그 전에 프로젝트 설정에 관련된 파일을 올리겠습니다.

그리고 제일 중요한점이 하나 더 있죠~
모르는 점 있으면 바로 쪽지나 메일 날려주세요~
kkjae7646@hanmail.net 이나
kkjae7646@hotmail.com입니다.~
////////////// 테이블 스키마입니다. //////////////////////////////
desc member;

Column            Nullable                        Type           
USER_ID            NOT NULL        VARCHAR2(10)        => PK
USER_PWD    NOT NULL        VARCHAR2(10)       
USER_NAME  NOT NULL        VARCHAR2(50)

desc board;       

Column            Nullable        Type        Comment
BOARD_NO    NOT NULL        NUMBER                        => PK
TITLE            NOT NULL        VARCHAR2(50)       
WRITER            NOT NULL        VARCHAR2(100)       
WRITE_DATE  NOT NULL            DATE       
CONTENT            NOT NULL        CLOB       
HIT            NOT NULL        NUMBER       
FILE_NAME    NOT NULL        VARCHAR2(50)       
WRITE_TYPE  NOT NULL          VARCHAR2(10)       
USER_ID            NOT NULL        VARCHAR2(10)



////////////// web.xml /////////////////////////////////////////////
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <display-name>Welcome to Tomcat</display-name>
  <description>
    Welcome to Tomcat
  </description>
        <!-- Struts Tag Library Descriptors -->

        <taglib>
            <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
            <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
        </taglib>
     
        <servlet>
                <servlet-name>action</servlet-name>
                <servlet-class>kkjae.NewActionServlet</servlet-class>
                <init-param>
                        <param-name>config</param-name>
                        <param-value>/WEB-INF/struts-config.xml</param-value>
                </init-param>
                <load-on-startup>1</load-on-startup>               
        </servlet>
       
       
        <!-- ActionServlet Mapping ====================================-->
        <servlet-mapping>
                <servlet-name>action</servlet-name>
                <url-pattern>*.do</url-pattern>
        </servlet-mapping>
           
</web-app>



///// struts-confix.xml 파일 아래 부분의 언어 설정이 필요합니다. /////////
//////////////////// struts-config.xml /////////////////////////////////
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
     
    <!-- ========== Form Bean Definitions ================================== -->
    <form-beans>
        <!-- ========== login ============== -->
        <form-bean name="LoginForm" type="login.model.LoginForm"/>         

       

    </form-beans>
   
 
    <!-- ========== Global Forward Definitions =============================== -->
    <global-forwards>

   
    </global-forwards>
   
    <!-- ========== Action Mapping Definitions =============================== -->
    <action-mappings>
       
       
 
    </action-mappings> 
   
    <!-- LANGUAGE SETTING  -->
    <controller
            contentType="text/html;charset=euc-kr"
            debug="3"           
            locale="true"
            nocache="true"   
            processorClass="kkjae.MyFilter"/>
   
</struts-config>

///////// WEB-INF/src/kkjae 패키지에 있는 자바 파일들입니다. //////////
///////  프로젝트 전체에서 쓰였으므로 kkjae패키지 밑에 넣었습니다. //////

//////// kkjae.FileUploadUtil  ///////////////////////////////////
//============================================================================
/**
  * 시스템명  : kkjae > 파일업로드
  * 작 성 일  : 2005-07-06
  * 작 성 자  : 김길재
  * 수 정 자  :
  * 파 일 명  : kkjae.FileUploadUtil
  * 버    전  : 1.0
  * 개    요  : 파일 업로드
  * 이    력  : 2005-07-06 : 초기 작성
  *
  */
//============================================================================


/*
 * Created on 2005. 5. 28
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package kkjae;

import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.struts.upload.FormFile;
/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class FileUploadUtil
{
        public static String FileUpload( FormFile file , String file_name )
        throws FileNotFoundException, IOException
        {
                try
                {
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        InputStream stream = file.getInputStream();

                               

                        OutputStream bos = new FileOutputStream( file_name );
                        int bytesRead = 0;
                        byte[] buffer = new byte[8192];
                        while ((bytesRead = stream.read(buffer, 0, 8192)) != -1)
                        {
                                bos.write(buffer, 0, bytesRead);
                        }
                       
                        bos.close();
                        stream.close();
                        baos.close();
                        System.out.println( "FileUploadUtil info " + file_name + " is uploaded" );
                }
                catch( Exception e )
                {
                        System.out.println( "/////////////////////////////////////////////" );
                        System.out.println( "FileUploadUtil Error : " + e.toString() );
                        System.out.println( "/////////////////////////////////////////////" );
                        return null;
                }
                return "true";
        }
}


////////////////// kkjae.MyFilter //////////////////////////
//============================================================================
/**
  * 시스템명  : kkjae > 한글 변환
  * 작 성 일  : 2005-07-06
  * 작 성 자  : 김길재
  * 수 정 자  :
  * 파 일 명  : kkjae.MyFilter
  * 버    전  : 1.0
  * 개    요  : 한글 변환
  * 이    력  : 2005-07-06 : 초기 작성
  *
  */
//============================================================================



package kkjae;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.RequestProcessor;

public class MyFilter extends RequestProcessor {
    protected boolean processPreprocess(
        HttpServletRequest request,
        HttpServletResponse response) {
       
        try {
                request.setCharacterEncoding("euc-kr");
                                       
                return true;
        } catch (Exception e) {               
                return false;                       
        }
    }
}

//////////// kkjae.NewActionServlet ///////////////////
//============================================================================
/**
  * 시스템명  : kkjae > 디비 커넥션 풀 설정
  * 작 성 일  : 2005-07-06
  * 작 성 자  : 김길재
  * 수 정 자  :
  * 파 일 명  : kkjae.NewActionServlet
  * 버    전  : 1.0
  * 개    요  : 디비 커넥션 풀 설정
  * 이    력  : 2005-07-06 : 초기 작성
  *
  */
//============================================================================


/*
 * Created on 2005. 7. 3
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package kkjae;


//import java.io.IOException;

//import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
import javax.servlet.*;

import org.apache.struts.action.ActionServlet;
//import org.apache.struts.config.ModuleConfig;
//import org.apache.struts.util.RequestUtils;

import com.bitmechanic.sql.*; // connection pool 관련 package import
/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class NewActionServlet extends ActionServlet {
   
    private ConnectionPoolManager cpm; // connection pool manager 변수 선언
    private String POOL_ALIAS = "freeboard"; // db alias
    private String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver"; // driver
    private String DB_URL = "jdbc:oracle:thin:@localhost:1521:KJMOBILE"; // url
    private String DB_USER = "freeboard"; // id
    private String DB_PASSWORD = "freeboard"; // pw
    private int REAP_CONN_INTERVAL = 300; // 여기서부터는 bitmechanic 을 위한 환경 설정 값입니다.
    private int MAX_CONNECTION = 20;
    private int IDLE_TIMEOUT = 60;
    private int CHECKOUT_TIMEOUT = 60;
    private int MAX_CHECKOUT = 15;
   
    public void init(ServletConfig config) throws ServletException // init method 오버라이드.. (맞죠? 오버로딩은 아니죠..? --;; )
    {
            try
            {
                    Class.forName(JDBC_DRIVER);
                    cpm = new ConnectionPoolManager(REAP_CONN_INTERVAL); // 실재 connection pool manager 객체 생성
                    cpm.addAlias(POOL_ALIAS,JDBC_DRIVER,DB_URL,DB_USER,DB_PASSWORD,MAX_CONNECTION,IDLE_TIMEOUT,CHECKOUT_TIMEOUT, MAX_CHECKOUT);
                    // connection pool 생성 후에 부모 class의 init method 연속 수행
                    super.init(config);
            }
            catch ( Exception e1 )
            {
                            System.out.println( "////////////////////////////////////////" );
                            System.out.println( "NewActionServlet ERROR : " + e1.toString() );
                            System.out.println( "////////////////////////////////////////" );
            }
    }
}

////////////////////////////// kkjae.Util //////////////////////////////
//============================================================================
/**
  * 시스템명  : kkjae > 공유 메소드
  * 작 성 일  : 2005-07-06
  * 작 성 자  : 김길재
  * 수 정 자  :
  * 파 일 명  : kkjae.Util
  * 버    전  : 1.0
  * 개    요  : 공유 메소드
  * 이    력  : 2005-07-06 : 초기 작성
  *
  */
//============================================================================


package kkjae;

import java.io.UnsupportedEncodingException;

public class Util {
   
        /**
        * Desc        : 유니코드변환
        * Input Param : 한글 문자열
        * Return      : 유니코드로 인코딩된 문자열
        **/
    public static String ksc2uni(String str) throws UnsupportedEncodingException {
        if(str==null) return null;
        return new String(str.getBytes("KSC5601"),"8859_1");
    }
   
    /**
        * Desc        : 한글변환
        * Input Param : 유니코드 문자열
        * Return      : 한글로 인코딩된 문자열
        **/
    public static String uni2ksc(String str) throws UnsupportedEncodingException {
        if(str==null) return null;
        return new String(str.getBytes("8859_1"),"KSC5601");
        }
   
    /**
        * Desc        : 줄 띄어쓰기
        * Input Param : 문자열
        * Return      : /n을 <Br>로 바꾼다.
        **/
    public static String lineBreak(String src)
    {
        int len = src.length();
        int linenum = 0, i = 0;

        for (i = 0; i < len; i++)
          if (src.charAt(i) == '\n')
            linenum++;

        StringBuffer dest = new StringBuffer(len + linenum * 3);

        for (i = 0; i < len; i++) {
          if (src.charAt(i) == '\n')
            dest.append("<br>");
          else
            dest.append(src.charAt(i));
        }

        return dest.toString();
    }
}

댓글 없음:

댓글 쓰기