一直反复执行的结果是什么?一直输出System.out.println(request.getRemoteAddr()+request.getRemoteHost())这个?

解决方案 »

  1.   

      
    改了一样呀一直在重复执行
    Login info = (Login) ((HttpServletRequest) request).getSession()
    .getAttribute("userinfo");
    System.out.println(request.getRemoteAddr()+request.getRemoteHost());

    try {
    if (info != null) {
    filter.doFilter(request, response);
    } else {
    response.setContentType("text/html;charset=utf-8");
    ((HttpServletResponse) response).sendRedirect("/kqgl/login.jsp");
    }
    } catch (Exception e) {
    System.out.println(e);
    // TODO: handle exception
    }这一段
      

  2.   

    把请求的url打出来不就知道了目测是在请求什么css拉js拉icon之类的东西
      

  3.   

    怎么打印 我用request.getRequestedURI()提示我没有这个方法
      

  4.   

    <filter-mapping>
            <filter-name>loginFilter</filter-name>
            <url-pattern>/login/*</url-pattern>
        </filter-mapping>改为<filter-mapping>
            <filter-name>loginFilter</filter-name>
            <url-pattern>/login/</url-pattern>
        </filter-mapping>
      

  5.   

    反复的执行 你看看你这里执行这个过滤器时 
     filter.doFilter(request, response); 
    这时候的url是什么
    不会又发送到类似与/login/##这样的地址去了吧 
      

  6.   

    你登陆成功就进入这个判断吧:if (info != null) {
                    filter.doFilter(request, response);
    这样不就一直会用这个过滤器了?
      

  7.   

    个人认为Struts2为我们提供了拦截器、何必这么复杂、action继承一个自定义的拦截器不就行了
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "struts-2.0.dtd">
    <struts>
    <package name="struts-interceptor" extends="struts-default">
    <interceptors>
    <interceptor name="l" class="com.cn.utils.Fileter"><!--自定义拦截器路径-->
    </interceptor>
    <interceptor-stack name="m">
    <interceptor-ref name="defaultStack"></interceptor-ref>
    <interceptor-ref name="l"></interceptor-ref>
    </interceptor-stack>
    </interceptors>
    <default-interceptor-ref name="m"/>
    <global-results>
    <result name="loginover" type="redirect">/login.jsp</result>
    </global-results>
    </package> <package name="default" extends="struts-interceptor">
    <action name="useraction" class="com.cn.action.UserAction">
    <result>/list.jsp</result>
    <result name="pagelist">/pagelist.jsp</result>
    <result name="list" type="redirect">/useraction!list.action</result>
    <result name="up">/up.jsp</result>
    <result name="login">/login.jsp</result>
    <result name="adduser">/add.jsp</result>
    </action>
    </package>
    <package name="default-login" extends="struts-default">
    <action name="useralogin" class="com.cn.action.UserAction">
    <result name="list" type="redirect">/useraction!list.action</result>
    <result name="login">/login.jsp</result>
    </action>
    </package>
    </struts>
      

  8.   

    这个每次请求肯定会 执行doFilter的   因为要判断是否登录    一直反复执行的结果是什么?一直输出System.out.println(request.getRemoteAddr()+request.getRemoteHost())这个?嗯  对 也不会跳转到本来超链接的页面另外 执行了doFilter  不会跳转到  本来超链接的页面   那么是跳转到了 登录页面吗??