Light Purple Pointer
๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ 2 - ๊ธฐ๋ณธํŽ˜์ด์ง€(index)
ยท
BACKEND/Spring
ํ˜„์žฌ ๊ธฐ๋ณธ ํŽ˜์ด์ง€๋Š” index.jsp์ด๋‹ค. ์ด๋ฆ„ ๋ณ€๊ฒฝ์œผ๋กœ main.jsp๋กœ ๋ณ€๊ฒฝํ•จ board์˜ main.jsp์™€๋Š” ๋ณ„๊ฐœ์ž„ HomeController package com.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class MainController { @GetMapping("/main") public String main() { return "/main"; } } ํ…Œ์ŠคํŠธํ•˜๊ธฐ ๋ชจ๋“  ์š”์ฒญ์€ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋ฐ›์•„์•ผํ•˜๋ฏ€๋กœ MainController ์ƒ์„ฑํ•ด์„œ ๋ฉ”์ธ์œผ๋กœ ๋ณด๋‚ด์ค˜์•ผํ•จ ์œ„์˜ ๋ฉ”๋‰ด๊ฐ€ ์•ˆ๋œธ ์ธํ„ฐ์…‰ํ„ฐ..
๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ 2 - ํŽ˜์ด์ง€ ๋„ค์ด์…˜ ๊ตฌํ˜„
ยท
BACKEND/Spring
ํŽ˜์ด์ง€ ๋„ค์ด์…˜์€ ๊ฒŒ์‹œ๊ธ€์ด ๋Š˜์–ด๋‚  ๊ฒฝ์šฐ ํ•œ ํŽ˜์ด์ง€์— ๋ชจ๋“  ๊ฒŒ์‹œ๊ธ€์„ ์ถœ๋ ฅํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์Šคํฌ๋กค์ด ๊ธธ์–ด์ง€๊ฒŒ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ ํŽ˜์ด์ง€์— ์ถœ๋ ฅ๊ฐ€๋Šฅํ•œ ๊ฒŒ์‹œ๊ธ€ ๊ฐœ์ˆ˜๋ฅผ ์ œํ•œํ•˜์—ฌ 1ํŽ˜์ด์ง€ 2ํŽ˜์ด์ง€ ๋“ฑ ๋„˜์–ด๊ฐ€๋„๋ก ์ž‘๋™ํ•˜๋Š” ๊ธฐ๋Šฅ ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ๋ฌธ์—์„œ ์ฒ˜๋ฆฌํ•˜๋‚˜ Spring MVC์€ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•จ #page per board count , pagination count page.listcnt = 10 page.paginationcnt = 10 ๊ฒŒ์‹œ๊ธ€ ๊ฐœ์ˆ˜์™€ ํŽ˜์ด์ง€ ๊ฐœ์ˆ˜ BoardController //ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ถ”๊ฐ€ @GetMapping("/main") public String main(@RequestParam("info_idx") int info_idx, Model model , @Requ..
๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ 2 - ๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ ์ฒ˜๋ฆฌ
ยท
BACKEND/Spring
๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œํ•˜๊ธฐ boardMapper.xml DELETE FROM board WHERE board_idx = #{board_idx} BoardDAO //๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œํ•˜๊ธฐ public void deleteContent(int board_idx) { sqlTemplate.delete("board.deleteBoard",board_idx); } BoardService //๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œํ•˜๊ธฐ public void deleteContent(int board_idx) { boardDAO.deleteContent(board_idx); } BoardController //๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ ์ฒ˜๋ฆฌ @GetMapping("/delete") public String delete( @RequestParam("info_idx") int i..
๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ 2 - ๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ • ์ฒ˜๋ฆฌ
ยท
BACKEND/Spring
BoardController - ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ @PostMapping("/modify_pro") public String modify_pro(@Valid @ModelAttribute("modifyContent") BoardVO modifyContent, BindingResult result) { if(result.hasErrors()) { return "board/modify"; } return "board/modify_success"; } ํ…Œ์ŠคํŠธ ๋‚ด์šฉ ๋ฏธ ์ž…๋ ฅ ์‹œ ์ˆ˜์ • ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ boardMapper.xml ์ถ”๊ฐ€ UPDATE board SET title = #{title} content = #{content} content_file = #{content_file,jdbcType=VARCHAR} WHE..
๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ 2 - ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋ฐฉ๋ฒ• ๋ณ€๊ฒฝ
ยท
BACKEND/Spring
์ดํด๋ฆฝ์Šค ๊ธฐ๋Šฅ ์ค‘ clean์„ ์‚ญ์ œํ•˜๋ฉด ๊ธ€ ์ž‘์„ฑ ์‹œ ์—…๋กœ๋“œํ•˜๋Š” ์‚ฌ์ง„ ํŒŒ์ผ๋„ ์ดˆ๊ธฐํ™”๋˜๋Š” ํ˜„์ƒ์ด ์ƒ๊น€ ๊ทธ๋ž˜์„œ ์—…๋กœ๋“œ ๋ฐฉ๋ฒ• ์ˆ˜์ •ํ•จ C:\Java\upload ํ†ฐ์บฃ ์„œ๋ฒ„ ๋ชจ๋“ˆ ์ฃผ์†Œ ์ง€์ • /upload๋ฅผ ์ฃผ์†Œ์— ์ž…๋ ฅํ•˜๋ฉด ์•„๋ž˜์˜ ํด๋”๋กœ ์ด๋™ ํ•ด๋‹น ํด๋”๋กœ ์ด๋ฏธ์ง€๊ฐ€ ์˜ฌ๋ผ๊ฐˆ๊ฑฐ์ž„ ์„œ๋ฒ„๊ฐ€ ๋™์ ์œผ๋กœ ๊ณ„์† ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด์„œ ๋“ฑ๋กํ•œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ๋” ๊ทธ๋ฆฌ๊ณ  ์ถ”๊ฐ€ํ•œ ๋ชจ๋“ˆ์„ ๋“ฑ๋ก์„ ํ•ด์ค˜์•ผ ํ•จ ์œ„์˜ ํ”„๋กœํผํ‹ฐ๋Š” boardService์—์„œ ๊ฐ€์ ธ์˜จ๋‹ค. ์ €๋ฒˆ์— ์‚ฌ์šฉํ–ˆ์–ด์„œ ์ด๋ฏธ ๊ฐ€์ ธ์™€์žˆ์Œ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ๊ธ€ ์ž‘์„ฑํ•˜๊ณ  ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๋ฅผ ํ•˜๋ฉด ์ง€์ •ํ•œ ๊ฒฝ๋กœ์˜ ํด๋”์— ์ €์žฅ์ด ๋จ.
๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ 2 - ๊ฒŒ์‹œ๊ธ€์€ ๊ธ€์“ด์ด๋งŒ ์ˆ˜์ • ๊ฐ€๋Šฅํ•˜๊ฒŒ
ยท
BACKEND/Spring
๊ธ€ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ค‘ ์ž‘์„ฑ ๊ถŒํ•œ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ •๊ณผ ์‚ญ์ œ ๋ฒ„ํŠผ์€ ๋กœ๊ทธ์ธํ•œ ์‚ฌ๋žŒ๊ณผ ์ž‘์„ฑํ•œ ์‚ฌ๋žŒ์ด ๊ฐ™์„ ๊ฒฝ์šฐ์—๋งŒ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ง์ ‘ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์š”์ฒญํ•  ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด Interceptor๋กœ ์ฒ˜๋ฆฌํ•ด์ค๋‹ˆ๋‹ค. BoardController ํ˜„์žฌ ๋กœ๊ทธ์ธ ๋œ ์œ ์ €์˜ ์ •๋ณด๋Š” sessioUser์— ์ €์žฅ๋˜์–ด์žˆ์–ด์„œ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. sessionUser์„ ๋ชจ๋ธ๋กœ ๋ณด๋‚ด์ค€๋‹ค. readํŽ˜์ด์ง€๋กœ ๊ธฐ์กด์— ์žˆ๋˜ getBoardDetail ์ˆ˜์ • writer_idx ์ถ”๊ฐ€ SELECT board_idx,u.name, writer_idx, DATE_FORMAT(regDate,'%y-%m-%d') AS regDate, title, content, content_file FROM board b JOIN user u ON b.writer_idx ..
๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ 2 - ๊ธ€ ์ž‘์„ฑ ํ›„ ์ž‘์„ฑํ–ˆ๋˜ ๋ฉ”๋‰ด๋กœ ๋Œ์•„๊ฐ€๊ธฐ
ยท
BACKEND/Spring
write_success.jsp ํ•ด๋‹น ๊ฒŒ์‹œํŒ ๋ชฉ๋ก์œผ๋กœ ๋ณด๋‚ด์คŒ BoardController @PostMapping("/write_pro") public String write_pro(@Valid @ModelAttribute("writeBean") BoardVO writeBean, BindingResult result,Model model ) { if(result.hasErrors()) { return "board/write"; } //DB์— ์ƒˆ ๊ฒŒ์‹œ๊ธ€ ์ €์žฅ boardService.addContentInfo(writeBean); model.addAttribute("info_idx", writeBean.getInfo_idx()); return "board/write_success"; } ๊ธ€ ์ž‘์„ฑํ•˜๋ฉด, writ..
๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ 2- ๊ธ€ ์ƒ์„ธ๋ณด๊ธฐ ํŽ˜์ด์ง€
ยท
BACKEND/Spring
main.jsp ๊ธ€ ๋ชฉ๋ก์—์„œ ์ œ๋ชฉ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์„ ์ƒ์„ธ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€๋กœ ๋„˜๊น€ ${obj.title} ${obj.name} ${obj.regDate} BoardController @GetMapping("/read") public String read(@RequestParam("info_idx") int info_idx, @RequestParam("board_idx") int board_idx,Model model) { model.addAttribute("info_idx", info_idx);//๊ฒŒ์‹œํŒ ๋ฒˆํ˜ธ๋Š” ์œ ์ง€ //๊ธ€๋ฒˆํ˜ธ๋กœ db์—์„œ ๊ฒŒ์‹œ๊ธ€ ์ฝ์–ด์˜ค๊ธฐ return "board/read"; } sql์ž‘์„ฑํ•˜๊ธฐ ์ „์— ํ…Œ์ŠคํŠธํ•˜๊ธฐ boardMapper SELECT u.name, DATE_FORMAT(re..
๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ 2 -๊ฒŒ์‹œํŒ ์ œ๋ชฉ ๋ฐ ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก
ยท
BACKEND/Spring
boardMapper.xml SELECT board_name FROM board_info WHERE info_idx =#{info_idx} ๊ธ€์“ด์ด ์ด๋ฆ„์€ ์—†์Œ ,writer_idx๋Š” ์žˆ์Œ userํ…Œ์ด๋ธ”๊ณผ join์ด ํ•„์š”ํ•จ user_idx์™€ writer_idx๋Š” ๋™์ผํ•จ MySQL์—์„œ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ธฐ SELECT board_idx, title, u.name, regDate FROM board b JOIN user u ON b.writer_idx = u.user_idx WHERE info_idx = #{info_idx} ORDER BY board_idx DESC ; ์ตœ์‹  ๊ธ€ ์ˆœ์œผ๋กœ ์กฐํšŒ, ๊ฒŒ์‹œํŒ ๋ฒˆํ˜ธ(๋ฉ”๋‰ด)๋กœ ๊ฒ€์ƒ‰ ๊ฒŒ์‹œํŒ ๋ฒˆํ˜ธ๋กœ ๊ฒ€์ƒ‰ํ•˜๋‹ˆ๊นŒ ํŒŒ๋ผ๋ฏธํ„ฐ ํƒ€์ž…์€ ์ •์ˆ˜ ๊ฒฐ๊ณผ๋Š” ContentVO๋กœ ๊ฐ€์ ธ์˜ด ContentVO์ƒ..
๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ 2 - ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ์„ค์ • ๋ฐ DB์ €์žฅ
ยท
BACKEND/Spring
์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค ํŒŒ์ผ(์ด๋ฏธ์ง€)๋ฅผ ์„ ํƒํ–ˆ์„ ๊ฒฝ์šฐ ํŒŒ์ผ๋„ ์—…๋กœ๋“œ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ํŒŒ์ผ ์—…๋กœ๋“œ์‹œ cos๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ Servlet ๋ฒ„์ „ 3.1 ๋ถ€ํ„ฐ๋Š” StandardServletMultipartResolver ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋ฐฉ๋ฒ• โ€‹ 1. enctype="multipart/form-data" ๋ฅผ wirte.jsp ํผํƒœ๊ทธ์— ์ ์šฉ โ€‹ 2. ์Šคํ”„๋ง์—์„œ๋Š” StandardServletMultipartResolver ๋นˆ๋“ฑ๋ก ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” ๋ฒ„์ „์ด 3.1์ด ์•„๋‹ˆ๋ผ์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ ํ•จ ใ… ใ…  pom.xml commons-fileupload commons-fileupload 1.3.3 servlet-context.xml ํŒŒ์ผ ์œ„์น˜ c-> java-> uploadํด๋” ์ง€์ • โ€‹maxUploadS..
ใ„ด