文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-29 01:42

关注

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

部署项目、环境搭建

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

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

 详细内容 

 1.导包 

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

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

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

 1)  web >> index.jsp 

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html>  <head>    <title>$Title$</title>  </head>  <body>  <a href="login.jsp">登录</a>  </body></html>

 2)  web >> login.jsp  

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html lang="en"><head>  <meta charset="UTF-8">  <title>登录</title>  <style>    #msg {      color: red;    }  </style></head><body> <form action="user" method="post">  账号:<input type="text" name="userName"><span id="msg"><%=request.getAttribute("msg")%></span>  密码:<input type="text" name="passWord">  <input type="hidden" name="method" value="login">  <input type="submit" value="登录"></form> </body></html>

 3)  web >> success.jsp  

<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ page import="constant.Con" %><html><head>    <title>用户中心</title></head><body><%=request.getSession().getAttribute(Con.USER)%><h2 >欢迎您</h2><a href="login.html">返回重新登录</a></body></html>

constant >> Con

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

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

  entity >> User

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

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;    }}

resources >> prop.properties 

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

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

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

  5.utils >> JDBCUtils

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

package utils; import java.io.IOException;import java.io.InputStream;import java.sql.*;import java.util.Properties; public class JDBCUtils {    // 声明驱动的路径    static String driverClass;    static String url;    static String user;    static String password;         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();        }    }         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();        }    } }

servlet >> UserServlet

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

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);        }    }}

service >> UserService        service >> impl >> UserServiceImpl

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

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<User> 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);        }    }}

dao >> UserDao        dao >> impl >> UserDaoImpl

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

package dao; import entity.User;import java.sql.Connection;import java.util.List; public interface UserDao {    //根据账号密码查询数据库,返回结果集    List<User> 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<User> findUserByUserNameAndPassWord(Connection connection, String userName, String passWord) {        // 发送sql语句对象        PreparedStatement statement = null;        List<User> 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);        }    }}

登录实现

首页 index.jsp

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

错误登录 login.jsp 

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

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

正确登录 login.jsp  

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

 4. 登录成功 success.jsp

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

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯