Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- while문
- 요구사항정의서
- Break
- Forwarding
- 다형성 #부모타입 #자식타입
- 매핑 #
- Dispatcher
- POST방식
- CONTINUE
- Servlet
- https://www.inflearn.com/course/lecture?courseslug=%ea%b9%80%ec%98%81%ed%95%9c%ec%9d%98-%ec%8b%a4%ec%a0%84-%ec%9e%90%eb%b0%94-%ea%b8%b0%eb%b3%b8%ed%8e%b8&unitid=194690
- https://www.inflearn.com/course/lecture?courseslug=%ea%b9%80%ec%98%81%ed%95%9c%ec%9d%98-%ec%8b%a4%ec%a0%84-%ec%9e%90%eb%b0%94-%ea%b8%b0%eb%b3%b8%ed%8e%b8&unitid=194709&category=questiondetail&tab=community&q=1314387
- 피그마
- GET방식
- https://www.inflearn.com/course/lecture?courseslug=%ea%b9%80%ec%98%81%ed%95%9c%ec%9d%98-%ec%8b%a4%ec%a0%84-%ec%9e%90%eb%b0%94-%ea%b8%b0%eb%b3%b8%ed%8e%b8&unitid=194711
- JSON형식의 response
- 한글깨짐
- Spring MVC
- xml
- 톰캣
- sendRedirect
- WAS
- Request
- webserver #WAS #ServerApp
- 화면정의서
- 김영한
Archives
- Today
- Total
Step it up now
Front Controller 본문
-----사진.
//".gd"로 끝나는 URL에 대한 요청을 처리한다
//필요한 패키지, 클래스가 import되어 있다
@WebServlet("*.gd")
public class FrontMVC extends HttpServlet {
Logger logger = LoggerFactory.getLogger(FrontMVC.class);
private static final long serialVersionUID = 1L;
protected void doService(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
//요청 URI를 가져오고 logging
String uri = req.getRequestURI(); // => /notice/noticeInsert.gd
logger.info(uri);
//컨텍스트 경로를 얻어와 URI에서 컨텍스트 경로를 제외한 부분을 명령어로 가져옴
String context = req.getContextPath();// /
String command = uri.substring(context.length()+1);//-> notice/noticeInsert.gd
//뒤에 의미없는 확장자 gd를 잘라내기
int end = command.lastIndexOf(".");//점이 있는 위치정보를 가져온다
// "/"를 구분자로 사용하여 배열로 나눔
command = command.substring(0,end);//-> notice/noticeInsert까지만 가져온다. .gd는 빼고서....
String upmu[] = null;
upmu = command.split("/");
for(String name:upmu) {
logger.info(name);
}
ActionForward af = null;
//ActionForward 객체를 선언하고, NoticeController 객체를 생성
NoticeController nc = new NoticeController();
////////////////////////[[ 어떤 컨트롤러를 태울것인가? ]]/////////////////////////
//이 지점은 내려가는 방향이다
if("notice".equals(upmu[0])) {
req.setAttribute("upmu",upmu);
af = nc.execute(req, res);//NoticeController클래스로 건너감 - upmu[1]-메소드이름이니까...
}
//이 지점은 java와 오라클 서버를 경유한 뒤 시점이다.
if(af !=null) {
if(af.isRedirect()) {
res.sendRedirect(af.getPath());
}
else{
RequestDispatcher view = req.getRequestDispatcher(af.getPath());
view.forward(req, res);
}
}/////////// end of if - 응답페이지 호출하기 - 포워드
//
else if("member".equals(upmu[0])) {
}
else if("lecture".equals(upmu[0])) {
}
//////////////////////[[ 컨트롤을 타고 난 뒤에는? ]]///////////////////////
//해당 업무에 대응하는 컨트롤러에서 결정된 페이지 이름을 받아온다
//위에서 결정된 true 혹은 false값에 따라 sendRedirect와 forward를 통해
//응답페이지를 호출해준다. - 이것이 FrontMVC의 역할
//////////////////////////////////////////////////////////////////
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
doService(req,res);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
doService(req,res);
}
}
'수업 > servlet, JSP' 카테고리의 다른 글
POST 방식 한글 깨질 때 (0) | 2023.12.12 |
---|---|
sendRedirect (0) | 2023.12.06 |
req/res3) forwarding, request (1) | 2023.12.05 |
req/res2) Redirect (1) | 2023.12.05 |
req/res1) 클라이언트 - 서블릿 (1) | 2023.12.05 |