谁给个限制用户直接输入网址访问JSP页面的过滤器代码?不知道这个是什么思路?就是所有页面,除了主页,所有页面只能通过其他网页链接而来,如果直接在地址栏输入网址访问,则会返回到/user/relogin.jsp。我才接触filter,不懂,请给个这个代码,并附加说明,急用!!

解决方案 »

  1.   

    package cn.javatx;import java.io.IOException;import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    public class logFilter implements Filter {
    private ServletContext context;public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub
    context = arg0.getServletContext();
    }
    public void doFilter(ServletRequest arg0, ServletResponse arg1,
    FilterChain arg2) throws IOException, ServletException {context.log("[" + arg0.getRemoteHost() + "] request: " +((HttpServletRequest)arg0).getRequestURI());//这里获取了用户的主机以及请求的URL,按照您的要求在这里进行一个URL判断,进行一次跳转就可以了
    arg2.doFilter(arg0, arg1);
    context.log("[" + arg0.getRemoteHost() + "] done");
    }
    public void destroy() {
    context = null;
    }}
      

  2.   

    用过滤器过滤除登陆界面外的所有JSP
    当用户正常登陆后在session里放置一个值
    当用户访问其他页面时
    在filter里取出session里的值来判断是否正常登陆
    是 则正常往下执行
    不是 页面跳转
      

  3.   

    请问那个URL如何判断呢?是用哪两个进行判断呢?