四、利用ssm进行登录和注册

依旧是转载~不过我会加上一些细节方面的修改,有些细节需要自己去摸索(http://blog.csdn.net/lxfHaHaHa/article/details/70142871

1)准备工作

如果你是跟着上一篇博客来的,那么就已经创建好了那三个自己添加的查询语句(http://blog.csdn.net/zyf2333/article/details/77709466),接下来做下准备工作:
首先添加如下目录(框起来的部分)。说明一下:zcController是控制器,UserService具体实现了UserMapper.java中的方法。然后在views文件夹下创建一个文件夹,里面三个文件分别对应着 登录,登录成功,注册 页面
这里写图片描述

接下来修改下web.xml,修改成如图所示。说明:此处修改后,我们再运行Tomcat7,就会令这个dl.jsp是默认页面,就可以直接进入登录页面。这里先看看最终效果的url
这里写图片描述
注意到此处的url就是localhost:8080,而不包含其他路径
这里写图片描述

2)代码

1、jsp文件的代码
dl.jsp(此处我们用了js来判断登录情况,<script> 中的#{result}标签在zcController中设置,通过传入的参数来进行判断)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form id="zc" action="/zyf/dl" method="post">
    <label for="name">用户名:</label> <input type="text" required id="name" name="name"><br>
    <label for="pw">密码:</label> <input type="password" required id="pw" name="pw"><br>
    <input type="submit" value="登录">
    <input type="button" value="注册" onclick="location.href='/zyf/zc'">
</form>
<p>反馈信息:${result}</p>
</body>
<script>

    //对应后台返回的提示
    if ('${result}' != '') {
        if ('${result}' == 0)
            alert('该账户不存在!')
        if ('${result}' == 1)
            alert('密码错误!')
        if ('${result}' == 2) {
            alert('登录成功!')
            location.href = '/zyf/userInfo'
        }
    }
</script>
</html>

zc.jsp(也是通过Controller来进行判断注册状况)

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form id="zc" action="/zyf/zc" method="post">
    <label for="name">
        用户名:
    </label>
    <input type="text" required id="name" name="name"><br>
    <label for="pw">
        密码:
    </label>
    <input type="password" required id="pw" name="pw"><br>
    性别: <input type="radio" required value="0" name="sex"><input type="radio" value="1" required name="sex"><br>
    <input type="submit" value="注册">
    <input type="reset" value="重置"/>
</form>
</body>
<script>
    //对应后台返回的提示
    if ('${result}' != '') {
        if ('${result}' == 1) {
            alert('注册成功,将跳转到登录页面!')
            location.href = '/zyf/dl'
        }
        if ('${result}' == 0) {
            alert('未知错误,注册失败!')
        }
        if ('${result}' == 2) {
            alert('该账号已有人注册!')
        }

    }


</script>
</html>

userInfo.jsp(成功页面)

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
欢迎
</body>
</html>

2、UserService.java
这个类一般写法是implements UserMapper,然后实现它的抽象方法。但是此处我们用了自动注入,效果一样(记得类开头标上@Service,不然Spring无法识别这个bean,运行会失败!)

package com.springmvc.service;
import com.springmvc.dao.UserMapper;
import com.springmvc.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
/**
 * Created by 邹一凡 on 2017/8/29.
 */
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public int insert(User user) {
        return userMapper.insertSelective(user);
    }


    int deleteByPrimaryKey(Integer id) {
        return userMapper.deleteByPrimaryKey(id);
    }


    User selectByPrimaryKey(Integer id) {
        return userMapper.selectByPrimaryKey(id);
    }

    int updateByPrimaryKeySelective(User record) {
        return userMapper.updateByPrimaryKeySelective(record);
    }

    int updateByPrimaryKey(User record) {
        return userMapper.updateByPrimaryKey(record);
    }

    int getCount() {
        return userMapper.getCount();
    }

    public ArrayList<User> selectSelective(User record) {
        return userMapper.selectSelective(record);
    }

    public  ArrayList<User> selectLike(User record) {
        return userMapper.selectLike(record);
    }


}

3、zcController.java(在这里进行逻辑判断,并决定要跳到哪个页面去)

package com.springmvc.controller;

import com.springmvc.entity.User;
import com.springmvc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import sun.security.provider.MD5;

import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Created by 邹一凡 on 2017/8/30.
 */
@Controller
public class zcController {
    @Autowired
    private UserService userService;

    //注册
    @RequestMapping(value = "/zyf/zc",method = RequestMethod.GET)
    public String toZhuce(){
        return "zyf/zc";
    }
    @RequestMapping(value = "/zyf/zc",method = RequestMethod.POST)
    public String insertUser(@ModelAttribute User user, Model model){
        User record=new User();
        record.setName(user.getName());
        List<User> list=userService.selectSelective(record);
        if(list.size()==0){
            user.setCreatetime(new Date());
            user.setPw(user.getPw());
            if(userService.insert(user)==1)
                model.addAttribute("result",1);//注册成功
            else
                model.addAttribute("result",0);//注册失败
        }
        else
            model.addAttribute("result",2);//已有人注册
        return "zyf/zc";
    }

    //登录
    @RequestMapping(value = "/zyf/dl",method = RequestMethod.GET)
    public String toDenglu(){
        return "zyf/dl";
    }

    //将信息保存在session中
    @RequestMapping(value = "/zyf/dl",method = RequestMethod.POST)
    public String toDenglu(HttpSession session,Model model,@ModelAttribute User user){
        List<User> list=new ArrayList<User>();
        User record=new User();
        record.setName(user.getName());
        list=userService.selectSelective(record);
        if(list.size()==0)
            model.addAttribute("result","0");//该用户不存在
        else{
            record.setPw(user.getPw());
            list=userService.selectSelective(record);
            if(list.size()==0)
                model.addAttribute("result","1");//密码错误
            else {
                record=list.get(0);
                session.setAttribute("user",record);
                //将用户保存在session里面
                model.addAttribute("result","2");//登录成功
            }
        }
        return "zyf/dl";
    }
    //跳转到成功页面
    @RequestMapping(value = "/zyf/userInfo", method = RequestMethod.GET)
    public String toInfo(Model model, HttpSession session) {
        User user = (User) session.getAttribute("user");
        if (user != null)
            model.addAttribute("user", user);
        return "zyf/userInfo";
    }
}

3)效果图

登录:
这里写图片描述
这里写图片描述
注册:
这里写图片描述
这里写图片描述
这里写图片描述

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值