음 .. 내 개인적인 생각으로 작성을 하자면
webapp 안에 css, js, scc 등 잘 갖춰있다는 가정 하에 controller, frontcontroller을 작성하자면
1) com.heeyeon.model 안에
- Dao, Bean이 올바르게 잘 써져있기
2) com.heeyeon.controller 안에
AbstractController 인터페이스 구현하기
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package com.heeyeon.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public interface AbstractController {
public ModelAndView requestHandler(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException;
}
|
cs |
3) com.heeyeon.frontcontroller 안에
- HandleMapping 해주면서 controller 패키지 안에 있는 해당 클래스들 작성해주기.
ex )
- (해당파일) FrontController 작성하기
*.do - > do로 끝나는 파일에 대해서 얻어오기 ? 받아오기 ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
package com.heeyeon.frontcontroller;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.heeyeon.controller.AbstractController;
import com.heeyeon.controller.ModelAndView;
@WebServlet("*.do")
public class HublotFrontController extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String context = request.getContextPath();
String uri = request.getRequestURI();
String command = uri.substring(context.length());
HandlerMapping mappings = new HandlerMapping();
ModelAndView mav = null;
AbstractController controller = null;
controller = mappings.getController(command);
mav = controller.requestHandler(request, response);
String nextPage = mav.getNextPage();
Map<String,Object> model = mav.getModel();
for(String key : model.keySet()) {
request.setAttribute(key, model.get(key));
}
String alertMsg = (String) model.get("alertMsg");
String backMsg = (String) model.get("backMsg");
PrintWriter out = response.getWriter();
if(alertMsg!=null) {
out.println("<script>");
out.println("loaction.href='"+nextPage+"';");
out.println("</script>");
} else if(backMsg!=null) {
out.println("<script>");
out.println("history.back();");
out.println("</script>");
} else {
if(nextPage.contains("redirect")) {
response.sendRedirect(nextPage.split(":")[1]);
} else {
RequestDispatcher dispatcher = request.getRequestDispatcher(nextPage);
dispatcher.forward(request, response);
}
}
}
}
|
cs |
이제 이렇게 기본적 ? 이랄까 무튼 내 개인적으로 이 순서대로 작성하면 된다고 생각한다.
다음엔 완성된 파일로 와보겠음 ~
'programming > jsp' 카테고리의 다른 글
JSP - DAO, BEAN 기본적 구현 (0) | 2021.05.25 |
---|---|
jsp - mvc 패턴 적용 게시판 작성하기 체크 (0) | 2021.05.17 |
jsp - mvc 패턴 적용 게시판 작성하기 (0) | 2021.05.17 |
mvc패턴 (0) | 2021.05.17 |
JSP - 작성자, 제목, 내용과 일치하는 항목 찾기 (2) (0) | 2021.05.17 |