千家信息网

JavaWeb如何使用mvc模式实现登录功能

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关JavaWeb如何使用mvc模式实现登录功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。部署项目、环境搭建详细内容1.导包2.web >> in
千家信息网最后更新 2026年11月03日JavaWeb如何使用mvc模式实现登录功能

这篇文章给大家分享的是有关JavaWeb如何使用mvc模式实现登录功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

部署项目、环境搭建

详细内容

1.导包

2.web >> index.jsp web >> login.jsp web >> success.jsp

1) web >> index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>      $Title$      登录  

2) web >> login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>    登录   
账号:<%=request.getAttribute("msg")%> 密码:

3) web >> success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ page import="constant.Con" %>    用户中心<%=request.getSession().getAttribute(Con.USER)%>

欢迎您

返回重新登录

3.constant >> Con

package constant; import java.io.Serializable; public class Con implements Serializable {    //session中保存用户登录信息    public static final String USER = "user";}

entity >> User

package entity; import java.io.Serializable; public class User implements Serializable {    private int id;    private String userName;    private String passWord;     public User(int id, String userName, String passWord) {        this.id = id;        this.userName = userName;        this.passWord = passWord;    }     public User() {    }     public int getId() {        return id;    }     public void setId(int 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.resources >> prop.properties

driverClassName=com.mysql.cj.jdbc.DriverurlName=jdbc:mysql://localhost:3306/myjdbc?characterEncoding=utf8&useSSL=false&serverTimezone=UTCuserName=rootpasswordName=root

5.utils >> JDBCUtils

package utils; import java.io.IOException;import java.io.InputStream;import java.sql.*;import java.util.Properties; /*    JDBC工具类 */public class JDBCUtils {    // 声明驱动的路径    static String driverClass;    static String url;    static String user;    static String password;     /*        静态代码块只会在加载class文件的时候执行一次,        将注册驱动的代码由静态代码块来实现     */    static {        // 创建属性集对象        Properties prop = new Properties();        // 将文件中的数据读取到属性集中        try {            //prop.properties            InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("prop.properties");            prop.load(is);        } catch (IOException e) {            e.printStackTrace();        }        // 获取key对应的value        driverClass = prop.getProperty("driverClassName");        url = prop.getProperty("urlName");        user = prop.getProperty("userName");        password = prop.getProperty("passwordName");        try {            // 加载驱动            Class.forName(driverClass);        } catch (ClassNotFoundException e) {            e.printStackTrace();        }    }     /*        将获取资源的方法进行封装: Connection连接接口对象     */    public static Connection getConnection() throws SQLException, ClassNotFoundException {        // 获取连接        Connection connection = DriverManager.getConnection(url, user, password);        return connection;    }     /*        封装方法,用于释放资源     */    public static void close(Connection connection, Statement statement, ResultSet resultSet) {        try {            if (resultSet != null) {                resultSet.close();            }        } catch (SQLException e) {            e.printStackTrace();        }        // 调用已经实现功能的方法直接使用        close(connection, statement);    }     /*        重载一个释放资源的代码,用来释放两个资源     */    public static void close(Connection connection, Statement statement) {        try {            if (statement != null) {                statement.close();            }        } catch (SQLException e) {            e.printStackTrace();        }        try {            if (connection != null) {                connection.close();            }        } catch (SQLException e) {            e.printStackTrace();        }    } }

6.servlet >> UserServlet

package servlet; import constant.Con;import service.UserService;import service.impl.UserServiceImpl;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(name = "user", urlPatterns = "/user")public class UserServlet extends HttpServlet {    private UserService userService = new UserServiceImpl();     @Override    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        //1.设置请求字符集为utf-8        req.setCharacterEncoding("utf-8");        //2.获取请求参数method,根据值调用不同方法处理业务        String method = req.getParameter("method");        if (method.equals("login")) {            this.login(req, resp);        }    }     //登录方法    private void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        //1.获取账号和密码        String userName = req.getParameter("userName");        String passWord = req.getParameter("passWord");        //2.调用service的方法处理登录        boolean result = userService.checkUser(userName, passWord);        if (result) {            //true表示登录成功            //转发跳转成功页面            //req.getRequestDispatcher("/success.jsp").forward(req, resp);            //将用户信息保存在session域对象中            req.getSession().setAttribute(Con.USER, userName);            //重定向跳转成功页面            resp.sendRedirect(req.getContextPath() + "/success.jsp");        } else {            //false登录失败,返回登录页面            req.setAttribute("msg", "账号密码不匹配");            req.getRequestDispatcher("/login.jsp").forward(req, resp);        }    }}

7.service >> UserService service >> impl >> UserServiceImpl

package service; public interface UserService {    //判断登录成功与否    boolean checkUser(String userName, String passWord);}
package service.impl; import dao.UserDao;import dao.impl.UserDaoImpl;import entity.User;import service.UserService;import utils.JDBCUtils;import java.sql.Connection;import java.util.List; public class UserServiceImpl implements UserService {    private UserDao userDao = new UserDaoImpl();     @Override    public boolean checkUser(String userName, String passWord) {        // 连接对象        Connection connection = null;        try {            //1.获取数据库连接            connection = JDBCUtils.getConnection();            //2.调用dao方法查询数据            List users = userDao.findUserByUserNameAndPassWord(connection, userName, passWord);            //3.根据查询结果返回成功失败标志            if (users.size() > 0) {                return true;            } else {                return false;            }        } catch (Exception e) {            e.printStackTrace();            return false;        } finally {            JDBCUtils.close(connection, null);        }    }}

8.dao >> UserDao dao >> impl >> UserDaoImpl

package dao; import entity.User;import java.sql.Connection;import java.util.List; public interface UserDao {    //根据账号密码查询数据库,返回结果集    List findUserByUserNameAndPassWord(Connection connection, String userName, String passWord);}
package dao.impl; import dao.UserDao;import entity.User;import utils.JDBCUtils;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List; public class UserDaoImpl implements UserDao {    @Override    public List findUserByUserNameAndPassWord(Connection connection, String userName, String passWord) {        // 发送sql语句对象        PreparedStatement statement = null;        List userList = new ArrayList<>();        try {            connection = JDBCUtils.getConnection();            // 获取Statement对象            statement = connection.prepareStatement("select * from user where username = ? and password = ?");            statement.setString(1, userName);            statement.setString(2, passWord);             ResultSet rs = statement.executeQuery();            while (rs.next()) {                User user = new User();                int id = rs.getInt(1);                String username = rs.getString(2);                String password = rs.getString(3);                user.setId(id);                user.setUserName(username);                user.setPassWord(password);                 userList.add(user);            }            return userList;        } catch (Exception e) {            e.printStackTrace();            return userList;        } finally {            JDBCUtils.close(null, statement, null);        }    }}

登录实现

1.首页 index.jsp

2.错误登录 login.jsp

3. 正确登录 login.jsp

4. 登录成功 success.jsp

感谢各位的阅读!关于"JavaWeb如何使用mvc模式实现登录功能"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

登录 方法 成功 对象 代码 密码 数据 账号 资源 功能 内容 用户 页面 查询 驱动 模式 信息 属性 数据库 文件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网金融科技 互联网加科技 河南云网互联网络科技有限公司 广州紫鲸互联网科技有限公司 互联网科技资迅 嘟嘟瓜互联网科技 北京禾田雨橡互联网科技 互联网金融监管科技 山东吉时兔互联网科技有限公司 科技与互联网的利与弊 中国航天科技大学国际工业互联网 浙南科技城互联网大厦建设工程 美国互联网科技公司 广州有谷有贝互联网科技有限公司 东营紫格互联网科技 济南小医互联网科技有限公司招聘 湖北辰鑫科技互联网 版纳互联网科技选哪家 安徽零酒互联网科技有限公司 陕西彩京云互联网科技有限公司 上海挚品互联网科技有限公司 亿人帮互联网科技有限公司 互联网科技网 互联网科技公司的优势 金融科技创新监管互联网金融 北京互联网科技 科技服务与互联网 用友工业互联网科技发展 科技互联网企业在行动 现代科技的标志之一的互联网
0