2010. 8. 6. 18:22 flex
[실습1-3][memo] JSP Server Page(글 쓰기, 글 보기, 글 목록)
[실습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>");
}
%>
'flex' 카테고리의 다른 글
[실습1-5][memo] Flex ActionScript 제작 (0) | 2010.08.06 |
---|---|
[실습1-4][memo] JSP Server Page(글 수정, 글 삭제) (0) | 2010.08.06 |
[실습1-2][memo] JDBC 접속 설정 및 Utility Class 추가, 한글 처리 (0) | 2010.08.06 |
[실습1-1][memo] DB, MXML 페이지 제작(memoFx.mxml) (0) | 2010.08.06 |
[15-D4] HTML 페이지상에 Flex Application 의 배포 (0) | 2010.08.06 |