코딩항해기
[풀이/JSP] 간단한 쇼핑몰 프로그램 풀이코드 분석 본문
해당 과제 답안 코드를 보고 부족한 부분을 정리하고 공부할 예정이다.
풀이로 주신 코드는 Contoller 단일 버전이기 때문에 그 부분을 예습한다는 느낌으로 가볍게 보면 좋을 것 같다.
Controller 요청값 구분
String action=request.getParameter("action");
System.out.println("action : "+action);
if(action.equals("AA")){
pageContext.forward("/day029/a.jsp");
}
단일 Cotroller를 사용하면 어떻게 구분하는지 궁금했는데, action이라는 요청값을 받아와 if문 분기를 통해 다른 기능을 실행하는 것을 확인 할 수 있었다.
그럼 이 요청은 어떻게 넘어 오는 걸까...?
<form action="controller.jsp" method="POST">
<input type="hidden" name="action" value="JOIN">
아이디 <input type="text" name="mid" required> <br>
비밀번호 <input type="password" name="password" required> <br>
이름 <input type="text" name="name" required> <br>
<input type="submit" value="회원가입"> <br>
</form>
답은 hidden 속성의 input 태그였다. Condition값을 set해주듯 input에 값을 담아 같이 넘겨 분기를 나누는 방식인 것 같다.
<form action="controller.jsp" method="GET">
<input type="hidden" name="action" value="MAIN">
카테고리 <select name="searchKeyword">
<option value="NAME">상품명</option>
<option value="SELLER">판매자 이름</option>
</select>
<input type="text" name="searchContent" placeholder="검색어를 입력하세요.">
<input type="submit" value="검색하기">
</form>
다른 페이지 코드를 확인해도 hidden 속성의 input 태그가 있는 것을 확인 할 수 있다.
그럼 단순 컨트롤러끼리의 전환의 경우에는 input태그를 사용할 수 없는데... 이 부분을 확인해보자.
확인할 코드가 있는 곳은 index.jsp인데 index에서는 컨트롤러를 통해 메인을 띄울 수 있게 하는 역할 밖에 하지 않는다.
따로 사용자가 요청을 보내지 않아도 서버에서 이동시켜야하는 부분이라 input 태그 사용이 불가하다.
궁금증을 해결하기 딱 좋은 jsp가 될 것 같아 확인해보면,
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
response.sendRedirect("controller.jsp?action=MAIN");
%>
url에 action 값을 담아 컨트롤러로 보내고 있다. 그럼 컨트롤러에서 받은 값으로 분기를 나누어 해당하는 페이지를 띄우는 방식이었다. a 태그의 href 속성도 같은 방식으로 이루어진다.
<a href='controller.jsp?action=MAIN'>메인으로 돌아가기</a>
<a href="controller.jsp?action=LOGOUT">로그아웃</a>
<a href="controller.jsp?action=MYPAGE">마이페이지</a>
<a href="controller.jsp?action=CART">장바구니</a>
모든 페이지 전환은 Controller로 action값을 가지고 이동하면 Controller가 if문에 따라 필요한 요청값과 함께 해당하는 페이지로 보내주는 방식이다.
Controller가 분리되어 있을 때보다 응집도가 훨씬 올라갔고 파일도 간결할 것을 확인할 수 있었다.
월요일에 풀이 수업 듣고, Controller를 취합하여 한 파일로 만드는 연습을 해야겠다.
'problem solving > 과제&실습 코딩' 카테고리의 다른 글
[실습/JSP] 이전 쇼핑몰 프로그램에 JSTL, 커스텀 태그 적용하기 (0) | 2024.08.14 |
---|---|
[실습/JSP] 이전 쇼핑몰 프로그램에 C 통합, EL식 더하기 (0) | 2024.08.12 |
[과제/JSP] 간단한 쇼핑몰 프로그램 구현하기 (Controller 분할버전) (0) | 2024.08.11 |
[실습/JSP] JSP 로그인 회원가입 연습하기 (1) | 2024.08.08 |
[실습/JSP] 장바구니 프로그램 만들기 (+풀이 0807) (0) | 2024.08.07 |