티스토리 뷰
음;.. 잡다하게 이것저것 테스트 하느라 설치를 많이 했더니..
글 쓰기 눌러도 렉걸리네요;..
오늘 해볼 것은.. 글 내용 확인.. 글 검색 하기.. 입니다..
따라해보신분들은 테스트 잘 하셨나 모르겠네요.. 저는 페이지 테스트 한번 해봤습니다..
글 10개가 되면.. 자동으로 다음 페이지 생성 되고.. 글 밀리고..
페이지 [2] 눌렀을대 위와 같이 나오고.. 잘 되네요..
쿼리는 이미 다 작성을 했기 때문에.. <html> 테이블만 수정하면 됩니다..
'board_list.jsp'에서는 거의 다 했습니다.. 검색은 금방 끝나는데..
글 내용 보기는 조금 걸릴겁니다..
우선 글 내용 보기는 새로운 페이지를 만들어야 하기 때문에..
검색 부터 해보죠..
글쓰기 버튼 옆에 글 찾기 버튼을 만들어볼겁니다.. 글 찾기 폼을 추가해봅시다..
<table width=700>
<tr>
<td><input type=button value="글쓰기" OnClick="window.location='board_write.jsp'"></td>
<td><form name=searchf method=post action="board_list.jsp">
<p align=right><input type=text name=dbsearch size=50 maxlength=50>
<input type=submit value="글찾기"></p></td>
</tr>
</table>
</html>
그럼 끝~..
"뭐냐!.. 그럼 저번에 다 했으면 됐잖아!".. 라고 하시는 분들도 계실거 같군요..
그러게요;.. 그냥 저번에 다 끝낼걸 그랬네요;..
되는지 안되는지 확인을 해봐야겠죠?..
우선 "검색을".. 이란 내용으로 검색을 했습니다..
글 "검색을" 해보자.. 제대로 검색되었습니다..
이번에는 "을".. 이란 내용으로 검색을 했습니다..
글 검색"을", 글 내용"을".. 두개가 제대로 검색이 되었습니다..
이번엔.. "jsp" 를 검색해 봅시다..
어라!;.. 검색이 안되네요;.. 뭔가 문제인가 했는데..
"JSP" 로 검색하니까 검색이 되는군요..
게시판에서.. 이런 상황(대소문자 검색구분)이 발생되면 안되지요..
'board_list.jsp'에서 검색하는 부분에 UPPER 를 추가해서 소문자도 대문자로 검색하게 끔 만듭니다..
2개가 있기 때문에 2개 다 바꿔야 합니다..
try
{
String sql_n = "select count(*) from board ";
sql_n += "where upper(dbsubject) like upper ('%" + dbsearch + "%')";
stmt = conn.createStatement();
rs = stmt.executeQuery( sql_n );
if( rs.next() )
total_cnt = rs.getInt(1);
start = total_cnt - ( c_page - 1 ) * list_num;
String sql_c = "";
sql_c += "select aid, dbname, dbsubject, to_char( dbdate, 'yyyy/mm/dd hh:mi:ss' ), dbhits, dbmemo from ( ";
sql_c += " select * from ( ";
sql_c += "select * from ( ";
sql_c += "select * from board order by rid asc ) ";
sql_c += "where upper(dbsubject) like upper ('%" + dbsearch + "%') ) ";
sql_c += "where rownum <= " + start + " order by rid desc ) ";
sql_c += "where rownum <= " + list_num;
rs = stmt.executeQuery( sql_c );
int title_len = 100;
int aid = start;
그러면 소문자 검색도 끝~..
이제.. 글 내용을 확인 할 수 있게..
'board_view.jsp' 를 새로 만듭니다..
역시 여기도 오라클 메소드 추가합니다..
<%@ page contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" %>
<%@ page language="java" import="java.util.*, java.sql.*, javax.servlet.http.*" %>
<%!
Connection DB_Connection() throws ClassNotFoundException, SQLException, Exception
{
String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
Class.forName( "oracle.jdbc.driver.OracleDriver" );
Connection conn = DriverManager.getConnection( url, "study", "study" );
return conn;
}
String TO_DB( String str ) throws Exception
{
if( str == null )
return null;
return new String( str.getBytes( "8859_1" ), "euc-kr" );
}
%>
<%
Connection conn = DB_Connection();
Statement stmt = null;
ResultSet rs = null;
여기도 벡터로 설정했구요..
Vector v_name = new Vector();
Vector v_email = new Vector();
Vector v_homepage = new Vector();
Vector v_subject = new Vector();
Vector v_memo = new Vector();
Vector v_hits = new Vector();
int hits = 0;
int aid = 0;
String str_aid = request.getParameter( "str_aid" );
String str_c_page = request.getParameter( "str_c_page" );
String sql = "select ";
sql += "dbname, nvl(dbemail,' '), nvl(dbhomepage,' '), dbsubject, dbmemo, dbhits ";
// nvl(string, replace_with) - string 값이 null 값일때 replace_with 값으로 바꿀 때 사용
sql += "from board where aid=" + str_aid;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery( sql );
if( rs.next() )
{
v_name.addElement( rs.getString(1) );
v_email.addElement( rs.getString(2) );
v_homepage.addElement( rs.getString(3) );
v_subject.addElement( rs.getString(4) );
v_memo.addElement( rs.getString(5) );
v_hits.addElement( rs.getString(6) );
}
hits = Integer.parseInt( v_hits.elementAt(0).toString() );
aid = Integer.parseInt( str_aid );
hits++;
sql = "update board set dbhits=" + hits + " where aid=" + aid;
stmt.executeUpdate( sql );
rs.close();
stmt.close();
} catch( SQLException e ) {
out.println( e.toString() );
}
%>
뭐 다른것이랑 크게 다를바 없는 내용입니다..
hit 가 있어서 글 내용 볼때마다 1씩 증가하는 내용말곤 특별한 내용은 없습니다..
<html>
<head>
<title>글보기</title>
</head>
<table cellspacing = 0 cellpadding = 5 border = 1 width=500>
<tr><td><b>조회수</b></td><td><%=hits%></td></tr>
<tr><td><b>이름 </b></td><td><%=v_name.elementAt(0)%></td></tr>
<tr><td><b>이메일 </b></td><td><%=v_email.elementAt(0)%></td></tr>
<tr><td><b>홈페이지 </b></td><td><%=v_homepage.elementAt(0)%></td></tr>
<tr><td><b>제목 </b></td><td><%=v_subject.elementAt(0)%></td></tr>
<tr><td><b>내용 </b></td><td width=350><%=v_memo.elementAt(0)%></td></tr>
</table>
목록으로 다시 돌아갈 수 있게 버튼 하나 만들어줍니다..
<table cellspacing = 0 cellpadding = 0 border = 0 width=500>
<tr><td>
<input type=button value="목록" OnClick="window.location='board_list.jsp'">
</td></tr>
</table>
</html>
이러면 끝이냐?.. 아니죠.. 한가지 더 남았습니다..
'board_list.jsp'에서 글을 눌러 넘어갈 수 있는 링크를 만들어줘야 합니다..
<tr>
<td width=50><p align=center><%=v_articleid.elementAt(i)%></p></td>
<td width=100><p align=center><%=v_name.elementAt(i)%></p></td>
<td width=320><p align=center><a href="board_view.jsp?str_aid=<%=v_articleid.elementAt(i)%>&str_c_page=<%=str_c_page%>"><%=v_subject.elementAt(i)%></p></td>
<td width=100><p align=center><%=v_date.elementAt(i)%></p></td>
<td width=100><p align=center><%=v_hits.elementAt(i)%></p></td>
</tr>
오옷.. 파란색의 링크가 떴습니다..
게시판에 쓰여진 내용을 봅시다.. 제목 클릭!..
참 쉽죠잉~..
여기서.. 팁 하나를 더 드리자면.. 추가했던..
<td width=320><p align=center><a href="board_view.jsp?str_aid=<%=v_articleid.elementAt(i)%>&str_c_page=<%=str_c_page%>"><%=v_subject.elementAt(i)%></p></td>
에다가.. title="<%=v_memo.elementAt(i)%>" 을 추가합니다..
그럼 이렇게 되겠죠?..
<td width=320><p align=center><a href="board_view.jsp?str_aid=<%=v_articleid.elementAt(i)%>&str_c_page=<%=str_c_page%>" title="<%=v_memo.elementAt(i)%>"><%=v_subject.elementAt(i)%></p></td>
이렇게 타이틀을 추가하면.. 링크에 마우스를 올려 놓으면 글 내용이 나오게 됩니다..
생각보다 길어졌네요.. 원래 글 삭제/수정도 해보려고 했는데 말이죠..
이건 다음 시간에 합시다..
오늘의 소스코드입니다..
저작권 표시 꼭!.. 상업적 이용 절대 불가!.. 컨텐츠 변경 안됨!..
- Total
- Today
- Yesterday
- 군대이야기
- DLC
- 슈퍼마리오 RPG
- 3분 영어 위클리
- 2011사진공모전
- Spore
- 겨울
- 웃기는 사진
- ndsl
- C/C++
- oracle
- jsp
- 스포어
- 게시판
- NDSi
- Wii GAME
- Project Diet
- 아이폰
- 동물의숲
- 티스토리달력2010
- 오라클
- Free Coupon
- 젤다의 전설
- 가을
- NDS
- 동유럽
- 티스토리달력2011
- CNN Student News
- 야생의 숨결
- NDS GAME LIST
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |