• 登陆验证表单原理


    22:25 2014/5/11

    javaweb中表单登陆验证:表单验证原理都一样,不过struts2提供了validate方法。 没有Form表单类的登陆都是简单的登陆

    1.通常把用户名密码为为不为空和用户名长度和密码长度写到Form表单类里通常叫做validate方法返回值为Map<String, String>类型 在LoginServlet里调用下就行,通常用webutils里的转换成bean方法得到Form类的对象,不用自己创建Form的实例更不用什么get/set那是stuts2的方式,要是不用Form类通常都是简单的校验不用校验用户名密码的空不空及长度,直接用request.getParameter("")方法得到表单的用户名和密码而不是通过webutils去封装表单的参数,简单校验不调用validate方法,不用封装了。

    2.验证用户为不为空在调用Form类的validate方法下面一步,虽然登陆要用户名和密码我们两个参数先都获取都往后台传,到service层就只用用户名(目的是在逻辑层校验用户为不为空)然后用用户名为参数去数据库找对应的用户,不管你用用户名找到一个还是多少个同样名字的用户最后返回到controller控制层都要一个用户,最好不要在dao层遍历得到的集合用户而是在业务层service曾,service层不应该有sql语句但是可以组织sql语句所需要的参数。没有Form类的这就算登陆验证的第一步,建议有Form类,看起来更规范。为空说明用户不存在,不为空将user设置到与对象中通常是request域然后转发。验证失败回到login页面,步骤二最好在service层校验严格MVC  /*   * 使用参数username查找User对象   * 判断user是否存在,如果不存在,说明登录用户名错误!// 也就是后台校验失败,(用户名错误)可以在控制层处理异常   * 如果存在,判断返回的user的password与登录password是否相同   * 如果不相同,说明登录密码错误   * 都相同了,返回user对象,表示成功!   */

    3.dao层要是查到空用户返回空的用户。

  • 相关阅读:
    深入理解JavaScript的闭包特性 如何给循环中的对象添加事件
    兼容低版本浏览器的getElementByClassName方法
    印象深刻的bug
    pyinstaller将python编写的打卡程序打包成exe
    自动化环境搭建遇到问题
    VS2010带不出System.Data.OracleClient这个引用的解决方案
    迭代与列表生成式、生成器
    Python函数
    Python基础
    python+Selenium 环境搭建
  • 原文地址:https://www.cnblogs.com/YingYue/p/3741901.html
Copyright © 2020-2023  润新知