9. C프로그래밍 도구

Download Report

Transcript 9. C프로그래밍 도구

8. 게시판 만들기
게시판 만들기-Access
 1. 데이터 베이스 만들기
• 게시판의 자료가 저장 될 데이터 베이스와 테이블을 만든다.
• MS Access로 데이터 베이스 만들기
» 1. MS Access를 실행한다.
새 데이터 베이스를 만들기 위해
“새 Access 데이터베이스”를 선택한다.
JSP(JavaServerPage)
2
게시판 만들기-Access
» 2. 새 데이터 베이스의 파일명을 입력한다.
JSP(JavaServerPage)
3
게시판 만들기-Access
» 3. 새 테이블을 만들기 위해 “디자인 보기에서 새 테이블 만들기”를 선
택한다.
JSP(JavaServerPage)
4
게시판 만들기-Access
» 4.테이블을 디자인한다.
Num은 일련번호 기능을 가지고 있어야 한다.
프로그램에 상관없이 자료가 하나 들어오면
자연적으로 값을 증가해서 세팅이 되어야
한다는 뜻이다.
» 5. 테이블을 저장하기 전에 테이블 이름을 입력한다.
JSP(JavaServerPage)
5
게시판 만들기-ODBC

2. ODBC등록하기
•
“시스템 DSN”을 선택하고 “추가” 버튼을 누른다.
JSP(JavaServerPage)
6
게시판 만들기-ODBC
• 데이터 원본 이름을 입력하고 “선택”버튼을 눌러 데이터 베이스 파
일을 선택한다.
JSP(JavaServerPage)
7
게시판 만들기-ODBC
• 시스템 DSN에 추가가 되었다.
JSP(JavaServerPage)
8
게시판 만들기-Write.jsp
 3. 게시물을 작성한다.(Write.jsp)
• 사용자들이 글을 쓸 수 있도록 그 폼을 만들어 준다.
• Write.jsp
JSP(JavaServerPage)
9
게시판 만들기-Write.jsp
• write.jsp에서 중요한 부분을 보도록 하자.
<a href=“list.jsp?Page=1”>
<img src=image/list.gif alt=‘리스트’ border=0></a>
» ‘list.gif’파일을 클릭하면 list.jsp파일로 가는데 그 중에서 1페이지로 가
게 된다.
<form method=“POST” name=“writeform”>
» 이 폼의 이름은 “writeform”이다. 전송방식은 POST방식을 채택하고 있
다.
<input type=“button” value=“확인” OnClick=“javascript:WriteSave()”>
» 글을 다 쓰고 “확인”버튼을 누르면 이 명령에 의해서 프로그래밍이 진
행된다.
JSP(JavaServerPage)
10
게시판 만들기-Write.jsp
<script language="JavaScript">
<!-function WriteSave(){
if(document.writeform.writer.value==''){
alert("작성자를 입력하십시요.");
document.writeform.writer.focus();
return;
}
•
•
•
JSP(JavaServerPage)
“확인” 버튼을 누르면
WriteSave()가 실행된다.
이 부분은 코드가 길지만
그 의미는 하나이다.
“작성자”, “제목”, “이메일”,
“내용”, “비밀번호” 중에
하나라도 공백이면 다음과
같은 대화상자가 나타난다.
11
게시판 만들기-WriteSave.jsp
document.writeform.action=“WriteSave.jsp”;
Document.writeForm.submit();
• ‘유효성 검사’가 끝이 났으면 “WriteSave.jsp”파일을 실행하라는 의
미이다. submit()메소드는 사용자들이 기입한 게시판의 내용을
“WriteSave.jsp”로 보내라는 의미이다.
• 이어서 “WriteSave.jsp”파일을 알아보자.
<%@ page contentType=“text/html;charset=euc-kr”
import=“java.sql.*, java.util.*”
%>
• 데이터 베이스를 JSP에서 사용하기 위해서 패키지를 import하고
있다.
JSP(JavaServerPage)
12
게시판 만들기-WriteSave.jsp
<%String ip=request.getRemoteAddr();%>
• ip라는 변수를 만들고 작성자의 ip를 불러오고 있다.
String writer = makekor(request.getParameter(“writer”));
• “write.jsp”에서 “writer”라는 이름을 가진 컨트롤을 찾아서 그 값을
가져온다. 그 값을 writer라는 변수를 만들어서 입력받는다.
makeKor()이라는 함수를 이용해서 한글 처리를 해주고 있다.
<%!
public String makeKor(String s) throws
java.io.UnsupportedEncodingException{
String kor = “”;
if(s == null)
kor = null;
else
kor = new String(s.getBytes(“ISO-8859-1”), “EUC-KR”);
return kor;
}
%>
JSP(JavaServerPage)
13
게시판 만들기-WriteSave.jsp
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
String url = “jdbc:odbc:dsn_create21”;
Connection dbCon =
DriverManager.getConnection(url, “”, “”);
• JDBC-ODBC Bridge Driver를 불러와서 데이터 베이스와 연결을
하고 있다.
• 위 연결자는 되도록 이 파일안에 두는 것이 아니라 독자 파일로 만
들어 두고 include시키는 것이 보안에서는 가장 좋은 결과가 된다.
PreparedStatement pstmt = null;
• 쿼리를 실행할 Statement객체를 하나 만든다. 여기서는
PreparedStatement를 사용하기로 한다.
JSP(JavaServerPage)
14
게시판 만들기-WriteSave.jsp
Calendar calendar = Calendar.getInstance();
String wdate = Integer.toString(calendar.get(Calendar.YEAR)) + "-";
wdate = wdate + Integer.toString(calendar.get(Calendar.MONTH)) + "-";
wdate = wdate + Integer.toString(calendar.get(Calendar.DATE)) + " ";
wdate = wdate + Integer.toString(calendar.get(Calendar.HOUR_OF_DAY)) + ":";
wdate = wdate + Integer.toString(calendar.get(Calendar.MINUTE)) + ":";
wdate = wdate + Integer.toString(calendar.get(Calendar.SECOND));
• 글을 쓴 날짜를 데이터베이스에 기록하기 위한 곳이다.
String sql=“INSERT INTO QA(writer, subject, email, content, passwd, wdate, ip)”;
sql = sql + “VALUES(?, ?, ?, ?, ?, ?)”;
• 쿼리를 작성한다.
JSP(JavaServerPage)
15
게시판 만들기-WriteSave.jsp
pstmt = dbCon.prepareStatement(sql);
// 쿼리의 ?부분을 완성합니다.
pstmt.setString(1, writer);
pstmt.setString(2, subject);
pstmt.setString(3, email);
pstmt.setString(4, content);
pstmt.setString(5, passwd);
pstmt.setString(6, wdate);
pstmt.setString(7, ip);
// 쿼리를 실행합니다.
pstmt.executeUpdate();
첫 번째 물음표에 writer변수에 있는
값을 넣으라는 의미이다.
• 이미 만들어놓은 pstmt객체에 sql문을 세팅하고 쿼리를 실행 시킨
다.
response.sendRedirect(“List.jsp?Page=1”);
• 데이터 베이스에 모두 값이 잘 들어갔다면 다음 화면으로 넘어가라
는 명령이다. Response.sendRedirect()메소드를 활용하면 해당 파
일로 넘어가게 된다. 여기서는 List.jsp에 1페이지를 보여주게 된다.
JSP(JavaServerPage)
16
게시판 만들기-List.jsp
 4. 글의 리스트를 본다.(List.jsp)
• 게시판에 올릴 글을 작성해서 전송을 하면 데이터베이스에 그 글이
올라가고 여기서 만들 List.jsp에서 그 글들을 볼 수 있다.
<%@ page contentType=“text/html;charset=euc-kr”
import=“java.sql.*”
%>
• 페이지 지시자이다. 데이터베이스를 사용하기 위해서
import=“java.sql.*”문을 사용하였다.
JSP(JavaServerPage)
17
게시판 만들기-List.jsp
<form action=“List.jsp?Page=1” method=“POST” name=“listForm”>
• 이 폼의 이름은 name=“listForm”이다 전송방식은 POST방식을 사
용하였고, 검색시 [검색]버튼을 누르면 그에 대한 영향을
“List.jsp?Page=1”을 받음으로 검색을 누르면 자신의 파일에 1페
이지를 다시 보여주게 된다.
<a href=“write.jsp”>
<img src=“images/wirte.gif” alt=“새 글” border=0></a>
• 리스트 페이지에서 “write.gif”를 클릭하면 “write.jsp”페이지로 이
동한다.
<a href=“#” OnClick=“javascript:window.open(‘./admin.html’, ‘sub’,
‘width=295, height=160’);”>
<img src=“images/admin.jpg” alt=“관리자” border=0></a>
• “admin.jpg”를 클릭하면 “관리자 로그인”창이 나타난다.
JSP(JavaServerPage)
18
게시판 만들기-List.jsp
String s_subject=request.getParameter(“s_subject”);
String data=makeKor(request.getParameter(“data”));
String sql=null;
Int PageSize=5;
String Page=request.getParameter(“Page”);
•
[제목]이라는 컨트롤은 이름이 “s_subject”이다. 이 부분이 체크가 되어 있
으면 request.getPameter(“s_subject”)이 메소드에 의해서 값이 변수에 저
장이 되는 것이다. 그리고 가운데 있는 텍스트(Text)컨트롤은 이름이 “data”
이다. 여기에 검색어를 입력하면 request.getParameter(“data”) 메소드에
의해서 값이 변수에 저장이 될 것이다.
JSP(JavaServerPage)
19
게시판 만들기-List.jsp
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
String url = “jdbc:odbc:dsn_create21”;
Connection dbCon = DriverManager.getConnection(url, “”, “”);
•
JDBC-ODBC 브릿지 드라이버를 가져와서 데이터베이스와 연동하는데 사
용하고 있다.
if(data == null)
sql = “SELECT COUNT(*) FROM QA”;
•모든 자료를 추출해오고 있다.
if(data != null){
if(s_subject.equals(“s_subject”)){
sql = “SELECT COUNT(*) FROM QA”;
sql += “WHERE subject like ‘%” + data + “%’”;
}
}
•
검색 부분에 검색 값을 입력했고 검색 종류인 제목 등을 체크했으면이라는
뜻이다.
JSP(JavaServerPage)
20
게시판 만들기-List.jsp
Statement stmt = dbCon.createStatement();
ResultSet rs = stmt.executeQuery(sql);
• Statement 객체인 stmt를 만들고 stmt.executeQuery(sql)를 실행
시킴으로써 결과 값을 ResultSet객체, rs에 저장한다.
rs.next();
• ResultSet 객체에 결과가 나오면 바로 첫 번째 결과가 나오는 것이
아니라 흔희 레코드의 BOF(Begin Of File)라는 부분을 가리키고 있
으므로 첫 번째 자료를 가리키게 하려면 rs.next()를 해주어야 한다.
int Count = re.getInt(1);
• Count변수를 만들고 위에서 추출된 결과인 총 자료의 개수를 입력
시킨다.
JSP(JavaServerPage)
21
게시판 만들기-List.jsp
int TotalPage = Count/PageSize;
•
자료의 수를 한 페이지당 자료의 수 로 나눈다. 그러면 총 페이지 수가 나온
다.
int Remain = Count%PageSize;
•
나머지가 있으면 페이지를 하나더 만들어야 하므로 나머지도 구한다.
If(Remain != 0)
TotalPage = TotalPage + 1;
•
나머지가 존재하면 TotalPage의 수를 하나 증가 시킨다.
rs.close();
•
페이지를 구하는 모든 작업이 끝났다면 결과셋(ResultSet)을 소멸시킨다.
JSP(JavaServerPage)
22
게시판 만들기-List.jsp
if(data != null)
sql = “SELECT Num, subject, email, writer, wdate, readcount
FROM QA”;
sql = sql + “ ORDER BY num DESC”;
• “List.jsp”의 원래 목적인 자료를 한 줄 단위로 화면에 보여주기 위
한 과정이다. if(data != null)은 검색부분에 자료가 없다면 레코드
번호(num)를 내림차순 정렬을 해서 쿼리를 만든다.
if(data!=null){
if(s_subject.equals("s_subject")){
sql = "SELECT Num, subject, email, writer, wdate, readcount FROM QA";
sql=sql + " WHERE subject like '%" + data + "%' ORDER BY num DESC";
}
}
• 와일드 카드를 이용해서 제목의 앞 뒤에 data가 가지고 있는 검색
키워드가 있으면 모든 자료를 가져온다. 이때도 내림차순이다.
JSP(JavaServerPage)
23
게시판 만들기-List.jsp
rs = stmt.executeQuery(sql);
• 이미 앞부분에서 ResultSet 객체와 Statement객체는 만들어 놓았
으므로 이를 이용해서 쿼리를 실행시키고 그 결과를 rs에 담아 놓았
다.
int StartNum = (Integer.parseInt(Page)-1)*PageSize;
• 페이지 마다 처음 시작하는 자료의 번호를 구한다.
for(int k = 0 ; k < StartNum ; k++)
rs.next();
• 레코드 포인터를 하나씩 이동시키고 있다.
JSP(JavaServerPage)
24
게시판 만들기-List.jsp
while(re.next() && I <= PageSize
• 아무리 레코드가 있더라도 이번 페이지에 이미 5개의 레코드를 다
기입했다면 더 이상 이 while문은 실행되어선 안된다.
if(i % 2 == 0)
out.println(“<tr bgcolor=‘#F0F0F0’>”);
else
out.println(“<tr bgcolor=‘#FFFFFF’>”);
• 게시물의 색깔을 디자인한다.
<td>
<div align=“center”><font size=2><%=StartNum+i%></font></div>
</td>
• StartNum에는 0이 들어와 있기 때문에 1페이지부터 시작 하려면
+1을 시켜줘야한다.
JSP(JavaServerPage)
25
게시판 만들기-List.jsp
<td>
<div align="center"><font size=2><a href="Content.jsp?num=<%= num %>">
<%=subject%></a></font></div>
</td>
• 제목(subject)을 클릭하면 이 글의 번호(num)을 기억한 채
‘content.jsp’로 넘어가게 된다.
rs.close();
dbCon.close();
• 모든 사용이 끝났다면 사용한 객체는 소멸시킨다.
<input type="button" value="검색" OnClick="javascript:search()">
• [검색]버튼을 크릭하면 자바스크립트의 search()가 실행된다.
JSP(JavaServerPage)
26
게시판 만들기-List.jsp
<script language="Javascript">
function search(){
if(document.listForm.data.value==""){
alert("검색어를 입력해 주세요");
document.listForm.data.focus();
return;
}
}
</script>
• data라는 검색박스에 값이 비어있다면 “검색어를 입력해 주세요”
라는 상자를 띄운다.
JSP(JavaServerPage)
27
게시판 만들기-List.jsp
<% for (int Gopage=1;Gopage<=TotalPage;Gopage++){ %>
[<a href="List.jsp?Page=<%=Gopage%>"><%=Gopage%></a>]
<% }}%>
• 1부터 총 페이지까지 페이지 번호를 출력한다.
JSP(JavaServerPage)
28
게시판 만들기-Content.jsp
 5. 글의 내용을 본다(Content.jsp)
• 리스트에서 제목(subject)을 클릭하면 내용을 보여주는 페이지를
제작해 보자.
JSP(JavaServerPage)
29
게시판 만들기-Content.jsp
<%@ page contentType=“text/html;charset=euc-kr”
import=“java.sql.*”
%>
• 데이터 베이스와 연동하기 위해서 import=“java.sql.*”문을 사용하
고 있다.
String num = request.getParameter(“num”);
• 개별 자료를 구분하기 위해서 각 자료마다 기본키인 num을 가져와
서 변수 num에 저장을 한다.
int readcount = 0;
• 개별 자료를 클릭하면 그 게시물을 누군가 한번 봤다는 뜻이므로
조회수를 증가시키기 위한 변수이다.
JSP(JavaServerPage)
30
게시판 만들기-Content.jsp
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:dsn_create21";
Connection dbCon =
DriverManager.getConnection(url, "", "");
• 데이터 베이스를 연동한다.
String sql = "SELECT * FROM QA WHERE num=" + num ;
Statement stmt = dbCon.createStatement();
ResultSet rs = stmt.executeQuery(sql);
• 모든 자료를 가져오는 것이 아니라 num을 이용해서 조건에 맞는
자료 한 건만 가져온다.
• 쿼리를 실행 시키기 위해서 Statement, ResultSet객체를 각각 생성
하고 쿼리를 실행시킨 결과를 얻는다.
JSP(JavaServerPage)
31
게시판 만들기-Content.jsp
String writer=rs.getString("writer");
String subject=rs.getString("subject");
String email=rs.getString("email");
String content=rs.getString("content").trim();
String passwd=rs.getString("passwd");
String wdate=rs.getString("wdate");
readcount=rs.getInt("readcount");
String ip=rs.getString("ip");
• 데이터 베이스에서 각 필드의 값을 변수에 저장한다.
rs.getString(“content”).trim()은 게시물의 내용을 가져올 때 좌우
측의 공백은 제외하고 해당되는 내용만 가져오는 부분이다.
readcount++;
• 조회수를 증가 시킨다.
JSP(JavaServerPage)
32
게시판 만들기-Content.jsp
<table width="407" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="right">
<a href="Write.jsp">
<img src="images/write.gif" alt='새 글' border=0></a>
<a href="Edit.jsp?num=<%=num%>">
<img src=images/edit.gif alt='수 정' border=0></a>
<a href="Reply.jsp">
<img src=images/reply.gif alt='대 답' border=0></a>
<a href="Delete.jsp?num=<%=num%>">
<img src=images/delete.gif alt='삭 제' border=0></a>
<a href="List.jsp">
<img src=images/list.gif alt='리스트' border=0></a>
</td>
</tr>
</table>
JSP(JavaServerPage)
33
게시판 만들기-Content.jsp
<% if(session.getAttribute(“id”) == (“admin”)
out.println(passwd);
else
out.println(“”);
%>
• 세션의 “id”가 “admin”이면 out.println(passwd);를 통해서 화면에
결과를 뿌려주고 그렇지 않으면 빈 값이 화면에 나타난다.
sql = “UPDATE QA SET readcount=? WHERE num=?”;
• 조회수를 증가하기 위한 쿼리를 만든다. 물음표(?)가 있는 것으로 봐
서 PreparedStatement 객체를 사용 할 것이다.
PreparedStatement stmt2 = dbCon.preparedStatement(sql);
• PreparedStatment Stmt2 객체를 만들고 데이터 베이스와 연결한다.
JSP(JavaServerPage)
34
게시판 만들기-Content.jsp
stmt2.setInt(1, readcount);
stmt2.setInt(2, integer.parseInt(num));
• 첫 번째 물음표에 readcount를 넣게 된다. 이때 readcount는 하나 증
가시킨 값이다. 두 번째 물음표에는 해당 자료의 고유값인 기본키 값
이 들어가게 된다.
stmt2.executeUpdate();
• Sql문이 완성 됐으면 질의를 실행한다.
JSP(JavaServerPage)
35
게시판 만들기-Edit.jsp
 6. 글을 수정한다.(Edit.jsp)
• 수정하는 폼은 입력하는 폼의 확장이다.
• 입력폼은 컨트롤들이 값을 입력받기 위해 비어 있다면 수정폼은 기
존의 데이터베이스 값이 들어가 있기만 하면 되는 것이다.
JSP(JavaServerPage)
36
게시판 만들기-Edit.jsp
<form method=“POST” name=“edit”>
• 이 폼은 “edit” 폼이고 전송방식은 POST이다.
String sql = “SELECT * FROM QA WHERE num=“+num;
• 번호를 넘겨 받아 그 번호와 같은 자료를 데이터베이스에서 가져오
기 위한 쿼리문이다.
<input type=“text” size=“10” maxlength=“6” name=“writer” value=“<%=writer%>”>
• 텍스트 박스의 값을 <%=writer%>로 입력시키고 있다. 이런 방식으
로 수정폼의 컨트롤에 값을 입력시킨다.
<input type=“button” value=“수 정” OnClick=“javascript:editSave()”>
• [수정]버튼을 클릭하면 editSave()함수가 실행된다.
JSP(JavaServerPage)
37
게시판 만들기-Edit.jsp
function editSave(){
if(document.edit.writer.value==''){
alert("작성자를 입력하십시요.");
document.edit.writer.focus();
return;
}
•
•
•
document.edit.action="Editsave.jsp?num=<%=num%>";
document.edit.submit();
}
• 유효성 검사를 한후 오류가 없다면 “EditSave.jsp?num=<%=num%>”
에 의해서 번호를 변수로 넘겨주고 “EditSave.jsp”가 실행된다.
JSP(JavaServerPage)
38
게시판 만들기-EditSave.jsp
• 이어서 “EditSave.jsp”파일을 알아보자
• “WriteSave.jsp”파일과 거의 유사하다.
Stirng passwd = rs.getString(“passwd”).trim();
if(passwd.equals(request.getParameter(“passwd”)))
• 데이터베이스에서 이 글의 비밀번호를 가져와 수정 폼의 비밀번호와
같은지 비교하고 있다.
String writer=makeKor(request.getParameter("writer"));
String subject=makeKor(request.getParameter("subject"));
String email=makeKor(request.getParameter("email"));
String content=makeKor(request.getParameter("content"));
• 비밀번호가 같다면 각 변수에 수정 폼에 있는 값들을 대입한다.
JSP(JavaServerPage)
39
게시판 만들기-EditSave.jsp
sql = “UPDATE QA SET writer=?, subject=?”;
sql = sql + “email=?, content=? WHERE num=“+num;
•
UPDATE를 처리할 쿼리를 작성한다. 이때 번호(num)가 같은 자료를 찾아서
업데이트해야 한다.
Pstmt = dbCon.prepareStatement(sql);
•
PreparedStatement객체를 통해서 데이터베이스에 연결한다.
pstmt.setString(1, writer);
pstmt.setString(2, subject);
pstmt.setString(3, email);
pstmt.setString(4, content);
pstmt.executeUpdate();
•
•
첫 번째 물음표에(?)에는 writer변수의 값을 넣고 나머지도 마찬가지이다.
pstmt.executeUpdate();로 쿼리문을 수행한다.
JSP(JavaServerPage)
40
게시판 만들기-EditSave.jsp
response.sendRedirect(“List.jsp?Page=1”);
• 실행이 되었다면 List.jsp의 1페이지로 돌아간다.
<script language="javascript">
alert("비밀번호가 서로 다릅니다.");
history.go(-1)
</script>
• 만약 비밀번호가 다르다면 alert함수가 실행된다.
JSP(JavaServerPage)
41
게시판 만들기-Delete.jsp
 7. 글을 삭제한다(Delete.jsp)
JSP(JavaServerPage)
42
게시판 만들기-Delete.jsp
<%String num = request.getParameter(“num”);%>
• 삭제하려는 자료를 구분하기 위해 num변수에 선택된 자료의 num값
을 설정한다.
<form method=“POST” name=“del”>
• 이 폼의 이름은 “del”이고 자료전송은 POST방식으로 하게 된다.
<input type=“password” name=“passwd” size=“8” maxlength=“8”>
• 패스워드 타입의 input박스를 하나 만들고 이름을 “passwd”라고 한다.
<input type=“button” value=“삭 제” OnClick=“javascript:DeleteSave()”>
• [삭제]버튼을 누르면 자바스크립트 선언부로 가서 DeleteSave()라는
함수가 작동이 된다.
JSP(JavaServerPage)
43
게시판 만들기-Delete.jsp
function DeleteSave(){
if(document.del.passwd.value==''){
alert("비밀번호를 입력하십시요.");
document.del.passwd.focus();
return;
}
document.del.action="Deletesave.jsp?num=<%=num%>";
document.del.submit();
}
• 비밀번호 컨트롤이 비어 있는지를 확인한다. 비어있지 않으면
“DeleteSave.jsp?num=<%=num%>”부분에 의해서 “DeleteSave.jsp”로
넘어가게 된다.
JSP(JavaServerPage)
44
게시판 만들기-DeleteSave.jsp
• “DeleteSave.jsp”에 대해서 알아보자
• “DeleteSave.jsp”는 데이터 베이스에 들어있는 이 자료의 비밀번호와
사용자가 입력한 비밀번호가 일치하면 자료를 지우는 역할을 한다.
if(passwd.equals(request.getParameter(“passwd”)))
• 데이터 베이스에 있는 비밀번호와 사용자가 입력한 비밀번호를 비교
한다.
sql = "DELETE FROM QA WHERE num="+ num ;
pstmt = dbCon.prepareStatement(sql);
pstmt.executeUpdate();
response.sendRedirect("List.jsp?Page=1");
• 자료를 지울 쿼리를 만든후 데이터 베이스에 연결해서 쿼리를 실행
한다.
JSP(JavaServerPage)
45
게시판 만들기-Admin.html
 8. 관리자로 로그인한다.(Admin.html)
• 게시판에 관리자 기능을 넣기위해 관리자로 로그인이 필요하다.
• 관리자는 모든 게시물을 변경하고 삭제할 수 있다.
JSP(JavaServerPage)
46
게시판 만들기-Admin.html
<form name=“adminform” method=“post”>
• 이 폼은 “adminform”이고 전송방식은 POST방식이다.
<input type=“text” name=“id” class=“input” value=“”>
• ID를 입력받는 컨트롤의 이름은 “id”이다.
<input type=“passwd” name=“passwd” class=“input” value=“”>
• 비밀번호를 입력받는 컨트롤의 이름은 “passwd”이다.
<input type=“button” value=“로그온하기” OnClick=“idpasswd()”>
• [로그온하기]를 누르면 자바스크립트의 “idpasswd()”함수를 찾는다.
JSP(JavaServerPage)
47
게시판 만들기-Admin.html
function idpasswd(){
• ㅋㅌㅊ
아이디가 비어 있는지 비밀번호가
if (document.adminform.id.value==""){
비어 있는지 확인하고 관리자
alert("아이디를 입력해 주세요");
아이디가 “admin”이라고 기입을
document.adminform.id.focus();
return;
했는지, 그리고 관리자 비밀번호가
}
“admin123”인지를 비교한다.
if (document.adminform.passwd.value==""){
조건에 만족하지 못하면
alert("패스워드를 입력해 주세요");
“admin_logon.jsp”로 넘어가지 못한다.
document.adminform.passwd.focus();
return;
}
if (document.adminform.id.value!="admin"){
alert("관리자 아이디가 아닙니다.");
document.adminform.id.focus();
return;
}
if (document.adminform.passwd.value!="admin123"){
alert("관리자 비밀번호가 아닙니다.");
document.adminform.passwd.focus();
return;
}
document.adminform.action="admin_logon.jsp";
document.adminform.submit();
}
JSP(JavaServerPage)
48
게시판 만들기-admin_logon.jsp
• 관리자 아이디와 비밀번호가 모두 맞았으면 “admin_logon.jsp”로 이
동한다.
String id = null;
String passwd = null;
id=request.getParameter("id");
passwd=request.getParameter("passwd");
• 아디디와 비밀번호를 입력받을 변수를 만들고 컨트롤에서 입력받은
값을 각각 대입한다.
session.setAttribute(“id”, “admin”);
• 앞에서 id=“admin”, passwd=“admin123”으로 통과된 사용자는 관리자
이므로 세션변수인 “id”에 “admin”이라는 값을 주고 있다. 이 값은
“Content.jsp”에서 세션변수 “id”가 “admin”이면 화면에 비밀번호를
보이게 한다는것에 영향을 주고 있다.
JSP(JavaServerPage)
49
게시판 만들기-admin_logon.jsp
• 제대로 된 값(아이디=admin, 비밀번호=admin123)을 입력해 본다.
•
인증된 후의 모습
JSP(JavaServerPage)
50
과제 6
 첫 화면을 List.jsp로 시작할 수 있게 List.jsp를 수정하라.
 Content.jsp에서 ‘새글’ 아이콘을 선택하면 Write.jsp가 실행되
게 하라.
 WriteSave.jsp, DeleteSave.jsp, EditSave.jsp 수행후 List가 제
대로 나올 수 있도록 각 파일을 수정하라.
 주제별(제목, 내용) 검색이 가능하게 수정하라.
 앞에서 만든 게시판은 게시물에 대한 답변 기능이 구현 되어 있
지 않다. 앞의 내용들을 이용하여 답변기능을 구현하라.
(7/30, 월요일까지 이메일([email protected])로 제출)
JSP(JavaServerPage)
51
답변 구현방법
 ㅇㄹㅇㄹ
(2, 0, 0)
(2, 1, 1)
(2, 2, 2)
(2, 1, 3)
답변기능을 구현하려면
3가지 정보가 필요하다.
(비유를 하자면 트리모양에
비유 할 수 있다.)
1.답변의 근원지 데이터(ref)
2. 답변의 단계 데이터(step)
3. 답변들 끼리의 순서 데이터(position)
*괄호의 숫자는(ref, step, position)순서
(1, 0, 0)
JSP(JavaServerPage)
52