简单的登录案例(Servlet+MySql+MyBatis+JSP)

这篇博客介绍了如何利用Servlet、MySql、MyBatis和JSP技术栈来实现一个登录功能。通过创建数据库、定义User类、编写Mapper接口和映射文件,以及设置web和service层,最终实现页面交互和登录验证。文章还包含了相关JSP页面的展示和成功登录的效果图。

原理:登录就是查询数据库中的账号、密码,去跟页面上用户输入的账号、密码,进行匹配,匹配一致登录成功,反之失败。

技术栈:Servlet、MySql、MyBatis、JSP

具体操作代码如下:

1.项目的包结构

2.创建mydata数据库,以及t_user表

CREATE DATABASE mydata;
USER mydata
CREATE TABLE t_user(
  id INT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(25),
  PASSWORD VARCHAR(25)    
);
INSERT INTO t_user VALUE(NULL,'zhangsan','123'),(NULL,'lisi','234');

3.封装类User

package com.wufagang.pojo;

public class User {
    private String id;
    private String username;
    private String password;

    public User() {
    }

    public User(String id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

4.编写Mapper接口UserMapper.java

package com.wufagang.mapper;

import com.wufagang.pojo.User;
import org.apache.ibatis.annotations.Param;

public interface UserLogin {
    public User selectUser(@Param("username") String username,@Param("password") String password);
}

5.编写Mapper映射文件UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wufagang.mapper.UserLogin">
    <select id="selectUser" resultType="User">
        select * from t_user where username=#{username} and password=#{password};
    </select>
</mapper>

6.编写web层LoginServlet.java

package com.wufagang.web;

import com.wufagang.pojo.User;
import com.wufagang.service.impl.UserServiceImpi;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        super.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        String username = req.getParameter("username");//获取用户输入的账号名
        String password = req.getParameter("password");

        UserServiceImpi userServiceImpi = new UserServiceImpi();//调业务层实现类
        User user = userServiceImpi.selectUser(username, password);
        if (user != null){
            req.setAttribute("username",username);
            req.getRequestDispatcher("jsp/succeed.jsp").forward(req,resp);
        }else {
            req.setAttribute("message","登录失败,请检查账号密码是否输入正确");
            req.getRequestDispatcher("index.jsp").forward(req,resp);
        }

    }
}

7.编写service层接UserService接口

package com.wufagang.service;

import com.wufagang.pojo.User;

public interface UserService {
    public User selectUser(String username,String password);
}

8.编写service层UserServiceImpl实现类

package com.wufagang.service.impl;

import com.wufagang.mapper.UserMapper;
import com.wufagang.pojo.User;
import com.wufagang.service.UserService;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class UserServiceImpi implements UserService {
    @Override
    public User selectUser(String username, String password) throws IOException {
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");//解析配置文件
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);//获取工厂
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        return mapper.selectUser(username,password);
    }
}

9.JSP页面idnex.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>首页</title>
</head>
<body>
    <jsp:forward page="jsp/login.jsp"/>
</body>
</html>

10.JSP页面login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录</title>
</head>
<body>
<div>
    <div>${message}</div>
    <form action="loginServlet" method="post">
        账号:<input type="text" name="username" value="${username}"><br>
        密码:<input type="password" name="password" value="${password}"><br>
        <input type="submit" value="登录">
    </form>
</div>

</body>
</html>

11.JSP页面succeed.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录</title>
</head>
<body>
<div>
    <div>${message}</div>
    <form action="loginServlet" method="post">
        账号:<input type="text" name="username" value="${username}"><br>
        密码:<input type="password" name="password" value="${password}"><br>
        <input type="submit" value="登录">
    </form>
</div>

</body>
</html>

12效果图

 

谢谢阅读! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值