webapp 하위에 login.jsp파일 생성
<input name = "mid">
<input name="password">
여기서 submit 버튼을 누르면 2개의 데이터가 Controller로 간다.
Controller에서는 넘어온 데이터를
String mid = request.getParameter("mid");
String password = request.getParameter("password");
를 통해서 처리를 하는데, 이 request는 new 하지 않았는데도 사용이 가능하다.
이는 request가 JSP 내장객체이기 때문이다.
받은 데이터를 selectOne해서 확인이 필요하다.
DTO = new DTO();
이때 DTO는 매 번 왔다갔다 하므로 쓸 때마다 new 해주는 것이 맞다.
DAO.selectOne(DTO);
인자를 DTO로 주는 이유는, 결합도를 낮춰 유지보수를 용이하게 하기 위해서다.
controller.jsp 파일 생성
모든 요청이 다 이곳으로 옴.
// java에서의 방식
if(action == 1){
출력
}
else if(action == 2){
판매
}
그리고 여기서 더 나아간 방식에서는
요청을 controller.jsp?action=login 으로 하고,
Controller에서는
String action = request.getParameter("action"); // 액션 추출
if(action.equals("login")){
로그인
}
위의 형식으로 코드가 작성되었다.
FrontController.java 파일 1개 생성 == 유일한 Servlet 파일
유일한 이유는? 비동기는 Action으로 치기 때문에.
서블릿 파일로 바뀌면서 요청 방식도 .do로 바뀜.
요청 >> login.do
if(action.equals("/login.do")){
로그인
}
Action 파라미터가 제거되기 때문에 요청도 가벼워지고, 파라미터 추출하는 과정도 제거되었다.
응답을 하기 위해서는 응답 방식이 필요하다.
1. 포워드 : 데이터 전달 o, ex) main.jsp로 'apple'에 '사과'라는 값을 저장
2. 리다이렉트 : 데이터 전달 x
응답 방식의 구분은 데이터 여부로만 구분한다.
main.jsp
${apple}
apple을 보려면 request, session, application에 저장을 했어야 한다.
GPT는 이를 ${session.apple} << 이와 같이 알려주는데, 실무에서는 굳이 이를 적지 않는다.
간혹
${param.apple} 이런 코드가 있는데, 이건 이전 페이지가 view단이라는 의미이다! (파라미터에서 받아오니까)
이건 view - view 코드여서 실습코드일 가능성이 높고, 이런 코드는 존재하면 안 된다!
'WEB > 백' 카테고리의 다른 글
[Backend] REST와 RESTful API (1) | 2024.12.18 |
---|---|
[WEB] 횡단처리와 종단처리 (0) | 2024.10.01 |
[WEB] 필터 (0) | 2024.09.06 |
[WEB] alert (0) | 2024.09.06 |
[WEB] 리스너 (0) | 2024.09.04 |