SSM整合demo黑马旅游网-------3.登录

1. 功能分析

1. login.html

  • 提交用户输入的用户名,密码,以及验证码

2. web层

  • 获取提交信息
  • 判断用户是否存在
  • 密码是否正确
  • 验证码是否正确
  • 是否激活,未激活不能登录

3. UserService.java/mapper.xml

  • 根据用户名查找用户

2. 登录

2.1 login.html

//***************************** 异步提交登录表单 *****************************
		$(function () {
			$("#btn_submit").click(function () {
				var options = {
					type:"post",
					url:"/ssm-travel/user/selectByUserNameLogin",
					data:$("#loginForm").serialize(),
					dataType:"json",
					error:function (request) {
						return false;
					},
					success:function (data) {

						console.log(data)
						if (data =="success"){
							$("#errorMsg").html("");
							location.href = "/ssm-travel/index.html"
						}else {
							$("#errorMsg").html(data);
						}

					}
				}
				$.ajax(options)

			})

		});

2.2 mapper层

  • UserMapper.java

src\main\java\com\ssmtravel\mapper\UserMapper.java

 // 登录 查询用户
    @Select("select * from tab_user where username = #{username}")
    User selectByUsername(String username);

2.3 service层

  • UserService.jave 接口
 // 登录 查询用户
    User selectByUsername(String username);

  • 实现 UserServiceImpl.java
@Override
    public User selectByUsername(String username) {
        User user = userMapper.selectByUsername(username);
        return user;
    }

2.4 web层

// 4.登录
    @RequestMapping(value = "/selectByUserNameLogin",produces = {"application/json; charset=UTF-8"})
    @ResponseBody
    public String Login(String username,String password,String check,HttpSession session) throws IOException {
        
        User user = userService.selectByUsername(username);
        // 4.1 用户名是否存在
        if (user == null){
            // 用户不存在
            err_msg = "用户不存在";
            ObjectMapper objectMapper = new ObjectMapper();
            return objectMapper.writeValueAsString(err_msg);

        }

        // 4.2密码是否正确
        if(!password.equals(user.getPassword())){
            // 密码不正确
            err_msg = "密码不正确";
            ObjectMapper objectMapper = new ObjectMapper();
            return objectMapper.writeValueAsString(err_msg);

        }

        // 4.3 验证码是否正确,正确则进行下面登录

        String checkcode_server = (String) session.getAttribute("CHECKCODE_SERVER");
        // 为了保证验证码使用一次就重新生成
        session.removeAttribute("CHECKCODE_SERVER");
        if(checkcode_server == null || !checkcode_server.equalsIgnoreCase(check)){
            //验证码错误
            err_msg = "验证码错误";
            ObjectMapper objectMapper = new ObjectMapper();
            return objectMapper.writeValueAsString(err_msg);
        }
        // 4.4是否激活,未激活则不能登录
        if(user.getStatus().equals("N")){
            // 未激活,登录失败
            err_msg = "未激活,登录失败";
            ObjectMapper objectMapper = new ObjectMapper();
            return objectMapper.writeValueAsString(err_msg);

        }
        err_msg = "success";
        ObjectMapper objectMapper = new ObjectMapper();
        return objectMapper.writeValueAsString(err_msg);


    }

3. index页面中用户姓名的提示信息功能

3.1 效果

在这里插入图片描述

3.2 header.html

<script>
    $(function () {
        $.get("/ssm-travel/user/findName", {}, function (data) {
            data = JSON.parse(data)
            console.log(data)
            if (data != "error") {
                var msg = "欢迎回来," + data;
                $("#user_name").html(msg);
            } else {
                $("#user_name").html("请点击右侧登录");
            }
        });
    })

</script>

 <header id="header">
        ......
        ......
        ......
        ......
            <!-- 登录状态  -->
            <div class="login">

                <span id="user_name"></span>
                <a href="myfavorite.html" class="collection">我的收藏</a>
                <a href="javascript:;">退出</a>
            </div>
        </div>
        ......
        ......
        ......

3.3 web层

  • RegisterContorller.java

在登录功能,登录成功,则将用户存入session,通过查询session中是否存在user进行判断

  // 5. 首页登录则显示用户名字
    @RequestMapping("/findName")
    @ResponseBody
    public String Login(HttpSession session) throws IOException {
        User user = (User) session.getAttribute("user");
        if (user == null){
            // 不存在
            err_msg = "error";
            ObjectMapper objectMapper = new ObjectMapper();
            return objectMapper.writeValueAsString(err_msg);
        }else {
            err_msg = user.getUsername();
            ObjectMapper objectMapper = new ObjectMapper();
            return objectMapper.writeValueAsString(err_msg);
        }

    }

4. 退出

  • RegisterContorller.java

将session中的user对象销毁则退出,并且跳转登录页面

// 6. 退出
    @RequestMapping("/exitLogin")
    public String exitLogin(HttpSession session) throws IOException {
        session.invalidate();
        return "redirect:/login.html";

    }
  • header.html
 ......
 ......
 ......
<!-- 登录状态  -->
            <div class="login">

                <span id="user_name"></span>
                <a href="myfavorite.html" class="collection">我的收藏</a>
                <a href="javascript:location.href='/ssm-travel/user/exitLogin';">退出</a>
            </div>
           
            ......
            ......
            ......

到此,登录功能完成。。。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>cn.itcast.parent</groupId> <artifactId>itcast-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>cn.itcast</groupId> <artifactId>travel</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </dependency> <!-- 连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency> <!-- Jackson Json处理工具包 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> </dependency> </dependencies> <build> <plugins> <!-- 配置Tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <port>8080</port> <path>/</path> </configuration> </plugin> </plugins> </build> </project>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值