.png)


@Controllor ์ด๋
ธํ
์ด์
, handlerMapping์ ์ผ
bean๋ฑ๋ก + ์์ฒญ์ด ๋ค์ด์ค๋ฉดrequestMapping๊ณผ ์ฐ๊ฒฐํด์ค๋ค@Controller๊ฐ ์์ผ๋ฉด@RequestMapping์๋ฌด ์ธ์๋ ์๋คhandlerMapping์@Controller๋ค์ ๊ด๋ฆฌํด์ค๋คController,Service,DAO,DB๋ ๊ฐ๋ฐ์๊ฐ ๋ง๋ ๋คController๋view์ด๋ฆ, ์ฆreturn String
ViewResolver, DispatcherServlet์ ์ผ
Controller๊ฐreturnํString์prefix์suffixํฉ์ณ์DispatcherServletํํ ์ค๋คDispatcherServlet์ด ๊ทธ๊ฒ๋ค ๋ค ํฌํจํด์responseํด์ค๋ค.
UserController.java@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService service;
@RequestMapping("/login")
public String login() {
return "user/login";
}
@RequestMapping("/join")
public String join() { return "user/join"; }
@RequestMapping(value="/join", method = RequestMethod.POST)
public String join(UserEntity param) {
System.out.println("param = " + param);
service.join(param);
return "redirect:user/join";
}
}
์ปจํธ๋กค๋ฌ๋ ๋งคํ๋ด๋น
์๋น์ค๋ ๋ก์ง๋ด๋น
@Autowired: ์ฐ๊ฒฐํ๋ ค๋ ํด๋์ค๊ฐ ์ด๋ ธํ ์ด์ ๋์ด ์์ง ์์ผ๋ฉด ๐ bean๋ฑ๋ก์ด ๋์ด ์์ง ์์์ ์๋ฌ๊ฐ ๋ฐ์ํด์. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฆฌํฌ ์ ์๋ ํ์ ์ด(ํด๋์ค๊ฐ) ์ฌ๋ฌ๊ฐ๊ฐ ์์ผ๋ฉด ์๋ฌ ๋ ์.
bean: ๊ฐ์ฒด
@: ์ด๋ ธํ ์ด์ ,bean์ ๋ฑ๋กํ๋ ๊ฑฐ์์. ๊ฐ์ฒด๋ฅผ ๋๊ฐ ๋ค๊ณ ์์ด~๋ผ๊ณ ์๊ธฐํ๋ ๊ฑฐ๋ ๊ฐ์์. ๊ทธ๋ฆฌ๊ณprivate๋ผ๋ ๊ฐ์ด ์ฃผ์ ์ด ๋ผ์.๊ฐ์ฒด์ ์ฃผ์๊ฐ์ ๊ฐ์ง๊ณ ์๋๊ฑฐ์์.
@Service
public class UserService {
@Autowired
private UserMapper mapper;
โ @Mapper๊ฐ @Autowired๋ก ๊ฐ์ด ์ฃผ์
๋ผ์. mapper๊ฐ private์ฌ๋ ์ธ๋ถ์์ ๊ฐ์ด ์ฃผ์
๋ผ์.
@Mapper
public interface UserMapper {
int insUser(UserEntity param);
}
@Controller
- ์ฃผ์๊ฐ๊ณผ ๋งคํ ๋ ์ ์๋
beanController๋ก์ด๋ ธํ ์ด์ ๋ ์๊ฐweb.xml์<servlet>๊ณผ ์ฐ๊ฒฐ๋ผ์.
@RequestMapping("๊ฒฝ๋ก")
RequestMapping๋ก์ด๋ ธํ ์ด์ ๋ ์๊ฐ ์๋ธ๋ฆฟ(web.xml - <servlet>)๊ณผ๋งคํ๋ผ์.- ํด๋์ค์ ์์ ์์นํ๋ฉด 1์ฐจ ์ฃผ์๊ฐ, ํด๋์ค ๋ฐ์ ์์นํ๋ฉด 2์ฐจ ์ฃผ์๊ฐ์ด์์.
- ์์ฑ์ด ์์ด์. ๐
method="RequestMethod.Post- ๊ธฐ๋ณธ ์์ฑ :
value="๊ฒฝ๋ก" method="RequestMethod.Get"๐ ๊ทธ๋์ ๋ณดํต ์๋ตํ์ฌ ์จ์.method="RequestMethod.Post๋ฅผ ์ธ ๋๋ ๊ฒฝ๋ก๋ฅผvalue="๊ฒฝ๋ก"์ด๋ ๊ฒ ์ง์ ํด์ผ ํด์. ์๋ตํ ์ ์์ด์. ๐value="๊ฒฝ๋ก" method="RequestMethod.Post
๋ฉ์๋
return์ผ๋กredirect๋ถ์ด์ง ์๊ณString๋ง ์ ์ผ๋ฉด ๋ฌด์กฐ๊ฑดdispatcher์ ์ด์ฉํด์forward์์ผ์.๐ ๋์คํจ์น ๋ฐฉ์ @RequestMapping("/join") public String join() { return "user/join"; }๐ ๋ฆฌ๋ค์ด๋ ํธ ๋ฐฉ์ @RequestMapping(value="/join", method = RequestMethod.POST) public String join(UserEntity param) { return "redirect:user/join"; }
- ๊ทธ๋ฆฌ๊ณ
<servlet>์ดreturn๋ ๊ฒฝ๋ก์ ์์๋prefix๋ฅผ ๋ถ์ด๊ณ
๋ค์๋suffix๋ฅผ ๋ถ์ฌ์ค์.request.getRequestDispatcher.forward("๊ฒฝ๋ก")์response.sendRedirect("๊ฒฝ๋ก")๋ฅผ ์ง์ ํ ํ์๊ฐ ์๊ณ SPRING์ด ํด์ฃผ๋ ๊ฑฐ์์.
controller๋ฉ์๋์ ์ธ์@RequestMapping("/detail")
public String detail(BoardDTO param) { ๐ ์ฟผ๋ฆฌ ์คํธ๋ง์ผ๋ก ๋ณด๋ธ ๊ฐ
System.out.println("iboard : " + param.getIboard());
return "board/detail";
}
- ์ฟผ๋ฆฌ ์คํธ๋ง์ผ๋ก ๋ณด๋ธ ๊ฐ์
BoardDTO param, ์๊ฐ ๋ฐ์์ค์- ์ฟผ๋ฆฌ ์คํธ๋ง์ผ๋ก ๋ณด๋ธ ๊ฐ์
BoardDTO param์ ๋ฉค๋ฒํ๋์ ๋ฃ์ด์ฃผ๋ ๊ฑฐ์์- ๋ฉค๋ฒํ๋์ ์ด๋ฆ์ผ๋ก
request.getparameter()๋ค ํด๋ณด๊ณ ์์ผ๋ฉดparam์set()ํด์ฃผ๋ ๊ฑฐ์์- ์ฌ๊ธฐ์ ์ ๊ธฐ๋ง ํด๋ ์๋ธ๋ฆฟ์ด
/detail์์ ํด์ฃผ์์์- ๊ทธ ์๋ธ๋ฆฟ์ด
param๊น์ง๋ ๊ฐ์ฒดํ ํด์ค์- ๊ทธ๋์ ์ฟผ๋ฆฌ ์คํธ๋ง์ด ์์ด๋ ๊ฐ์ฒด๊ฐ ์๊ธฐ ๋๋ฌธ์
getIboardํ๋ฉด0์ด ๋์์.- ๋ง์ฝ ๊ฐ์ฒดํ๊ฐ ์๋์ด ์์ผ๋ฉด
param์์ฒด๊ฐnull์ด๊ณnull์ธ ์ ํํ getiboardํ๋ฉดerror๊ฐ ํฐ์ง๋๋ฐ ์ํฐ์ง์์์
- ์ฟผ๋ฆฌ์คํธ๋ง์ผ๋ก ๋ฐ์์ ๊ฐ์ฒดํ ํด์ฃผ๊ณ ๋ฉค๋ฒํ๋์
set๊น์ง ํด์ฃผ๋ ๊ฑธ,
๊ทธ๋ฅpublic String detail(BoardDTO param)์ด๋ ๊ฒ ์ ์ผ๋ฉด ๋์ธ๊ฑฐ์ฃ .
์ ๊ธฐํ์ฃ ? ๐ค
boardController
@ResponseBody
@RequestMapping("/cmtInsSel")
public Map<String, Integer> cmtInsSel() {
Map<String, Integer> result = new HashMap<>();
result.put("result", 1);
return result;
}
.png)
@ResponseBody , @RestController
- ํ๋ฉด์ด๋ ์ ํ ์๊ด์ด ์์ด์.
- ๋ฐ์ดํฐ๋ ์๊ด ์์ด์.
- ๋ฌด์กฐ๊ฑด
JASONํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์.- ์ด ์ด๋ ธํ ์ด์ ์๋์ ๋ชจ๋ ๋ฉ์๋์ ๋ณ์์ ๋ชฉ์ ์
JASONํ๊ฐ ๋ชฉ์ ์ด์์.- ๊ทธ๋ฅ ์ปจํธ๋กค๋ฌ๋ ํ๋ฉด๊ณผ ๋ฐ์ดํฐ ๋ชจ๋ ์๊ด์ด ์์ด์. ์๋ฒ์ฌ์ด๋๋ ๋๋ง์ด์์.
- ๋ฐ์ดํฐ๋ง ์คํ ๋ ํ๋ฉด ๋๊ฐ ๋ง๋ค์ด์ ์ฐ์ธ์. ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง์ด์์.
Map<>
Map<>์ ์ฐ๋ ์ด์ ๋ ๋งค๋ฒclass๋ฅผ ๋ง๋ค๊ธฐ ๊ท์ฐฎ์ผ๋๊น์.
.png)
๐น ์ฐธ๊ณ
์ฌ์ง์ ์ ๋๋ฒ๊ฑฐ์ ์ฝ๋ฉ์ด์ผ๊ธฐ ๋ธ๋ก๊ทธ์์ ๊ฐ์ ธ์์ด์.
์ ๋๋ฒ๊ฑฐ์ ์ฝ๋ฉ์ด์ผ๊ธฐ ๋ธ๋ก๊ทธ ๋ฐ๋ก๊ฐ๊ธฐ
.png)