보통은 한 컨트롤러는 한 서블릿에 대한 로직을 처리하는데
가령 A페이지에서 B페이지로 이동 후, B페이지에서 서브메뉴와같은 페이지간 이동이 생긴다면
컨트롤러가 여러개가 있어야할까? 라는 생각에 5가지 서브메뉴에 대한 로직을 처리하는 방법을 고안해보았다.
필자가 구축중인 웹 사이트를 기준으로 설명한다.
향수에 대한 커뮤니티 사이트이다.
이와 같이,큰 3가지의 헤더 메뉴가있고,
그 아래에 5가지의 서브 메뉴가 있고
한 가지의 jsp 파일에서 5가지 서브메뉴에 대한 로직을 전부 처리한다.
위와같이 하나의 매핑에 파라미터값만 다른 값을 준다.
이렇게 되면 사용자가 전달한 값에 따라서 함수를 실행하고 (지금은 함수가 5개지만 함수도 1개로 인자값만 바꿔서 1개로 사용이 가능하다.)
list라는 jsp로 포워딩을 해준다.
그러면 jsp파일에도 인덱스 > list로 이동할 때 처럼, 서브메뉴에 똑같이 하이퍼링크를 달아주면 된다.
이렇게 되면 최초에
인덱스 > 리스트가 되고
리스트에서 다시 서브메뉴에 대한 요청이 list로 매핑된 컨트롤러로 이동한다.
그렇게 되면 위 코드와같이 다시파라미터를 비교해서 그에 맞는 함수를 실행한다.
메인 인덱스 페이지 ---> 리스트
리스트 --> 리스트 ---> 리스트 의 무한 반복인 셈이고 사용자가 다른 탭을 보고싶을 경우 위의 큰 3개의 해더를 통해 이동하거나
로고를 클릭하여 다시 메인 홈페이지로 이동이 가능하다.
이렇게 여러가지 요청을 1가지 컨트롤러 , 1가지의 서블릿으로 처리하는 방법이었다.
'Java' 카테고리의 다른 글
EL의 두 가지 표기방법 (0) | 2020.06.14 |
---|---|
JSP] JSP내장객체 (저장소) (0) | 2020.06.09 |
JSTL] JSP에서 숫자 1씩 증가하기 (0) | 2020.06.05 |
No operations allowed after connection closed (0) | 2020.06.02 |
Could not publish server configuration for Tomcat v9.0 Server at localhost.Multiple Contexts have a path of "/". (0) | 2020.06.01 |
댓글