2011-01-24 2 views
1

URL/xxx/yyy/zzz를 클래스 XxxYyyZzz.java에 자동 매핑하는 서블릿 또는 필터를 작성하고 싶습니다.동적으로/xxx/yyy/zzz를 클래스 XxxYyyZzz.java에 매핑하는 서블릿 또는 필터

예를 들어 다음과 같은 URL은 다음과 같은 자바 클래스에 매핑됩니다

/comment/add --> CommentAdd.java 
/comment/delete --> CommentDelete.java 
/comment/view --> CommentView.java 
/search --> Search.java 
/viewposts --> Viewposts.java 

서블릿 또는 필터는 두 개의 별도의 요구 사항을 준수해야합니다 또한 :

  1. 서블릿 또는 필터가 있어야한다 "/ *"의 서블릿 매핑, 여러 서블릿 "/ comment/*", "/ search"등의 접두사를 사용하지 않습니다.

  2. /*의 서블릿 매핑은 JSP 처리를 오버라이드 (override)해서는 안된다. 의미, 클래스가 발견되지 않으면 JSP 페이지가 있는지 확인하고 실행해야합니다.

서블릿 API를 사용하여 어떻게 수행 할 수 있는지 알고 싶습니다. 해당 작업을 수행하는 모든 프레임 워크를 참조하지 마십시오. 코드 만 보여줘.

매핑되는 클래스는 명령 패턴을 따르거나 HttpServlet의 하위 클래스가 될 수 있습니다. 두 경우 모두 "execute (HttpServletRequest request 및 HttpServletResponse response)"와 같은 메소드가 있어야합니다. 이 메소드는 URL에 액세스하고 Java 클래스가 단일 서블릿 또는 필터를 사용하여 가능하면 알아 내면 자동으로 실행됩니다.

+0

관련 항목 : http://stackoverflow.com/questions/3541077/design-patterns-web-based-applications/ – BalusC

답변

2

내가 무슨 뜻인지 잘 모르겠다. 내가 한 경우 :

"/"에 매핑 된 단일 서블릿을 작성하면 모든 것이 얻어 지므로 특별한 것은 필요 없습니다. PATH_INFO를 파싱합니다 (Java에서 호출되는 방식을 모르는 경우). Class.forName을 사용하거나 미리 채워진 Map을 사용하고 해당 메소드를 호출합니다.

+0

['HttpServletRequest # getPathInfo()'] (http://download.oracle.com/javaee/) 6/api/javax/servlet/http/HttpServletRequest.html # getPathInfo % 28 % 29)입니다. – BalusC

+0

예, 서블릿에 대한 web.xml 구성과 매핑되지 않은 클래스를 JSP 페이지로 라우팅하는 방법을 처리해야합니다. –

+0

지금은 답이 맞지만 여전히 서블릿을/*에 매핑하고 JSP를 처리 할 수 ​​있어야합니다. 나는이 질문에 다른 질문을 할 것이다. –

관련 문제