原理:登录就是查询数据库中的账号、密码,去跟页面上用户输入的账号、密码,进行匹配,匹配一致登录成功,反之失败。
技术栈: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效果图



谢谢阅读!
这篇博客介绍了如何利用Servlet、MySql、MyBatis和JSP技术栈来实现一个登录功能。通过创建数据库、定义User类、编写Mapper接口和映射文件,以及设置web和service层,最终实现页面交互和登录验证。文章还包含了相关JSP页面的展示和成功登录的效果图。
&spm=1001.2101.3001.5002&articleId=124869994&d=1&t=3&u=03ad8fba970c4822b2a6b9026b01a6e3)
8万+

被折叠的 条评论
为什么被折叠?



