Spring Quick Start(์ฑ )์ Day3 class03 ์ค์ต์ ์งํํ๋ฉด์ ๊ธฐ๋กํ ๋ด์ฉ์ ๋๋ค.
Model 2 ์ํคํ ์ฒ ๊ตฌ์กฐ
ํต์ฌ์ Controller์ ๋ฑ์ฅ์ด๋ค.
๊ธฐ์กด Model 1์์๋ JSP๊ฐ Controller์ View ๊ธฐ๋ฅ ๋ชจ๋๋ฅผ ๋ด๋นํ๋๋ฐ
Model 2 JSP๋ ๋์์ธ๊ณผ ๊ฐ์ View๋ฅผ ๋ด๋นํ๊ณ , Servlet ํด๋์ค๊ฐ Controller๋ฅผ ๋ด๋นํ๋ค.
MVC ์ํคํ ์ณ์์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ด Controller์ด๋ค. Controller๋ฅผ ์ฑ๋ฅ๊ณผ ์ ์ง๋ณด์์ ํธ์์ฑ์ ๊ณ ๋ คํ์ฌ ์ ๋ง๋๋ ๊ฒ์ด ๋ฌด์๋ณด๋ค ์ค์ํ๋ค.
์ ๋ฆฌํ๋ฉด ์ด๋ ๋ค.
-
์ธ์ฝ๋ฉ ์์ ์ DispatcherServlet ํด๋์ค์์ ์ผ๊ด ์ฒ๋ฆฌํ๋ฏ๋ก ์ธ์ฝ๋ฉ์ ๋ณ๊ฒฝํ ๋๋ DispatcherServlet ํด๋์ค๋ง ์์ ํ๋ฉด ๋๋ค. ๊ธ ๋ฑ๋ก, ์์ ์์ ์์ ๋ ์ด์ ํ๊ธ์ด ๊นจ์ง๋ ์ผ์ ๋ฐ์ํ์ง ์๋๋ค.
-
get ๋ฐฉ์์ด๋ post ๋ฐฉ์์ด๋ process() ๋ฉ์๋๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค.
-
HttpSession์ ๋ธ๋ผ์ฐ์ ๋น ์๋ฒ ๋ฉ๋ชจ๋ฆฌ์ ํ๋์ฉ ์ ์ง๋๋ ๊ฐ์ฒด์ด๋ค. ์ฌ์ฉ์๊ฐ ๋ง์์ง์๋ก ์ธ์ ์ด ๋ง์์ง๊ณ ์๋ฒ์๊ฒ ๋ถ๋ด์ ์ฃผ๊ฒ๋๋ค. ๊ทธ๋์ ๋ณดํต ๊ฒ์ ๊ฒฐ๊ณผ๋ HttpSession์ด ์๋ HttpServletRequest ๊ฐ์ฒด์ ์ ์ฅํ์ฌ ๊ณต์ ํ๋ค. HttpServletRequest ๊ฐ์ฒด๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ์ ์ ์กํ ๋๋ง๋ค ๋งค๋ฒ ์๋กญ๊ฒ ์์ฑ๋๊ณ , ์๋ต ๋ฉ์ธ์ง๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ ์ก๋๋ฉด ๋ฐ๋ก ์ญ์ ๋๋ 1ํ์ฑ ๊ฐ์ฒด์ด๋ค.
DispatcherServlet.java
package org.jueun.view.controller;
import org.jueun.biz.board.BoardVO;
import org.jueun.biz.board.impl.BoardDAO;
import org.jueun.biz.user.UserVO;
import org.jueun.biz.user.impl.UserDAO;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
// ๊ธ ๋ฑ๋ก, ์์ ์์
์์ ๋ ์ด์ ํ๊ธ์ด ๊นจ์ง๋ ์ผ์ ๋ฐ์ํ์ง ์๋๋ค.
// ์ธ์ฝ๋ฉ ์์
์ DispatcherServlet ํด๋์ค์์ ์ผ๊ด ์ฒ๋ฆฌํ๋ฏ๋ก ์ธ์ฝ๋ฉ์ ๋ณ๊ฒฝํ ๋๋ DispatcherServlet ํด๋์ค๋ง ์์ ํ๋ฉด ๋๋ค.
public class DispatcherServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public DispatcherServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
process(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("EUC-KR");
process(request, response);
}
// get ๋ฐฉ์์ด๋ post ๋ฐฉ์์ด๋ process() ๋ฉ์๋๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค.
private void process(HttpServletRequest request, HttpServletResponse response) throws IOException {
// 1. ํด๋ผ์ด์ธํธ์ ์์ฒญ path ์ ๋ณด๋ฅผ ์ถ์ถํ๋ค.
String uri = request.getRequestURI();
String path = uri.substring(uri.lastIndexOf("/"));
System.out.println(path);
// 2. ํด๋ผ์ด์ธํธ์ ์์ฒญ path์ ๋ฐ๋ผ ์ ์ ํ ๋ถ๊ธฐ์ฒ๋ฆฌ ํ๋ค.
if (path.equals("/login.do")) {
System.out.println("๋ก๊ทธ์ธ ์ฒ๋ฆฌ");
// 1. ์ฌ์ฉ์ ์
๋ ฅ ์ ๋ณด ์ถ์ถ
String id = request.getParameter("id");
String password = request.getParameter("password");
// 2. DB ์ฐ๋ ์ฒ๋ฆฌ
UserVO vo = new UserVO();
vo.setId(id);
vo.setPassword(password);
UserDAO userDAO = new UserDAO();
UserVO user = userDAO.getUser(vo);
// 3. ํ๋ฉด ๋ค๋น๊ฒ์ด์
if (user != null) {
response.sendRedirect("getBoardList.do");
} else {
response.sendRedirect("login.jsp");
}
} else if (path.equals("/logout.do")) {
System.out.println("๋ก๊ทธ์์ ์ฒ๋ฆฌ");
// 1. ๋ธ๋ผ์ฐ์ ์ ์ฐ๊ฒฐ๋ ์ธ์
๊ฐ์ฒด๋ฅผ ๊ฐ์ ์ข
๋ฃํ๋ค.
HttpSession session = request.getSession();
session.invalidate();
// 2. ์ธ์
์ข
๋ฃ ํ, ๋ฉ์ธ ํ๋ฉด์ผ๋ก ์ด๋ํ๋ค.
response.sendRedirect("login.jsp");
} else if (path.equals("/insertBoard.do")) {
System.out.println("๊ธ ๋ฑ๋ก ์ฒ๋ฆฌ");
// 1. ์ฌ์ฉ์ ์
๋ ฅ ์ ๋ณด ์ถ์ถ
// request.setCharacterEncoding("EUC-KR");
String title = request.getParameter("title");
String writer = request.getParameter("writer");
String content = request.getParameter("content");
// 2. DB ์ฐ๋ ์ฒ๋ฆฌ
BoardVO vo = new BoardVO();
vo.setTitle(title);
vo.setWriter(writer);
vo.setContent(content);
BoardDAO boardDAO = new BoardDAO();
boardDAO.insertBoard(vo);
// 3. ํ๋ฉด ๋ค๋น๊ฒ์ด์
response.sendRedirect("getBoardList.do");
} else if (path.equals("/updateBoard.do")) {
System.out.println("๊ธ ์์ ์ฒ๋ฆฌ");
// 1. ์ฌ์ฉ์ ์
๋ ฅ ์ ๋ณด ์ถ์ถ
// request.setCharacterEncoding("EUC-KR");
String title = request.getParameter("title");
String content = request.getParameter("content");
String seq = request.getParameter("seq");
// 2. DB ์ฐ๋ ์ฒ๋ฆฌ
BoardVO vo = new BoardVO();
vo.setTitle(title);
vo.setContent(content);
vo.setSeq(Integer.parseInt(seq));
BoardDAO boardDAO = new BoardDAO();
boardDAO.updateBoard(vo);
// 3. ํ๋ฉด ๋ค๋น๊ฒ์ด์
response.sendRedirect("getBoardList.do");
} else if (path.equals("/deleteBoard.do")) {
System.out.println("๊ธ ์ญ์ ์ฒ๋ฆฌ");
// 1. ์ฌ์ฉ์ ์
๋ ฅ ์ ๋ณด ์ถ์ถ
String seq = request.getParameter("seq");
// 2. DB ์ฐ๋ ์ฒ๋ฆฌ
BoardVO vo = new BoardVO();
vo.setSeq(Integer.parseInt(seq));
BoardDAO boardDAO = new BoardDAO();
boardDAO.deleteBoard(vo);
// 3. ํ๋ฉด ๋ค๋น๊ฒ์ด์
response.sendRedirect("getBoardList.do");
} else if (path.equals("/getBoard.do")) {
System.out.println("๊ธ ์์ธ ์กฐํ ์ฒ๋ฆฌ");
// 1. ๊ฒ์ํ ๊ฒ์๊ธ ๋ฒํธ ์ถ์ถ
String seq = request.getParameter("seq");
// 2. DB ์ฐ๋ ์ฒ๋ฆฌ
BoardVO vo = new BoardVO();
vo.setSeq(Integer.parseInt(seq));
BoardDAO boardDAO = new BoardDAO();
BoardVO board = boardDAO.getBoard(vo);
// 3. ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ธ์
์ ์ ์ฅํ๊ณ ๋ชฉ๋ก ํ๋ฉด์ผ๋ก ์ด๋ํ๋ค.
HttpSession session = request.getSession();
session.setAttribute("board", board);
response.sendRedirect("getBoard.jsp");
} else if (path.equals("/getBoardList.do")) {
System.out.println("๊ธ ๋ชฉ๋ก ๊ฒ์ ์ฒ๋ฆฌ");
// 1. ์ฌ์ฉ์ ์
๋ ฅ ์ ๋ณด ์ถ์ถ(๊ฒ์ ๊ธฐ๋ฅ์ ๋์ค์ ๊ตฌํ)
// 2. DB ์ฐ๋ ์ฒ๋ฆฌ
BoardVO vo = new BoardVO();
BoardDAO boardDAO = new BoardDAO();
List<BoardVO> boardList = boardDAO.getBoardList(vo);
// 3. ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ธ์
์ ์ ์ฅํ๊ณ ๋ชฉ๋ก ํ๋ฉด์ผ๋ก ์ด๋ํ๋ค.
HttpSession session = request.getSession();
session.setAttribute("boardList", boardList);
response.sendRedirect("getBoardList.jsp");
}
}
}
'Spring > Spring Quick Start' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
intelliJ์์ servlet ์์ฑํ๊ธฐ (0) | 2021.01.07 |
---|---|
[์๋ฌ] intelliJ Server ์ฌ์ฉ ์ output์ฐฝ ํ๊ธ ๊นจ์ง ์ค๋ฅ (0) | 2021.01.07 |
forward์ redirect ์ฐจ์ด (0) | 2021.01.07 |
Model 1 ์ํคํ ์ณ๋ก ๊ฒ์ํ ๊ฐ๋ฐ (JSP์ JavaBeans๋ง์ ์ฌ์ฉ) (0) | 2021.01.07 |
ํธ๋์ญ์ (Transaction) ์ ์ฉ (0) | 2021.01.07 |
ํ๋กํผํฐ ํ์ผ์ ์ด์ฉํ Spring JDBC (0) | 2021.01.07 |