Java秒杀系统--2.登录功能的实现

简介:实现用户的登录功能。

1.登录接口

  用户通过http://localhost:8080/login/to_login来访问登录端口,

  使用一个Controller为上面的url返回一个前端页面

@RequestMapping("/to_login")
    public String toLogin(){
        return "login";
    }

  

2.前端页面使用thymeleaf技术,下面为引入的依赖和添加的配置。

 <parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>1.5.8.RELEASE</version>
   <relativePath/>
  <!-- lookup parent from repository -->
 </parent>


<!--引入支持thymeleaf技术的依赖-->
<dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
 <!--支持web开发-->
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
 </dependency>

  上面这些都是自动配置依赖模块,全都不需要手动配置。下面是一些自动配置的参数,如需更改,可在application.prioperties文件中添加相同的参数进行覆盖。

  各种自动配置参数:https://docs.spring.io/spring-boot/docs/1.5.6.RELEASE/reference/htmlsingle/#appendix

  spring-boot-starter-parent:提供了很多默认的配置为开发提供很多的方便。

  spring-boot-starter-web:该模块为我们提供了一个包含嵌入式的Tomcat的web应用,我们只需完成一个Controller来处理web请求就可以了。

  该模块的自动配置:

    /src/main/resources/static:指定了静态文件的存放位置。

    /src/main/resource/templates:指定了模板文件的存放位置。

    自动配置SpringMVC必要组件,自动配置tomcat的各种参数。

 3.在前端页面获取用户输入的登录信息,并使用异步提交。

  

 1 <script>
 2 
 3     function login() {
 4         $("#loginForm").validate({
 5             submitHandler: function (form) {                                    //点击提交button会触发该函数。
 6                 doLogin();
 7             }
 8         });
 9     }
10 
11 
12 
13     function doLogin() {
14         var inputPass = $("#password").val();
15         var salt = salt1;
16         var pass = ""+salt.charAt(0)+salt.charAt(4)+inputPass+salt.charAt(2)+salt.charAt(6); //13  24
17         var password = md5(pass);                                                //将用户提交的明文密码做一次MD5运算。
18 
19 
20         $.ajax({
21             url: "/login/do_login",
22             type: "POST",
23             data: {
24                 mobile: $("#mobile").val(),
25                 password: password
26             },
27             success: function (data) {
28                 layer.closeAll();
29                 if (data.code == 0) {
30                     layer.msg("成功");
31                     window.location.href = "/goods/to_list";                     //访问url(/goods/to_list)
32                 } else {
33                     layer.msg(data.msg);
34                 }
35             },
36             error: function () {
37                 layer.closeAll();
38             }
39         });
40 
41 
42 
43     }
44 </script>

  1.通过jQuery实现异步提交的功能。submitHandler:function(form){ doLogin() },点击登录按钮会触发doLogin()函数。

  2.在doLogin()函数中,对用户输入的password做一次MD5的操作  。var password = md5(pass);   在文件中引入了md5.min.js(网上下载)所以可以调用md5方法。

  3.使用$.ajax({url:,type:,data:,success:,error:}),向后端提交数据,在提交成功后访问/goods/to_list。

4.后端对数据进行验证

   后端使用类LoginVo.class来接收前端传来的数据:

   1.格式验证:手机号,密码的输入不能为空,手机号码格式为:1+10个正整数。

   2.通过手机号在redis或MySQL中获取用户对象。                                //可能抛出用户不存在的异常

   3.比较密码是否正确:再一次对用户提交的密码进行MD5,然后与查询出的用户对象进行比较。           //可能抛出密码错误异常

   4.为用户生成token,并将token保存在redis,Cookie中。

  

猜你喜欢

转载自www.cnblogs.com/deijiawoyu/p/12666773.html