오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클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();
}
}
댓글 없음:
댓글 쓰기