一个jsp网站(用struts框架),只能从登录界面进去,若没有登录就跳转到登录界面,
比如输入一个网址,但它不会打开这个页面,而是自动跳转到登录界面,这要在什么地方设置?
如果用session的话,那岂不是很多页面都得去判断,
有没有其它办法,或是要在什么地方进行全局设置?谢谢先!

解决方案 »

  1.   

    可以写在top.jsp中,每个页面 include 就OK了
      

  2.   

    加一个filter~在登录的时候吧用户名、密码放到session里;
    在filter里面判断session,
    如果符合要求,就让通过,
    否则就跳转到登陆页面~~
      

  3.   

    可以考虑用spring的acegi,用于权限判断的,对程序没有侵入,只需要写配置文件就可以了。
      

  4.   

    也可以这样写
    在你的javaBean里定义一个boolean islong=false;变量
    然后在得到他的setIslong();isIslong();
    在你的登陆处理页面或Servlet里这样写
    String ID=request.getParameter("ID");
      String password=request.getParameter("password");
      javaBean aa=new javaBean();//javaBean的对象
      Connection con=null;
      java.sql.Statement stat=null;
      java.sql.ResultSet res=null;
      try{
      aa.setIslong(false);//必须初始化
      System.out.print(aa.isIslong());
      con=new DBCon().getCon();
      stat=con.createStatement();
      res=stat.executeQuery("select * from zhuce1 where ID='"+ID+"' and password='"+password+"'");
      if(res.next()){
        aa.setIslong(true);
           response.sendRedirect("houtaid.jsp");//成功
     }else{
     response.sendRedirect("houtais.jsp");不成功;
     }
    }catch(Exception e){
    e.printStackTrace();
    }finally{
     con.close();
    System.out.print("数据库关闭");
    }然后在你的每个页面在这样写;
    <jsp:useBean id="aa" class="MyBean" scope="session">
    </jsp:useBean>
    <%  
        if(aa.isIslong()==false){
         response.sendRedirect("houtais.jsp");
        }
    %>
    就OK了
      

  5.   

    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.UnavailableException;
    import javax.servlet.HttpSession;public class SessionValidateFilter implements Filter {
        public void destroy() { }
        public void doFilter(ServletRequest request, ServletResponse response,
                             FilterChain chain) throws IOException, ServletException {
            HttpSession session = request.getSession();
            if ((session == null) || (session.getAttribute("username") != null)) {
                response.sendRedirect("login.jsp");
                return;
            }
            chain.doFilter(request, response);
        }
        public void init(FilterConfig filterConfig) throws ServletException { }}
    web.xml中对过滤器的配置
    <filter>
        <filter-name>SessionValidateFilter</filter-name>
        <filter-class>SessionValidateFilter</filter-class>
    </filter><filter-mapping>
        <filter-name>SessionValidateFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>我用记事本临时写的,没调试,大概就是这意思了。