본문 바로가기
Java

JSP] 한 컨트롤러에서 여러 서블릿 처리하기

by 완기 2020. 6. 5.
728x90
반응형

보통은 한 컨트롤러는 한 서블릿에 대한 로직을 처리하는데 

 

가령 A페이지에서 B페이지로 이동 후, B페이지에서 서브메뉴와같은 페이지간 이동이 생긴다면

 

컨트롤러가 여러개가 있어야할까? 라는 생각에 5가지 서브메뉴에 대한 로직을 처리하는 방법을 고안해보았다.

 

필자가 구축중인 웹 사이트를 기준으로 설명한다.

 

 

향수에 대한 커뮤니티 사이트이다. 

이와 같이,큰 3가지의 헤더 메뉴가있고,

그 아래에 5가지의 서브 메뉴가 있고  

한 가지의 jsp 파일에서 5가지 서브메뉴에 대한 로직을 전부 처리한다.

Index

위와같이 하나의 매핑에 파라미터값만 다른 값을 준다.

 

 

 

이렇게 되면 사용자가 전달한 값에 따라서 함수를 실행하고 (지금은 함수가 5개지만 함수도 1개로 인자값만 바꿔서 1개로 사용이 가능하다.)

 

 

 

 

list라는 jsp로 포워딩을 해준다.

 

그러면 jsp파일에도 인덱스 > list로 이동할 때 처럼, 서브메뉴에 똑같이 하이퍼링크를 달아주면 된다.

 

 

list.jsp

이렇게 되면 최초에

 

인덱스 > 리스트가 되고 

 

리스트에서 다시 서브메뉴에 대한 요청이 list로 매핑된 컨트롤러로 이동한다.

 

그렇게 되면 위 코드와같이 다시파라미터를 비교해서 그에 맞는 함수를 실행한다.

 

 

메인 인덱스 페이지  ---> 리스트

 

리스트 --> 리스트 ---> 리스트 의 무한 반복인 셈이고 사용자가 다른 탭을 보고싶을 경우 위의 큰 3개의 해더를 통해 이동하거나

 

로고를 클릭하여 다시 메인 홈페이지로 이동이 가능하다.

 

이렇게 여러가지 요청을 1가지 컨트롤러 , 1가지의 서블릿으로 처리하는 방법이었다.

728x90
728x90

댓글