问题描述
我刚学java,在用myeclipse设计登录验证时,输入正确的账号和密码可以登录首页,当然输入错的账号或密码不可以登录到首页,但我直接复制首页的地址,也可以访问首页,这是怎么回事?神奇的问题!
解决方案
刚学习java的肯定得解释得稍微浅一点。简单地说吧,你直接输入首页地址是肯定可以访问的,如果你不用其他的控制的话。问题是怎么控制。一种简单的方法就是定义个过滤器,也就是写个java类, implements Filter类,在web.xml里配置哪些url需要先执行这个fitler,使得对url的访问先经过这个java类,然后在这个java类里,你就可以从session里取得用户信息,看看有没有登陆过,没有登陆,就通过redirect函数直接跳转到登陆页面http://www.iteye.com/topic/82530
解决方案二:
因为你进入首页的时候没有验证用户是否已经登录,你在程序里面添加一个检测条件,检测用户是否已经登录,没有登录就跳到登录页面就OK了。
解决方案三:
不加过滤器,不加判断,肯定能访问。建议把用户登录信息放到session中写个filter 判断 session中是否有 用户值 如果有跳到 正确的页面如果没有 在redirect 回登录页面
解决方案四:
你应该只是做了简单的登录跳转这个流程。所以直接输入首页地址的时候也是可以访问。一般做法是在的登录方法中,将当前用户信息存放在session中。这样在直接访问一个地址时,先验证下这个用户session是否存在(可以使用拦截器)。简单如下:login.jsp String username = ..String password = ..if(验证登录成功){session.setAtrribute("name",username);跳转到index.jsp,否则 error.jspindex.jsp先从session中取出name String name = (String) session.getAtrribute("name");验证下是不是为空,为空跳转到login.jsp,否则就打开index.jsp大概就这个意思。至于拦截器,你可以查下相关资料
解决方案五:
通过url当然可以访问,可以这样:当你登陆成功的时候,把用户信息保存在session中,再写一个filter判断上面的session对象是否存在来控制页面的跳转。