java中的登陆验证问题可以有多种方式进行验证,通过拦截器功能完成,可以通过过滤器功能完成,也可以简单的代码在JSP页面中单独完成。
一,验证原理
下面看看JAVA中的验证关键步骤,一般我们用session变量来保存用户成功登录后的密码,为了防止用户把URL复制下来然后直接在浏览器地址栏中输入试图登录,即非登录访问,这个时候我们首先需要进行验证工作,主要是检测保存密码 session 是否存在,或者其是否等于预先设定的密码;session 变量时保存在服务器端,可以在前后有关联的跨页面间存在,在 session 不超时的情况下,可通过判断服务器端该变量是否存在来判断是否已经登录,存在则已经登录,不存在则没有登录;
这里先了解一个辅助问题:null 和空值的问题,这不同语言处理不完全相同;
(1)Java中,null我这里的指的是没有定义的,即根本就不存在,没有分配内存空间的情况,只是预先知道其数据类型,如 String a=null;
(2)而空值则是有数据类型的,实际存在的,分配了内存空间的,只不过内容为空而已,如:String a="";
那Java中如果用户没有成功登陆,那在服务器端指定名称的session变量是不存在的,所以这个时候指定名称的session变量需要跟null比较来进行判断是否已经登录了,
//推荐的验证方式
Object pwd=session.getAttribute("loginUserPwd");
if(pwd == null){
out.print("你还没有登录");
//...other code...
}