[실습1-3][memo] JSP Server Page(글 쓰기, 글 보기, 글 목록)

[01] JSP Server 페이지 제작
   Tomcat 9090 포트를 사용함.

1. 데이터 입력 화면
   - 처리 흐름
memo_flex.mxml --> registerData() --> updateHTTPSvc.send(dataObj) --> 응답 기다림 --> ⓐ


ⓐ--+--> 성공: updateResultHandler(event) --> listData() --> listHTTPSvc.send() -->ⓑ
    |
    +--> 실패: faultHandler(event) --> event.fault.faultString 출력


ⓑ--+--> 성공: listResultHandler(event) --> dg.dataProvider = event.result.result_set.record;
    |
    +--> 실패: faultHandler(event) --> event.fault.faultString 출력






>>>>> www_flex/WebContent/memofxjsp/create.jsp
http://localhost:9090/www_flex/memofxjsp/create.jsp
http://localhost:9090/www_flex/memofxjsp/create.jsp?grp=A01&name=가길동&content=주말 산행&passwd=123


<?xml version="1.0" encoding="utf-8"?>

<%@ page contentType="text/xml; charset=euc-kr" %>
<%@ page import = "java.sql.*, www.utility.*" %>

<jsp:useBean id="dbconnect" class="www.utility.ConnectionPoolMgr" scope="session" />
<%
request.setCharacterEncoding("utf-8");

Connection con = null;  
PreparedStatement pstmt = null;
//ResultSet rs = null;

StringBuffer sql = new StringBuffer();

String name = request.getParameter("name");
String content = request.getParameter("content");
String passwd = request.getParameter("passwd");


//파라미터가 넘어오지 않았을 때 처리
if(name == null || name.trim().equals("")) { 
    out.println("<result_meta>");
    out.println("   <err_code>0</err_code>"); // 에러코드 
    out.println("   <proc_cnt>0</proc_cnt>");// 처리건수
    out.println("   <message>이름이 입력되지 않았습니다.</message>"); // 메시지
    out.println("</result_meta>");  
}else if(content == null || content.trim().equals("")) { 
    out.println("<result_meta>");
    out.println("   <err_code>0</err_code>"); // 에러코드 
    out.println("   <proc_cnt>0</proc_cnt>");// 처리건수
    out.println("   <message>내용이 입력되지 않았습니다.</message>"); // 메시지
    out.println("</result_meta>");  
}else if(passwd == null || passwd.trim().equals("")) { 
    out.println("<result_meta>");
    out.println("   <err_code>0</err_code>"); // 에러코드 
    out.println("   <proc_cnt>0</proc_cnt>");// 처리건수
    out.println("   <message>패스워드가 입력되지 않았습니다.</message>"); // 메시지
    out.println("</result_meta>");  
}else {
    sql.append(" INSERT INTO memoFlex (memoflexno, name, content, passwd, memodate) ");
    sql.append(" VALUES ((SELECT NVL(MAX(memoflexno), 0)+1 AS cnt FROM memoFlex),");
    sql.append("          ?, ?, ?, sysdate)");

    try  {
        con = dbconnect.getConnection();
        pstmt = con.prepareStatement(sql.toString());
        pstmt.setString(1, name);
        pstmt.setString(2, content);
        pstmt.setString(3, passwd);
        
        int proc_cnt = pstmt.executeUpdate();

        out.println("<result_set>");
        if (proc_cnt == 1){
            // 에러코드 --> 0: 정상, 1:에러
            out.println("<result_meta>");
            out.println("   <err_code>0</err_code>"); // 에러코드, 정상 처리 
            out.println("   <proc_cnt>" + proc_cnt + "</proc_cnt>");// 처리건수
            out.println("   <message/>"); // 메시지
            out.println("</result_meta>");
        }else{
            out.println("<result_meta>");
            out.println("   <err_code>1</err_code>"); // 에러코드 
            out.println("   <proc_cnt>0</proc_cnt>");// 처리건수
            out.println("   <message/>"); // 메시지
            out.println("</result_meta>");            
        }
        out.println("</result_set>");
        
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        DBClose.close(con, pstmt);
    }
}
%>





2. 글 보기, 목록 화면
   - http://localhost:8081/www_flex/memofxjsp/read_list.jsp
   - http://localhost:8081/www_flex/memofxjsp/read_list.jsp?memoflexno=1

   - 처리 흐름
memo_flex.mxml --> listData() --> resetForm() --> 응답 기다림 --> ⓐ


ⓐ--+--> 성공: listResultHandler(event) --> dg.dataProvider = event.result.result_set.record;
    |
    +--> 실패: faultHandler(event) --> event.fault.faultString 출력




>>>>> www_flex/WebContent/memofxjsp/read_list.jsp
http://localhost:9090/www_flex/memofxjsp/read_list.jsp
http://localhost:9090/www_flex/memofxjsp/read_list.jsp?memoflexno=1

<?xml version="1.0" encoding="utf-8"?>

<%@ page contentType="text/xml; charset=utf-8" %>
<%@ page import = "java.sql.*, www.utility.*" %>

<jsp:useBean id="dbconnect" class="www.utility.ConnectionPoolMgr" scope="session" />

<% 
// 브러우저의 캐시 영역에 저장하지 말것을 지정
response.setHeader("Cache-Control","no-cache"); 
response.setHeader("Pragma","no-cache"); 
response.setDateHeader("Expires",0); 
%>

<%
Connection con = null;
PreparedStatement pstmt = null; 
ResultSet rs = null;

String memoflexno = request.getParameter("memoflexno");
StringBuffer sql = new StringBuffer();

out.println("<result_set>");
try  {
    con = dbconnect.getConnection();

    if(memoflexno!=null && !memoflexno.equals("")) {
        // READ
        sql.append(" SELECT memoflexno, name, content, passwd, memodate ");
        sql.append(" FROM memoFlex ");
        sql.append(" WHERE memoflexno = ? ");
        pstmt = con.prepareStatement(sql.toString());
        pstmt.setString(1, memoflexno);
    } else {
        // LIST
        sql.append(" SELECT memoflexno, name, content, passwd, memodate ");
        sql.append(" FROM memoFlex ");
        sql.append(" ORDER BY memoflexno DESC");
        pstmt = con.prepareStatement(sql.toString());
    }
    
    rs = pstmt.executeQuery();
    int proc_cnt = 0;
    
    while (rs.next()) {
        out.println("<record>");
        out.println("   <memoflexno>" + rs.getString(1) + "</memoflexno>");
        out.println("   <name>" + rs.getString(2) + "</name>");
        out.println("   <content>" + rs.getString(3) + "</content>");
        out.println("   <passwd>" + rs.getString(4) + "</passwd>");
        out.println("   <memodate>" + rs.getString(5) + "</memodate>");
        out.println("</record>");
        proc_cnt++;  
    }   
    // 에러코드 --> 0: 정상, 1:에러
    out.println("<result_meta>");
    out.println("   <err_code>0</err_code>"); // 에러코드 
    out.println("   <proc_cnt>" + proc_cnt + "</proc_cnt>");// 처리건수
    out.println("   <message/>"); // 메시지
    out.println("</result_meta>");
        
} catch (Exception e) {
    e.printStackTrace();
        out.println("<result_meta>");
        out.println("   <err_code>1</err_code>"); // 에러코드 
        out.println("   <proc_cnt>0</proc_cnt>"); // 처리건수
        out.println("   <message/>"); // 메시지
        out.println("</result_meta>");

} finally {
    DBClose.close(con, pstmt, rs); 
    out.println("</result_set>");
}
%>




Posted by ▶파이팅◀

블로그 이미지
Let's start carefully from the beginning
▶파이팅◀

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함