现在有个servlet
我希望它去匹配类似这样的地址/user1 /user2 /user3 /user4.
但是类似这样的就不要匹配/asdf/asdf /asdf/wf/234/4/sdf 等这样多级目录的. ..让它只匹配一级目录
另外有个servlet匹配/atme
还有个匹配/comments
这该怎么弄呢.
我希望它去匹配类似这样的地址/user1 /user2 /user3 /user4.
但是类似这样的就不要匹配/asdf/asdf /asdf/wf/234/4/sdf 等这样多级目录的. ..让它只匹配一级目录
另外有个servlet匹配/atme
还有个匹配/comments
这该怎么弄呢.
也就是说 怎么样让servlet只匹配一级目录 .
我想过写个servlet(匹配2级以上目录)去匹配/*/* 但这样不行.
<servlet-name>UserHome</>
<url>/*</>这样拦截下所有的路径 然后requesturi截取字符串进行判断.
如果用户访问的是/user1则会显示user1的主页.但现在有个问题
如果用户访问的是/ 我希望用户看到默认主页.
我写的
<servlet-name>default</>
<url>/</>
这样不能生效啊
访问/ 还是会定位到UserHome这个servlet.
<serlvet-name>UserHome</>
<url>/*</>这样写以后
网站下所有的页面都访问不了了
都被UserHome拦截了...
怎么解决 ?..
我现在是希望
AtmeServlet 去匹配 /atme
CommentsServlet 去匹配 /comments
然后 UserHomepage 去匹配 /* 剩余所有的. 但是不匹配类似/asdf/asdf3这样的多级目录.现在有个问题
我这样写以后
<servletname>userhomepage</>
<url>/*</>
导致站点下所有的页面(html,jsp)都无法访问..全被userhomepage拦截.
模糊匹配又分前置匹配和后置匹配
一个匹配配置项一次仅能配置一个匹配符
如需多重匹配,需要配置多次
我现在弄的就是过滤器
但现在问题又出去了.
因为像atme comments login..等等这些都需要转到特定的servlet进行处理
然后其实的就会转到同一个servlet进行处理.
就像这样
/login 登录
/logout 退出
/atme 关于我的
/comments 评论...
....等等 有好多..
然后剩下
比如
/user1 /user2 /user3 ...这些 都是用户的页面 这些都是用一个servlet进行处理....
这些名称都是不可预测的.所以我现在弄的是
如果是login 则跳到LoinServlet
如果是logout 则跳到LogoutServlet....
如果都不是 则跳到UserServlet..
但问题是 这些的特殊路径太多了 不可能一个个去判断 ....
你也不必为匹配符纠结了,我们转换一个思维
理由welcome-file来做,在每个要匹配的目录下面放置一个index.jsp,里面什么都不做,就做一个请求的转发,具体转发到哪个servlet由你自己决定吧,这样的话,每增加一个,就在对应目录下复制一份