1.
V에서 V로 가는 흐름은 XXX
반드시,
V >> C >> V
의 흐름 이어야 한다.
왜 그럴까 ?
지금은 공부 단계라,
V에서 V로 바로 가더라도 전송되는 데이터 자체가 없을 수 있는데,
실무에서는 V에서 다음 페이지로 이동할 때,
무조건 그냥 데이터 전송이 있다고 보면 된다.
아주 작은 데이터라도 무조건 데이터를 전송 할 수 밖에 없다.
그래서, 데이터 전송이 이루어 지기에,
V >> V가 아닌,
V >> C >> V 이다.
2.
V에서 C로 데이터를 전송 할 때,
데이터 전송도 전송이지만,
제일 중요한건, Controller 에서 어떤 기능을 수행 할건지를
구분 하기 위해서 필요한 action 값을 꼭 보내 줘야 한다.
그래야지, action 값을 받고, 어떤 기능을 수행 할지 구분을 할 수 있다.
3.
Controller 페이지 에서 반드시 이 코드가 상단에 배치 되어 있어야 한다.
<% String action = request.getParameter("action"); %>
action 매개변수 (파라미터) 의 값을 받아와서, String action에 넣어야지,
해당하는 기능을 C가 수행 할 수 있기에,
우선적으로, request 주체가 get 을 해야 한다.
4.
로그를 잘 활용 하기.
앞으로 계속 해서, 로그를 활용 해야 한다.
매우 매우 로그는 중요 하기에, 많이 찍어보고, 로그를 많이 사용 하자.
이런식으로 찍으면 된다.
System.out.println 은 이클립스의 console 창에 뜨는 로그 이다.
만약에, 웹 페이지 에서 로그를 확인 하고 싶다면,
<script> 태그 내부에, out.println(); 으로 사용 하면,
웹 브라우저 에서 f12 를 눌러서 콘솔에서 로그를 확인 할 수 있다.
5.
로그 찍기 개념의 연장선 으로,
★★★★★★★ 원인 파악 하기 ★★★★★★★
에러의 위치.
에러의 원인.
데이터의 현재 상태.
원하는 데이터는 어떤 형태 인지 ?
이렇게 위의 4가지는 알고, 도움을 요청 하는것 이랑, 모르고 요청 하는것 이랑은 완전 다르겠지 ?
6.
예시)
ArrayList<BoardVO> datas = bDAO.selectAll(null);
request.setAttribute("datas", datas);
request.getRequestDispatcher("b_main.jsp").forward(request, response);
해서, forward로 데이터를 해당 페이지로 전송 시켜 줄때,
request : 요청 내장 객체.
response : 응답 내장 객체.
forward()의 인자로 위의 두개를 넣어줘야 한다. 왜 ? forward()는 그냥 저 두개가 꼭 필요 하기 때문에.
문법이다.
request.getRequestDispatcher("").forward(arg0, arg1);
7.
else { // 사용자로부터 이상한 값이 들어오면 에러를 방지 하기 위한 코드 이다.
out.println("<script>alert('
action 파라미터의 값이 유효 하지 않습니다 ..');history.go(-1);</script>");
}
V 에서 C에게 유효 하지 않는 action 값을 보내줬을 때,
에러를 방지 하기 위한 코드 이다.
사실, Controller 페이지는 alert('') 도 있으면 안되지만, 연습이라 일단 이렇게 처리 했다.
8.
DB를 꼭 들어가서 데이터를 확인 해야 하는 상황이 아니라면,
V 단위 에서 (프론트 단위) 데이터를 비교 하는 식으로 처리 하면 좋을듯 하다.
DB에 들어가는 행위 자체가, 서버 비용이 들어가기에..
메모..
'Front-end (국비) > 메모' 카테고리의 다른 글
커스텀 태그로 View 모듈화 하기 (0) | 2023.07.05 |
---|---|
프론트 엔드 특징 메모 (0) | 2023.07.04 |
23.06.30 메모 2 (JSP_MVC 패턴으로) (0) | 2023.07.01 |
23.06.30 메모 (JSP_MVC 패턴으로) (0) | 2023.06.30 |
메모 (0) | 2023.06.28 |