日期:2014-05-17  浏览次数:20831 次

登录Filter或者路径限制Filter
本人现在开发一个手机卖场,要货促销平台,项目接近尾声!但是遇到一个不小的麻烦了!
我的项目名字叫MobileWebOS,Jsp页面主要包括三大块:
1:登录(Login.jsp和error.jsp)
2:菜单页面(Menu.jsp)
3:功能页面(function/xxx.jsp)这个文件夹下面有N个页面
其中1和2在WEB-ROOT根目录下,3在function文件夹下
3里面的任何Jsp都是通过Servlet跳转的,不能直接用路径访问,访问就会有404
而1和2是可以是可以直接用路径访问的(http://hocalhost:8080/MobileWebOS/);
但是卖场的销售人员可能会在手机浏览器中图方便,用历史浏览记录直接去访问要货单,或者或者菜单页面.这样的后果是不堪设想的.
本人先想过把Menu.jsp放到WEB-INF下或者function下,但是这样以来就要写一个专门跳转的Servlet,而且直接用路径访问也会有404
所有的404都是我不想看到的,这样就只有用filter了,我写过一个过滤http://hocalhost:8080/MobileWebOS/Menu.jsp的Filter,但是麻烦来了,这么多的页面要的Filter太多了.
所以我想到了写一个登录的Filter,但是不知道为什么还是能直接用路径访问Menu.jsp;

说了这么多我想实现的是,无论用登录过滤器还是路径过滤器,不希望再有404出现,只有登录后才能获取一个卖场编号;
任何非法访问都重定向到Login.jsp;
希望前辈多多指点,最好帮我给个全代码的Filter,本人刚出江湖,大虾们多多指教,在下感激不尽!

------解决方案--------------------
给你个简单的,你参考下
web.xml中加入

XML code

<filter>
        <filter-name>UserLoginFilter</filter-name>
        <filter-class>com.liu.test.manager.UserLoginFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>UserLoginFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>