实现简单用户登录和用户注册的maven项目

实现简单用户登录和用户注册的maven项目

  1. maven项目的简单搭建:见上篇博客

  2. 本项目是接着上述项目接着写

  3. 导入页面模板:

    • 在webapp目录下创建page目录,用来存放.jsp文件

    • 在page目录下创建login.jsp文件(登录),register.jsp文件(注册)

    • 从AdminLTE中导入all-admin-login.html模板,all-admin-register.html类似处理就不举例了

      • 在login.jsp中,将html标签替换成all-addmin-login.html中的html标签中的内容
      • 将AdminLTE中css、img、plugins目录都导入webapp目录下,保证login.jsp中的样式可以完整呈现出来
      • 修改login.jsp中的引入css、js、照片的路径
        • 将原来的路径中的"…/"替换成” ${pageContext.request.contextPath}/“
        • 在 <% @page %>中添加isELIgnored="false"属性,避免el表达式被解释成字符串
    • 样式依旧不能显示

      • 如果项目中存在target目录,则将target目录删除,重新构建项目,原因是原来的target目录中并没有中途导入的css、img、plugins文件,需要重新构建
    • 样式部分没有显示

      • 在web.xml文件中添加新的静态文件,因为有些静态文件没有被允许加载

        <servlet-mapping>
            <servlet-name>default</servlet-name>
            <url-pattern>*.png</url-pattern>
          </servlet-mapping>
          <servlet-mapping>
            <servlet-name>default</servlet-name>
            <url-pattern>*.woff</url-pattern>
          </servlet-mapping>
          <servlet-mapping>
            <servlet-name>default</servlet-name>
            <url-pattern>*.tff</url-pattern>
          </servlet-mapping>
        
  4. 修改登录模板中form表单中的内容

    <form action="/user/login" method="post">
                <div class="form-group has-feedback">
                    <input class="form-control" placeholder="用户名" name="username">
                    <span class="glyphicon glyphicon-envelope form-control-feedback"></span>
                </div>
                <div class="form-group has-feedback">
                    <input type="password" class="form-control" placeholder="密码" name="password">
                    <span class=
  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Maven 是一个项目管理工具,它可以帮助我们自动化构建、测试和部署 Java 项目。而实现登录、修改、删除和转账等功能需要编写 Java 代码和操作数据库。 下面是一个使用 Maven 实现登录、修改、删除和转账功能的示例项目: 1. 创建 Maven 项目 首先,我们需要创建一个 Maven 项目。可以使用 Eclipse 或者 IntelliJ IDEA 等 Java IDE 工具创建 Maven 项目。 2. 添加依赖 我们需要添加如下依赖到 pom.xml 文件中: ``` <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </dependency> </dependencies> ``` 其中,mysql-connector-java 是操作 MySQL 数据库的 JDBC 驱动,javax.servlet-api 是操作 Servlet 的 API。 3. 编写代码 接下来,我们需要编写 Java 代码实现登录、修改、删除和转账等功能。下面是示例代码: ``` // 登录 public boolean login(String username, String password) { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { conn = getConnection(); String sql = "select * from user where username=? and password=?"; stmt = conn.prepareStatement(sql); stmt.setString(1, username); stmt.setString(2, password); rs = stmt.executeQuery(); return rs.next(); } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, stmt, rs); } return false; } // 修改密码 public boolean changePassword(String username, String oldPassword, String newPassword) { Connection conn = null; PreparedStatement stmt = null; try { conn = getConnection(); String sql = "update user set password=? where username=? and password=?"; stmt = conn.prepareStatement(sql); stmt.setString(1, newPassword); stmt.setString(2, username); stmt.setString(3, oldPassword); int rows = stmt.executeUpdate(); return rows > 0; } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, stmt, null); } return false; } // 删除用户 public boolean deleteUser(String username) { Connection conn = null; PreparedStatement stmt = null; try { conn = getConnection(); String sql = "delete from user where username=?"; stmt = conn.prepareStatement(sql); stmt.setString(1, username); int rows = stmt.executeUpdate(); return rows > 0; } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, stmt, null); } return false; } // 转账 public boolean transfer(String fromAccount, String toAccount, double amount) { Connection conn = null; PreparedStatement stmt = null; try { conn = getConnection(); conn.setAutoCommit(false); String sql1 = "update account set balance=balance-? where account=?"; stmt = conn.prepareStatement(sql1); stmt.setDouble(1, amount); stmt.setString(2, fromAccount); int rows1 = stmt.executeUpdate(); if (rows1 <= 0) { conn.rollback(); return false; } String sql2 = "update account set balance=balance+? where account=?"; stmt = conn.prepareStatement(sql2); stmt.setDouble(1, amount); stmt.setString(2, toAccount); int rows2 = stmt.executeUpdate(); if (rows2 <= 0) { conn.rollback(); return false; } conn.commit(); return true; } catch (SQLException e) { try { conn.rollback(); } catch (SQLException ex) { ex.printStackTrace(); } e.printStackTrace(); } finally { close(conn, stmt, null); } return false; } // 获取数据库连接 private Connection getConnection() throws SQLException { String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC"; String username = "root"; String password = "root"; return DriverManager.getConnection(url, username, password); } // 关闭资源 private void close(Connection conn, Statement stmt, ResultSet rs) { try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } ``` 这段代码定义了一个 UserDao 类,其中包含了 login、changePassword、deleteUser 和 transfer 四个方法,分别用于实现登录、修改密码、删除用户和转账功能。getConnection 方法用于获取数据库连接,close 方法用于关闭资源。 4. 编写 Servlet 最后,我们需要编写 Servlet,将前端请求与 Java 代码联系起来。下面是示例代码: ``` @WebServlet("/login") public class LoginServlet extends HttpServlet { private UserDao userDao = new UserDao(); protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); boolean result = userDao.login(username, password); if (result) { response.sendRedirect("index.jsp"); } else { response.sendRedirect("login.jsp"); } } } @WebServlet("/changePassword") public class ChangePasswordServlet extends HttpServlet { private UserDao userDao = new UserDao(); protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String oldPassword = request.getParameter("oldPassword"); String newPassword = request.getParameter("newPassword"); boolean result = userDao.changePassword(username, oldPassword, newPassword); if (result) { response.sendRedirect("index.jsp"); } else { response.sendRedirect("changePassword.jsp"); } } } @WebServlet("/deleteUser") public class DeleteUserServlet extends HttpServlet { private UserDao userDao = new UserDao(); protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); boolean result = userDao.deleteUser(username); if (result) { response.sendRedirect("index.jsp"); } else { response.sendRedirect("deleteUser.jsp"); } } } @WebServlet("/transfer") public class TransferServlet extends HttpServlet { private UserDao userDao = new UserDao(); protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fromAccount = request.getParameter("fromAccount"); String toAccount = request.getParameter("toAccount"); double amount = Double.parseDouble(request.getParameter("amount")); boolean result = userDao.transfer(fromAccount, toAccount, amount); if (result) { response.sendRedirect("index.jsp"); } else { response.sendRedirect("transfer.jsp"); } } } ``` 这段代码定义了四个 Servlet,分别对应登录、修改密码、删除用户和转账四个功能。每个 Servlet 通过 UserDao 类中的方法实现相应的功能。 5. 编译打包 最后,我们需要使用 Maven 编译打包项目。在项目根目录下执行以下命令: ``` mvn clean package ``` 执行完成后,会在 target 目录下生成一个 war 包。将这个 war 包部署到 Tomcat 等 Java Web 服务器上即可使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值