Banner

My Tech Blog (BBS)

1. BbsDAO ํด๋ž˜์Šค์— getBbs() ๋ฉ”์„œ๋“œ ๋งŒ๋“ค๊ธฐ `getBbs(int bbsID)` ๋ฉ”์„œ๋“œ๋Š” ํŠน์ • bbsID๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒŒ์‹œ๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์กฐํšŒํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.์ฆ‰ ํ•˜๋‚˜์˜ ๊ธ€ ๋‚ด์šฉ์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ฒ˜์Œ์— ์ ์€ ์ฝ”๋“œ(ํ‹€๋ฆผ) public Bbs getBbs(int bbsID) { String SQL = "SELECT * FROM BBS WHERE bbsID = ?"; try (PreparedStatement psmt = conn.prepareStatement(SQL); ResultSet rs = psmt.executeQuery()) { psmt.setInt(1, bbsID); if (rs.next()) { ..
๊ธ€๋ชฉ๋ก๊ณผ ํŽ˜์ด์ง€๋„ค์ด์…˜(Pagination)๊ฒŒ์‹œ๋ฌผ์„ DB์—์„œ ๋ถˆ๋Ÿฌ์™€ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋ ค๋ฉด ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค๋Š” ์ž‘์—…๊ณผ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ ๋‘ ๊ฐ€์ง€๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ๊ฒŒ์‹œ๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด ArrayList๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DB์—์„œ ์ž‘์„ฑ์ž, ์ œ๋ชฉ ๋“ฑ ๊ฒŒ์‹œ๊ธ€์˜ ์ฃผ์š” ์ •๋ณด๋ฅผ ํฌํ•จํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ๋•Œ ์ค‘์š”ํ•œ ์ ์€ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ์ด๋‹ค. ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ๋Š” ํ•œ ํŽ˜์ด์ง€์— ๋ช‡ ๊ฐœ์˜ ๊ฒŒ์‹œ๊ธ€์„ ๋ณด์—ฌ์ค„์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ณผ์ •์ด๋ฉฐ, ์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ ํŽ˜์ด์ง€์— ์ด 10๊ฐœ์˜ ๊ฒŒ์‹œ๊ธ€์„ ๊ฐ€์ ธ์˜ค๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ `BbsDAO`์— ํŠน์ • ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ(pageNumber)์— ํ•ด๋‹นํ•˜๋Š” ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ โšก `getList(int pageNumber)`๋ฅผ ๋งŒ๋“ค์–ด ๋ณผ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ์—์„œ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์ค€์œผ..
1. write.jsp ๊ธ€์“ฐ๊ธฐ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ ๋จผ์ € ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ํŽ˜์ด์ง€ `write.jsp`๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋ ค๊ณ  ํ•œ๋‹ค.`bbs.jsp`๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๋ถ™์—ฌ ๋„ฃ๊ณ  ์ค‘๊ฐ„ ๋ถ€๋ถ„๋งŒ ์ˆ˜์ • ํ•ด ์ค„ ๊ฒƒ์ด๋‹ค. nav๋ฐ” ์•„๋ž˜ ๋ถ€๋ถ„์— ์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑBootstrap5 ์ด์šฉํ–ˆ๋‹ค. โšก `mt-5` margin-top: 5rem;  โšก ``ํƒœ๊ทธ์— `required` ์†์„ฑ ๋„ฃ์œผ๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ•จ. ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ ์•ˆ ํ•œ ์ฑ„๋กœ submit ํ•˜๋ฉด `์ด ์ž…๋ ฅ๋ž€์„ ์ž‘์„ฑํ•˜์„ธ์š”.` ๋ผ๋Š” ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€๋ฅผ ๋„์šด๋‹ค.  โšก `form-control` ํด๋ž˜์Šค Bootstrap์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜๋กœ, ์ž…๋ ฅ ํ•„๋“œ์˜ ์Šคํƒ€์ผ์„ ์‰ฝ๊ฒŒ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ.์ด๊ฑฐ ์“ฐ๋ฉด ์ž…๋ ฅ ํ•„๋“œ(input, textarea, select ๋“ฑ)๊ฐ€ ๊ธฐ๋ณธ..
1. ๊ฒŒ์‹œํŒ ๋ฉ”์ธ ํŽ˜์ด์ง€ `bbs.jsp`๋งŒ๋“ค๊ธฐ๋จผ์ € `main.jsp` ํŽ˜์ด์ง€์—์„œ ๊ฒŒ์‹œํŒ ๋ถ€๋ถ„ href ์†์„ฑ์— "bbs.jsp" ๋ฅผ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค.  `main.jsp` ํŽ˜์ด์ง€๋ฅผ ๋ณต์‚ฌํ•ด์„œ webapp ์—๋‹ค ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜๊ณ  ์ด๋ฆ„๋งŒ `bbs.jsp`๋กœ ๋ฐ”๊พธ์ž.์—ฌ๊ธฐ์„œ ์ฝ”๋“œ์— ์†์„ ์ข€ ๋ณผ ๊ฒƒ์ด๋‹ค. ๋งŒ๋“ค์—ˆ์œผ๋ฉด `Home`์— ์žˆ๋˜ active ํด๋ž˜์Šค๋ฅผ `๊ฒŒ์‹œํŒ`์œผ๋กœ ์˜ฎ๊ฒจ ์ค˜์„œ ํ˜„์žฌ ์„ ํƒํ•œ ํŽ˜์ด์ง€์ž„์„ ๊ฐ€์‹œ์ ์œผ๋กœ ๋ณด์—ฌ ์ค€๋‹ค. ๊ทธ ๋‹ค์Œ ๋„ค๋น„๊ฒŒ์ด์…˜๋ฐ” ์•„๋ž˜์— ๊ฒŒ์‹œํŒ ํ˜•์‹์˜ ํ…Œ์ด๋ธ”์„ ์‚ฝ์ž… ํ•ด ์ค€๋‹ค.ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ธฐ ์ „์—  `` ํƒœ๊ทธ๋กœ container์™€ row ์˜์—ญ์„ ์žก์•„ ์ฃผ๊ณ  ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด์ฃผ์ž.  ๋ฒˆํ˜ธ ..
โœ… session ๊ด€๋ฆฌโœ… logout.jspโœ… main.jsp ๋งŒ๋“ค๊ธฐ ์ง€๊ธˆ๊นŒ์ง€ ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ๊นŒ์ง€ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค.์ด์ œ ์„ธ์…˜ ๊ด€๋ฆฌ๋ฅผ ํ•ด ๋ณด์ž. `session` ์ด๋ž€ ํ˜„์žฌ ์ ‘์†ํ•œ ํšŒ์›์—๊ฒŒ ํ• ๋‹นํ•ด์ฃผ๋Š” ๊ณ ์œ ํ•œ ์•„์ด๋””์ด๋‹ค.๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•œ ํšŒ์›์—๊ฒŒ ๊ฐ๊ฐ `session`์„ ๋ถ€์—ฌํ•ด์ฃผ๋Š” ๊ณผ์ •์„ ๊ตฌํ˜„ํ•ด๋ณด์ž. `loginAction.jsp`์— `session`์„ ์„ค์ •ํ•ด์ฃผ๋Š” `session.setAttribute()` ์ฝ”๋“œ ํ•œ ์ค„ ํƒ€์ดํ•‘!`joinAction.jsp`์—๋„ ์ฝ”๋“œ ๋ณต๋ถ™ํ•ด์„œ ๋„ฃ์–ด ์ค€๋‹ค.๋กœ๊ทธ์ธ ์„ฑ๊ณตํ•œ ํšŒ์›์—๊ฒŒ ์„ธ์…˜ ๋ถ€์—ฌํ•˜๊ณ  ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ๋” ํ•ด ์ค€๋‹ค. ์ด๋ ‡๊ฒŒ ์„ธ์…˜์„ ์„ค์ •ํ•ด ์ฃผ์—ˆ๋‹ค. ์„ธ์…˜์€ ํ•ด์ œ ํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์œ ํšจํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ• ๋‹นํ•œ ์„ธ์…˜์„ ํ•ด์ œํ•  ์ˆ˜ ์žˆ๋Š” ๋กœ๊ทธ์•„์›ƒ ํŽ˜์ด์ง€๋„ ๋งŒ๋“ค์–ด ์ฃผ์ž. `joinAc..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'BBS' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก
์ƒ๋‹จ์œผ๋กœ