我想编写一个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或过滤器必须符合两个额外要求:
servlet或过滤器应该有一个servlet映射“/ *”,我不想要一个带有几个servlet的前缀“/ comment / *”,“/ search”等等。
可能很难,但是使用/ *的servlet映射不应该允许它覆盖JSP处理。意思是,如果找不到类,则应该检查jsp页面是否存在并运行它。
我想知道如何使用Servlet API完成此操作。请不要将我推荐给任何完成这项工作的框架。只需告诉我代码。
映射到的类将遵循命令模式,或者可以是HttpServlet的子类。在这两种情况下,都应该存在一种方法,如“execute(HttpServletRequest request,和HttpServletResponse response)”。一旦访问了URL,就会自动执行此方法,并且可能使用单个servlet或过滤器来计算java类。
答案 0 :(得分:2)
我不确定,如果我明白你的意思。如果我做了:
你不需要什么特别的,写一个映射到“/”的Servlet,所以它可以获得一切。解析PATH_INFO(现在不知道如何在Java中调用它),使用Class.forName(或使用预先填充的Map),并调用其方法执行。
答案 1 :(得分:0)
这是一个可能对您有帮助的http://www.tuckey.org/urlrewrite/过滤器实现。看看这个。我自己没有用过它。
答案 2 :(得分:0)
您可以将Stripes framework与其默认NameBasedActionResolver config一起使用。