2011-01-24 103 views
1

我想寫一個servlet或過濾器,自動將網址/ XXX/YYY/ZZZ類XxxYyyZzz.java映射。一個servlet或過濾器/ XXX/YYY/ZZZ動態映射到類XxxYyyZzz.java

例如以下URL將映射到下面的Java類:

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

此外servlet或過濾器必須符合兩個額外要求:

  1. servlet或過濾器應該有「/ *」的servlet映射,我不想要帶有幾個servlet的前綴「/ comment/*」,「/ search」等。

  2. 也許很難,但有/ *的servlet映射不應該允許它覆蓋JSP處理。意思是,如果找不到類,它應該檢查一個jsp頁是否存在並運行。

我想知道如何使用Servlet API完成此操作。請不要將任何框架轉交給我。給我看看代碼。

映射到追隨指令圖案或可以是的HttpServlet的一個子類的類。在這兩種情況下,都應該存在一個方法,如「執行(HttpServletRequest請求和HttpServletResponse響應)」。一旦訪問URL並且可能使用單個servlet或過濾器計算出java類,該方法將自動執行。

+0

相關:http://stackoverflow.com/questions/3541077/design-patterns-web-based-applications/ – BalusC 2011-01-24 22:39:31

回答

2

我不知道,如果我得到你的意思。如果我做:

你需要什麼特別的,寫映射爲「/」單一的Servlet,所以它得到的一切。解析PATH_INFO(現在不知道它是如何在Java中調用的),使用Class.forName(或使用預先填充的Map),並調用它的方法execute。

+0

[`HttpServletRequest#getPathInfo()`](http://download.oracle.com/javaee/ 6/api/javax/servlet/http/HttpServletRequest.html#getPathInfo%28%29),它是。 – BalusC 2011-01-24 22:40:03