Servlet & JSP ไธญ
๐ Servlet & JSP ไธญ
๐ Servlet & JSP ไธญ
๐ฎ Servlet & JSP ์์
๐ Example
๐ ๋ก๊ทธ์ธ
-
์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ ๋ฉ๋ด ํด๋ฆญ
-
๋ธ๋ผ์ฐ์ ์์
/context/user?a=loginform
request. -
user์
Mapping ๋์ด์๋ UserServlet์ doGet() ํธ์ถprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String actionName = request.getParameter("a"); Action action = new UserActionFactory().getAction(actionName); action.execute(request, response); }
-
a์ ๋งค๊ฐ๋ณ์๋ก ์ฐ์ฌ์ง loginform์ actionName์ด๋ผ๋ String๊ฐ์ฒด๋ก ๋ฐ์
-
UserActionFactory์์ ํด๋นํ๋ Action ์คํ
else if("login".equals(actionName)) { action = new LoginAction(); }
-
Email๊ณผ Password๋ฅผ
<form action="path">
์ผ๋ก ์ ๋ฌ ๋ฐ์ UserDao์ get๋ฉ์๋๋ฅผ ํตํด ์ผ์นํ๋authUser
๊ฐ์ฒด ์์ฑ@Override public void execute(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String email = request.getParameter("email"); String password = request.getParameter("password"); UserVo authUser = new UserDao().get(email, password); if(authUser == null) { request.setAttribute("result", "fail"); WebUtil.forward(request, response, "/WEB-INF/views/user/loginform.jsp"); return; } // ๋ก๊ทธ์ธ์ฒ๋ฆฌ HttpSession session = request.getSession(true); session.setAttribute("authUser", authUser); WebUtil.redirect(request, response, request.getContextPath()+"/main"); }
-
์์์ ์์ฑํ
authUser
๋ฅผ session์ ์ธํ ํ๊ณ -
๋ฉ์ธ ํ์ด์ง๋ก Redirect.
๐ง ํ์ ์ ๋ณด์์
-
๋ก๊ทธ์ธ ํ ์ธ์ ์ด ์ด์์๋ ์ํ์์ ์ฌ์ฉ์๊ฐ ์ ๋ณด์์ ๋งํฌ ํด๋ฆญ
-
๋ธ๋ผ์ฐ์ ์์
/user?a=updateform
request. -
user์
Mapping ๋์ด์๋ UserServlet์ doGet() ํธ์ถprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String actionName = request.getParameter("a"); Action action = new UserActionFactory().getAction(actionName); action.execute(request, response); }
-
a์ ๋งค๊ฐ๋ณ์๋ก ์ฐ์ฌ์ง loginform์ actionName์ด๋ผ๋ String๊ฐ์ฒด๋ก ๋ฐ์
-
UserActionFactory์์ ํด๋นํ๋ Action ์คํ
}else if("updateform".equals(actionName)) { action = new UpdateformAction(); }
-
๋ก๊ทธ์ธ ๋์ด ์ ์ฅ์ํ์ ์ธ์ ์ ๊ฐ์ ธ์ค๊ณ ๋ก๊ทธ์ธ๋์ด์๋ ์์ด๋์ ํค๊ฐ ์ถ์ถ, ํค๊ฐ์ผ๋ก ์ฐพ์ User๋ฅผ authUser์ธ์ ์ผ๋ก ์๋ก ์ ์ฅ
@Override public void execute(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // ์ ๊ทผ์ ์ด HttpSession session = request.getSession(); if(session == null || session.getAttribute("authUser") == null) { WebUtil.redirect(request, response, request.getContextPath()+"/main"); return; } UserVo authUser = (UserVo)session.getAttribute("authUser"); if(authUser == null) { WebUtil.redirect(request, response, request.getContextPath()); return; } Long userNo = authUser.getNo(); UserVo userVo = new UserDao().get(userNo); request.setAttribute("userVo", userVo); session.setAttribute("authUser", authUser); WebUtil.forward(request, response, "/WEB-INF/views/user/updateform.jsp"); }
-
updateform.jsp
์์<form action="/?a=update">
์ผ๋ก ์ ๋ฌ ๋ฐ์UserServlet
์์ ๋ค์UpdateAction
๊น์ง ํผ๊ฐ ์ ๋ฌ -
UserDao.update(vo)๋ฅผ ํตํด update ์ฟผ๋ฆฌ๋ฅผ ์คํ ํ
String sql = “update user set name=?, email=?, password=?, gender=? where no=?";
-
๋ณ๊ฒฝ๋ ๋๋ค์์ด ํ์๋๋๋ก ๋ณ๊ฒฝ๋ User์ ๋ณด๋ฅผ ์ธ์ ์ ๋ค์ ์ค์ด ๋ฉ์ธ ํ์ด์ง๋ก Redirect.
โ URL ์์ฒญ -> Servlet -> ActionFactory -> ํ๋ณ๋ Action() ์คํ -> Redirect
OR forward
๐ Session / Request
๐จ Request
Method | description |
---|---|
.getParamter(name) | name์ ์ ์ฅ๋์ด์๋ ๋ฌธ์์ด ๋ฐํ |
.getContextPath() | ํ๋ก์ ํธ Path |
๐ก Session
์๋ฒ์ชฝ์ ์ํ ์ ์ง๋ฅผ ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋๊ฒ
Method | description |
---|---|
.getAttribute(String name) | name์ ์ ์ฅ๋์ด์๋ Object ํ์ ์ผ๋ก ๋ฐํ ์์ ๊ฒฝ์ฐ NULL |
.setAttribute(String key , Object value) | name์ธ ์์ฑ์ value ์ค๋ธ์ ํธ ํ ๋น |
.invalidate() | ํ์ฌ ์์ฑ๋ ์ธ์ ์ ์ข ๋ฃ |
โช๏ธ Dispatcher / Redirect
๐ Dispatcher : forward(request, response)
ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ๋ฉด์ ์ ์กํ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์ ์งํ๋ค. (๊ฐ์ request๊ฐ์ฒด๋ฅผ ๋ณด์กดํ ์ํ๋ก ์ด๋)
ใฝ๏ธ Redirect : sendRedirect(url)
request๊ฐ์ฒด๊ฐ ์์ด์ง๋ฉด์ ์๋ก์ด ํ์ด์ง๋ก ์ด๋ํ๋ค.
โ๏ธ ๋งค๊ฐ๋ณ์๋ก ์ด๋ค ๊ฐ์ฒด๊ฐ ์ฌ ์ ์๋์ง ์๊ฐํ์