此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【yoyozhe】截止到2008-07-07 13:43:41的历史汇总数据(不包括此帖):
发帖的总数量:0                        发帖的总分数:0                        
结贴的总数量:0                        结贴的总分数:0                        
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:0                        未结的总分数:0                        
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

解决方案 »

  1.   


    HttpSession session = request.getSession(true); Object user = session.getAttribute("user"); if (user != null) {
    filterChain.doFilter(servletRequest, servletResponse);
    } else {
    logger.warn("用户未登陆,请先登陆!");
    String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() + request.getContextPath() + "/login.jsp";
    StringBuffer scriptString=new StringBuffer();
    scriptString.append("<script>\n\r");
    scriptString.append("self.top.location.href=\""+url+"\"\n\r");
    scriptString.append("</script>\n\r");
    response.getOutputStream().print(scriptString.toString());
    }
      

  2.   

    完整的登录验证过滤器代码
    import javax.servlet.Filter;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.FilterChain;
    import java.io.IOException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import org.apache.log4j.Logger;import com.gvninc.utils.StringUtils;/**
     * 登录验证过滤器<br>
     * Author:BluesLee<br>
     * CreateDate:2008-6-21<br>
     * Modifier:BluesLee<br>
     * ModifyDate:2008-6-21<br>
     * Version:1.0<br>
     * Copyright(c)2008 深蓝工作室<br>
     * All right reserved.<br>
     *
     */
    public class LoginRightFilter implements Filter {
    private Logger logger = Logger.getLogger(this.getClass()); /**
     * 未登陆时跳转目标页面
     */
    private static String FORWARD = "/login.jsp";
    /**
     * 登录验证过滤器初始化 <br>
     * Author:BluesLee<br>
     * CreateDate:2008-6-21<br>
     * Modifier:BluesLee<br>
     * ModifyDate:2008-6-21<br>
     * Version:1.0<br>
     *
     * @param filterConfig
     * @throws ServletException
     */
    public void init(FilterConfig filterConfig) throws ServletException {
    String forward = filterConfig.getInitParameter("forward");
    StringUtils util=new StringUtils();
    if (util.isNotNullStr(forward)) {
    LoginRightFilter.FORWARD = forward;
    }
    } /**
     * 登录验证过滤 <br>
     * Author:BluesLee<br>
     * CreateDate:2008-6-21<br>
     * Modifier:BluesLee<br>
     * ModifyDate:2008-6-21<br>
     * Version:1.0<br>
     *
     * @param servletRequest
     * @param servletResponse
     * @param filterChain
     * @throws IOException
     * @throws ServletException
     */
    public void doFilter(ServletRequest servletRequest,
    ServletResponse servletResponse, FilterChain filterChain)
    throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) servletRequest;
    HttpServletResponse response = (HttpServletResponse) servletResponse;
    HttpSession session = request.getSession(true); Object user = session.getAttribute("user"); if (user != null) {
    filterChain.doFilter(servletRequest, servletResponse);
    } else {
    logger.warn("用户未登陆,请先登陆!");
    String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() + request.getContextPath() + LoginRightFilter.FORWARD;
    StringBuffer scriptString=new StringBuffer();
    scriptString.append("<script>\n\r");
    scriptString.append("self.top.location.href=\""+url+"\"\n\r");
    scriptString.append("</script>\n\r");
    response.getOutputStream().print(scriptString.toString());
    }
    }
    public void destroy() {
    }
    }
      

  3.   

    按照你的写个简单的<%! String userStr; %> 
    <% 
        userStr=(String)session.getValue("MM_Username"); 
        if(userStr==null){ 
            String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() + request.getContextPath() + "/login.jsp";
                StringBuffer scriptString=new StringBuffer();
                scriptString.append("<script>\n\r");
                scriptString.append("self.top.location.href=\""+url+"\"\n\r");
                scriptString.append("</script>\n\r");
                out.write(scriptString.toString());
        }
      %> 
      

  4.   

    谢谢~~
    可以我替换了之后还是不行:(login页面都不显示了:(
      

  5.   

    麻烦不要死套代码,看看实现逻辑,你的login.jsp页面不会跟我的在同一目录下
    出错了,去看错误信息是什么再作调整照抄是不行地
      

  6.   

    用window.parent.location.href试试,window.top.location.href只是你框架上面部分进行跳转
      

  7.   

    login.jsp </head> 前面 加 <script>if(window.self != window.top){window.top.location.href="login.jsp";}  </script>