将/ xxx / yyy / zzz动态映射到类XxxYyyZzz.java的servlet或过滤器

时间:2011-01-24 21:36:12

标签: java jsp servlets servlet-filters

我想编写一个servlet或过滤器,自动将url / 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页面是否存在并运行它。

  3. 我想知道如何使用Servlet API完成此操作。请不要将我推荐给任何完成这项工作的框架。只需告诉我代码。

    映射到的类将遵循命令模式,或者可以是HttpServlet的子类。在这两种情况下,都应该存在一种方法,如“execute(HttpServletRequest request,和HttpServletResponse response)”。一旦访问了URL,就会自动执行此方法,并且可能使用单个servlet或过滤器来计算java类。

3 个答案:

答案 0 :(得分:2)

我不确定,如果我明白你的意思。如果我做了:

你不需要什么特别的,写一个映射到“/”的Servlet,所以它可以获得一切。解析PATH_INFO(现在不知道如何在Java中调用它),使用Class.forName(或使用预先填充的Map),并调用其方法执行。

答案 1 :(得分:0)

这是一个可能对您有帮助的http://www.tuckey.org/urlrewrite/过滤器实现。看看这个。我自己没有用过它。

答案 2 :(得分:0)

您可以将Stripes framework与其默认NameBasedActionResolver config一起使用。

相关问题