공적's life

2-2 문서 관리 (상세보기) 본문

Programing/Java programing

2-2 문서 관리 (상세보기)

melpis 2010. 7. 20. 18:04






이제 전에 만들었던 등록부분을 다시 고쳐보도록 하죠

     // 문서 등록 폼  Register Document Form

           // 문서 등록 Register Document

           // 문서 상세 보기 view Document

           // 문서 목록 보기 view Document List

           // 문서 삭제 Delete Document

           // 문서 수정 폼 Edit Document Form

           // 문서 수정 Edit Document

            

           // 1. 사용법 출력

           System.out.println("문서 등록 폼: ex) RF");

           System.out.println("문서 등록: ex) RD:제목:내용 ");

           System.out.println("문서 상세 보기: ex) VD:문서번호 ");

           System.out.println("문서 목록 보기: ex) VL ");

           System.out.println("문서 삭제: ex) DD:문서번호 ");

           System.out.println("문서 수정폼: ex) EF:문서번호 ");

           System.out.println("문서 수정: ex) ED:제목:내용 ");

   
우린 친절한 시스템이 좋잖아요 그래서 이렇게 여러가지 정의했어요!! 사용법을 안내해주죠
 

           //2. 사용자 입력

           InputStreamReader inputStreamReader =new InputStreamReader(System.in);

           BufferedReader br = new BufferedReader(inputStreamReader);

           String userInputData = br.readLine();

            

           //3. 데이터 추출

           //3.1 데이터 구분하기

           String outputData[]=userInputData.split("\\:");

            

           //3.2 사용자의 의도 알아 내기

           String userAction = outputData[0].toUpperCase();

기존과 다르게 다른 여러가지 행동이 있기 때문에 이런식으로 분류를 합니다. toUpperCase()이 메소드에 정체는

모든 문자를 대문자로 변환해주는 것입니다. 사용자가 소문자로 입력해도 처리가 됩니다.

 

else if(userAction.equals("RD")){

                 

                //3.2 제목 추출

                String title = outputData[1];

                //3.3 내용 추출

                String content = outputData[2];

                //4. 유효성 검사

                if(title.length()<1 && title.length()>600 ){

                     return ;

                }

                if(content.length()<1 && content.length()>2000){

                     return ;

                }

                //5. 문서 번호 가져오기

                int seq = 1;

                //6. 등록일 가져오기

                Date registDate= new Date();

                //7. 조회수 입력

                int hit= 0;

                //8. 등록

                 

                //9. 결과 출력

                System.out.println("등록 완료");

                 

           }

else if(userAction.equals("VD")){

                System.out.println("글번호 : "+ seq);

                System.out.println("제목  : " + title);

                System.out.println("등록일 : " + registDate);

                System.out.println("조회수 : " + hit);

                System.out.println("내용 : " + content);

           }

else if(userAction.equals("VL")){}

else if(userAction.equals("DD")){}

else if(userAction.equals("EF")){}

else if(userAction.equals("ED")){}

else{

       System.out.println("잘못 입력하셨습니다");

}

시스템이 정의한대로 입력하면 이런식으로 분류가 되겠네요.

그치만 여기에서 문제점이 있습니다. 바로 바로

위에 밑줄 친 부분들이 컴파일 에러가 나죠

왜그럴까요? 그 이유는 저러한 변수를 정의한 곳이 없서서 그렇습니다.

변수가 영향을 받는 곳은 {} 이속에서만 가능합니다

예를 들어서

public class testA{  //1
       int classA;
      public methodA(){ //1-1
           int methodA;
       }//1-1
       
      public methodB(){//1-2
           int methodB;
       }//1-2
}//1

이렇게 구성되어 있다고하면

int classA;

이 변수는 methodA와 methodB에서 참조가 가능합니다.

하지만 methodB에서  int methodA; 를 참조를 할수 없다는 거죠.

이러한 것으로 보아서 가장 바깥에 있는 //1 {  } 요기는 //1-1 //1-2 에서 참조 할수있지만

//1-1 //1-2 는 서로 독립적으로 된다는 것을 알수 잇었고. 역으로는 성립이 안되다는 것을 알았네요


public class testA{  //1
       int classA = 1;
      public methodA(){ //1-1
           int methodA = 2;
           int sumResult = classA+methodA // 가능합니다
       }//1-1
      
      public methodB(){//1-2
           int methodB = 3;
           int modResult = methodA / methodB // 불가능합니다.
       }//1-2
     
    int methodSumResult = methodA + methodB // 불가능합니다.

}//1

이런식으로 설명이 되는 것이죠.

그래서 우리는 위쪽에서 사용되는 

                System.out.println("글번호 : "+ seq);

                System.out.println("제목  : " + title);

                System.out.println("등록일 : " + registDate);

                System.out.println("조회수 : " + hit);

                System.out.println("내용 : " + content);

 

여기에서 사용되는 {} 밖으로 옴겨 보도록하죠!!


    // 저장되는 공간

        int seq =0;

        String title = "";

        String content = "";

        Date registDate = null;

        int hit = 0;

          

        

        if(userAction.equals("RF")){

        

            //4. 등록 폼출력

            System.out.println("제목: ");

            System.out.println("내용: ");

            

            

        }

        else if(userAction.equals("RD")){

            

            //4.1 제목 추출

            String userInputTitle = outputData[1];

            //4.2 내용 추출

            String userInputContent = outputData[2];

            //5. 유효성 검사

            if(userInputTitle.length()<1
                   && userInputTitle.length()>600 ){

                return ;

            }

            if(userInputContent.length()<1
                   && userInputContent.length()>2000){

                return ;

            }

            //6. 문서 번호 가져오기

            int systemSeq = 1;

            //7. 등록일 가져오기

            Date systemDate= new Date();

            //8. 조회수 입력

            int configHit= 0;

        

            //9. 등록

            seq = systemSeq;

            title = userInputTitle;

            content = userInputContent;

            registDate = systemDate;

            hit = configHit;

            

            

            //10. 결과 출력

            System.out.println("등록 완료");

            

        }

        else if(userAction.equals("VD")){

            System.out.println("글번호 : "+ seq);

            System.out.println("제목 : " + title);

            System.out.println("등록일 : " + registDate);

            System.out.println("조회수 : " + hit);

            System.out.println("내용 : " + content);

        }

        else if(userAction.equals("VL")){}

        else if(userAction.equals("DD")){}

        else if(userAction.equals("EF")){}

        else if(userAction.equals("ED")){}

        else{

            System.out.println("잘못 입력하셨습니다");

        }

현재 시스템은 한건만 입력하고 처리하게 되어있네요. 이제 다음번 글쓸때 여러건을 입력하고  처리하는것을

배워 보도록하죠. 이제 실행한번 해볼까요??

문서 등록 폼: ex) RF

문서 등록: ex) RD:제목:내용

문서 상세 보기: ex) VD:문서번호

문서 목록 보기: ex) VL

문서 삭제: ex) DD:문서번호

문서 수정폼: ex) EF:문서번호

문서 수정: ex) ED:제목:내용

RF

제목:

내용:

RD:안녕하세요:다음번에 또뵈요!!

등록 완료

VD

글번호 : 1

제목 : 안녕하세요

등록일 : Tue Jul 20 18:01:59 KST 2010

조회수 : 0

내용 : 다음번에 또뵈요!!



오 잘되네요. 다음번에는 문서 목록 보기 를 해보도록하죠.

실제로 연습하실때는 제가 올린 풀소스코드를 참조해주세요^^;





import java.io.BufferedReader;


import java.io.IOException;


import java.io.InputStreamReader;


import java.util.Date;

 


public class Board {

 


    public static void main(String[] args) throws IOException {

 


        // 문서 등록 폼 Register Document Form


        // 문서 등록 Register Document


        // 문서 상세 보기 view Document


        // 문서 목록 보기 view Document List


        // 문서 삭제 Delete Document


        // 문서 수정 폼 Edit Document Form


        // 문서 수정 Edit Document

 


        // 1. 사용법 출력


        System.out.println("문서 등록 폼: ex) RF");


        System.out.println("문서 등록: ex) RD:제목:내용 ");


        System.out.println("문서 상세 보기: ex) VD:문서번호 ");


        System.out.println("문서 목록 보기: ex) VL ");


        System.out.println("문서 삭제: ex) DD:문서번호 ");


        System.out.println("문서 수정폼: ex) EF:문서번호 ");


        System.out.println("문서 수정: ex) ED:제목:내용 ");

 


        // 저장되는 공간


        int seq =0;


        String title = null ;


        String content = null;


        Date registDate = null;


        int hit =0 ;


        


        while (true) {


            // 2. 사용자 입력


            InputStreamReader inputStreamReader = new InputStreamReader(


                    System.in);


            BufferedReader br = new BufferedReader(inputStreamReader);


            String userInputData = br.readLine();

 


            // 3. 데이터 추출


            // 3.1 데이터 구분하기


            String outputData[] = userInputData.split("\\:");

 


            // 3.2 사용자의 의도 알아 내기


            String userAction = outputData[0].toUpperCase();

 


        

 


            if (userAction.equals("RF")) {

 


                // 4. 등록 폼출력


                System.out.println("제목: ");


                System.out.println("내용: ");

 


            } else if (userAction.equals("RD")) {

 


                // 4.1 제목 추출


                String userInputTitle = outputData[1];


                // 4.2 내용 추출


                String userInputContent = outputData[2];


                // 5. 유효성 검사


                if (userInputTitle.length() < 1


                        && userInputTitle.length() > 600) {


                    return;


                }


                if (userInputContent.length() < 1


                        && userInputContent.length() > 2000) {


                    return;


                }


                // 6. 문서 번호 가져오기


                int systemSeq = 1;


                // 7. 등록일 가져오기


                Date systemDate = new Date();


                // 8. 조회수 입력


                int configHit = 0;

 


                // 9. 등록


                seq = systemSeq;


                title = userInputTitle;


                content = userInputContent;


                registDate = systemDate;


                hit = configHit;

 


                // 10. 결과 출력


                System.out.println("등록 완료");

 


            } else if (userAction.equals("VD")) {


                System.out.println("글번호 : " + seq);


                System.out.println("제목  : " + title);


                System.out.println("등록일 : " + registDate);


                System.out.println("조회수 : " + hit);


                System.out.println("내용 : " + content);


            } else if (userAction.equals("VL")) {


            } else if (userAction.equals("DD")) {


            } else if (userAction.equals("EF")) {


            } else if (userAction.equals("ED")) {


            } else {


                System.out.println("잘못 입력하셨습니다");


            }

 


        }

 


    }


}

'Programing > Java programing' 카테고리의 다른 글

2-6 다음 진행을 위한 회고  (0) 2010.07.23
2-5 문서관리 (수정)  (0) 2010.07.22
2-4 문서관리 (삭제)  (0) 2010.07.22
2-3 문서 관리 (목록 보기)  (0) 2010.07.22
2-1 문서 관리 (등록)  (0) 2010.07.13