2011-01-24 107 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