就是一个LOGIN.JSP进行登陆验证,成功后显示数据SHOW.JSP.如何防止直接进入SHOW.JSP我现在的方法是在LOGIN.JSP验证通过往SESSION中放属性.
然后在SHOW.JSP再SESSION中取出来,如果没有则没有成功登陆.FORWARD到LOGIN.JSP..这样是不是很麻烦啊?大家有什么技巧啊,在项目中怎么做的啊,这很常用啊..感谢.

解决方案 »

  1.   

    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
    import com.ydzj.pojo.*;public class Filter1 implements Filter {
        String LOGIN_PAGE;
        protected FilterConfig filterConfig;
        public Filter1() {
            LOGIN_PAGE = "../index.jsp";
        }    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);
            try {
                //通过验证时在session中存的一个标志
                UserBean ub = (UserBean) session.getAttribute("userinfo");
                if (ub != null) {
                    filterchain.doFilter(servletrequest, servletresponse);
                } else {
                    response.sendRedirect(LOGIN_PAGE);
                    //System.out.println("被拦截一个未认证的请求");
                }
            } catch (Exception exception) {
                exception.printStackTrace();
            }
        }    public void setFilterConfig(FilterConfig filterconfig) {
            filterConfig = filterconfig;
        }    public void destroy() {
            filterConfig = null;
        }    public void init(FilterConfig filterconfig) throws ServletException {
            filterConfig = filterconfig;
        }
    }
      

  2.   

    在Struts中可以用<logic:present name = "loginUser" scope="session">标签,判断用语是否登录
      

  3.   

    http://www.programfan.com/article/showarticle.asp?id=1836
      

  4.   

    如果是纯JSP写的,那就只有在那个页面判断SESSION。如果要全局判断的话,就是楼上那位写的过滤器了
      

  5.   

    boy_wh520(烟在风中飘荡)  正解.
      

  6.   

    boy_wh520(烟在风中飘荡)  正解.
    我也是这么做的,不过有个问题也一直弄不懂,就是过滤器的设置范围的问题,应该怎么设置呢,要是设成任何文件都过滤,则login.jsp本身也过滤,则会陷入无限死循环中, 要是只过滤.jsp文件,还是不行,login.jsp还是被过滤,然后就是一直login的加载画面.....要是将login.jsp改名为login.html,则有点勉强,因为这似乎不是好办法.
      

  7.   

    楼上的,,我感觉可以试着在login.html中写入一些jsp:include你这样写试试,,,可否解决循环问题?
      

  8.   

    楼上的,,我感觉可以试着在login.html中写入一些jsp:include你这样写试试,,,可否解决循环问题?
      

  9.   

    楼上的,,我感觉可以试着在login.html中写入一些jsp:include你这样写试试,,,可否解决循环问题?