有一个登录页面,用户名,密码输入框
点击登录后,后台判断,然后把用户的相应信息放到session中,以便开发过程中取得登录用户的相应信息.现在有如下问题:
当用户未登录,也就是session中没有用户的信息,用户在IE地址栏中输入相应的地址,要让他强制转到登录页面login.jsp.登录
但是怎么实现呢?
还有在真正的项目中,用户登录是怎么做的?怎样保证安全性的呢?
请高手们帮帮忙!!!
谢谢~在线等~!

解决方案 »

  1.   

    1.你把主页设成login.jsp不就可以了?在web.xml中配置
    2.当用户输入地址时,看看session中有没有保存用户信息,如果为null,那就<jsp:forward page="login.jsp">
      

  2.   

    加filter,
    即使去手动拼url,也会拦截下来而转到你设定的path,
      

  3.   

    写一个filter检查session,当遇到没有登陆的用户企图登陆时,那么forword到你报错的页面
      

  4.   

    简单一点就写一个filter,将用户所有的请求都过滤一次,在filter中判断用户是否登陆,不登陆就跳转到登陆页面,让其登陆。这样避免了每个页面或方法中都去判断有没有登陆,效率大大提高。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.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;public class AuthFilter implements Filter{ public void destroy() {
    // TODO Auto-generated method stub

    } public void doFilter(ServletRequest srq, ServletResponse srs,
    FilterChain fchain) throws IOException, ServletException {
    // TODO Auto-generated method stub
    HttpServletRequest request = (HttpServletRequest) srq;
    HttpServletResponse reponse = (HttpServletResponse) srs;
    HttpSession session = request.getSession();
    if(request.getSession().getAttribute("IsLogin") == null){
    return "Go to login.jsp";
    }
    fchain.doFilter(srq, srs);
    } public void init(FilterConfig filterConfig) throws ServletException {
    // TODO Auto-generated method stub
    }}
      

  5.   

    对,用filter挻好的.我用的是它.
      

  6.   

    最直接的方法就是在jsp中写
    <body>
      string username=(string)request.getsession("session中保存的用户名");
      if(username==null)
      {
        //请先登录
       跳转到login.jsp;
      }
      .....
    </body>
      

  7.   

    用struts2的拦截器也不错哦,可以强制要登录后才能进入主页面,否则会自动跳转到登录页面
    自定义一个拦截器,在struts.xml中配置一下就可以了
      

  8.   

    用过滤器是最理想的,无论地址栏输哪个URL都可以拦截,就样就不需要在每个JSP都判断是否登陆了。
      

  9.   

    可以在过滤器中进行判断,如果session为空,就跳到登录界面
      

  10.   

    可以先判断一下 看是否是从login.jsp跳转过来的 不是就forward("login.jsp");
    也可以在login.jsp中写一个隐藏表单域 在非login.jsp中要是读取不到就forward("login.jsp");
      

  11.   

    filter,
    需要的话,给数据库加安全性级别
      

  12.   

    将除了index.jsp之外的网页放在WEB-INF目录下 WEB-INF目录是加密的 在地址栏不能访问到该目录下的文件 很安全 不用考虑自己来加密~
    但程序中不能直接访问网页 要通过Action中的forward属性指定跳转路径