某登录功能

来源:互联网 发布:驾校预约考试软件 编辑:程序博客网 时间:2024/06/16 08:12

1. 登录


浏览器

输入账户和密码,JavaScript进行格式验证;
验证通过,点击Login按钮,使用Ajax技术发送数据;
服务器返回Json中有state变量,该变量标识成功与否。当state为1,表示成功,可以跳转到别的页面。


SpringMVC

浏览器访问路径为XXX/login.do,传递的参数有两个:adminCode和password,前端控制器接收。其根据映射处理器(可以用注解代替配置),访问不同的处理器方法,处理器返回一个符合Json规范的对象。前端控制器将该对象响应给浏览器。


业务层

处理器需要业务层的支持(通过调用接口实现)。处理器将数据传递给业务层,业务层对数据做一些处理,将对数据处理的结果封装为JavaBean对象返回给处理器。


持久层

业务层需要持久层的支持(通过调用接口实现)。业务层将数据传递给持久层,持久层判断数据的正确性,然后封装数据传递给业务层。


数据库

持久层使用mybatis,访问mysql数据库


2. 编码过程


创建项目

需要修改JDK版本,需要指定运行环境,需要修改编码

导包

数据库:MySQL,dbcp

Spring:spring-webmvc,spring-jdbc

MyBatis:mybatis,mybatis-spring

Json:jackson(annotations,core,databind),需要注意将<type>bundle</type>删除

junit:junit

另外: commons-codec,生成摘要

没网实在是太恶心了!!,没网无法自动下载依赖的包

配置SpringMVC

使用Eclipse创建一个DispatcherServlet,在web.xml中,还要加入第一启动的配置<load-on-startup>1</...>

再创建SpringMVC使用的xml文件:conf/spring-web.xml

需要测试一次了……

启动Tomcat,显示加载conf/spring-web.xml,则SpringMVC成功
注:在这里有很多系统错误

配置连接池

db.properties

连接池BasicDataSource(bean)

这里写图片描述
标签没有完全包裹的错误

将连接池注入到MyBatis中

测试能否注入成功,Mapper先不用管

写SQL语句:使用接口和配置文件

先写UserDao接口

发现需要实体类User

>  ![](5.png)
再写UserMapper.xml,需要符合那4条规则!!!

测试:测试login(我改为findUserByName了)方法,发现不能将获得bean(userDao)抽象到超类中!

正确的姓名测试通过,不正确的呢?需要自定义异常了~~~

业务层处理异常,持久层不处理异常(只有一个接口,没有实现类来处理异常)

写业务层UserService.login(String name, String password)

需要注入持久层(需要持久层协助)

判断账户和密码的合法性

注意:我密码加密没使用盐,并且使用md2Hex生成的摘要,如果对password使用md5Hex会报错

测试通过

写处理器

返回Json对象

浏览器测试处理器

完善页面(加JavaScript)

这里写图片描述

1 0
原创粉丝点击