【JSP】登陆界面 ---- 数据库信息交互
发布日期:2021-05-07 02:49:25 浏览次数:22 分类:精选文章

本文共 4352 字,大约阅读时间需要 14 分钟。


文章目录


初始项目结构

在这里插入图片描述


① 制作登陆界面

  • 首先要制作简单的登陆界面,具备两个输入框:姓名、密码,以及登陆(提交)、注册(跳转),还有基本的位置布局等。
  • 这里我们以的形式对内容进行提交,方便获取表单信息。
  • action="/LoginServlet" action 属性定义了当表单被提交时数据被送往LoginServlet。
  • method="post" 设置或返回将数据发送到服务器的 HTTP 方法
<%--  Created by IntelliJ IDEA.  User: 35192  Date: 2021/1/21  Time: 20:33  To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %>      My JSP 'index.jsp' starting page        <%-- 用户登录界面 --%>    
<%-- 当点击登陆的时候,以表单的形式提交信息,启动LoginServlet --%>

用户登陆

<%-- 登录界面以表格的形式展现 --%>
<%-- 合并表格两列 --%>
用户名:
密码:
 


② 创建LoginServlet

  • 用于对表单提交的信息进一步处理~
  • 这里我们是要向服务器端提交数据信息,所以使用doPost().
  • urlPatterns = "/LoginServlet" 头部一定要加上,“ ”内的就是当前servlet的全称,否则运行时会报错。
  • 通过request.getParameter(name属性值)可以获取对应的表单信息。
  • 在这里还调用了工具类中的方法连接数据库,实现与数据库的信息交互。
import com.zte.dbHelper;import java.io.IOException;import java.io.PrintWriter;@javax.servlet.annotation.WebServlet(name = "LoginServlet", urlPatterns = "/LoginServlet")public class LoginServlet extends javax.servlet.http.HttpServlet {       protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {           // 基础配置        response.setContentType("text/html;charset=UTF-8");        response.setCharacterEncoding("UTF-8");        request.setCharacterEncoding("UTF-8");        PrintWriter out = response.getWriter();        // 1.获取表单提交的信息        String username = request.getParameter("username");        String pwd = request.getParameter("pwd");        // 2.连接数据库        dbHelper db = new dbHelper();        db.getConnection();        // 3.判断状态        switch (db.login(username,pwd)){               case 0:                out.println("");                break;            case 1:                out.println("");                break;            case 2:                out.println("");                break;        }        out.flush();        out.close();    }    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {           doPost(request,response);    }}


③ 创建dbHelper工具类

  • 创建dbHelper工具类,强化网页的数据交互能力。注意:dbHelper类要放在一个工具包中(自建)
  • 目前阶段创建了两个方法:getConnection()login()。用于实现页面与后台数据库的连接以及登陆时的数据交互。
  • 具体的数据交互是在LoginServlet中,首先获取页面表单提交的数据(用户名、密码),然后调用getConnection()实现数据库连接。连接后,再调用login()方法进行数据库查询,根据其返回结果进行登陆的判定。
  • resultSet = preparedStatement.executeQuery(); 只有在查询的时候resultSet是返回查询的内容;其余情况返回的是影响的记录数。
package com.zte;import java.sql.*;public class dbHelper {       // 声明成员变量    Connection connection = null;    PreparedStatement preparedStatement = null;    Statement statement = null;    ResultSet resultSet = null;    /**     * 注册驱动连接数据库     */    public void getConnection(){           try {               // 1.注册驱动            Class.forName("com.mysql.jdbc.Driver");            System.out.println("驱动注册成功!");            // 2.连接数据库            connection = DriverManager.getConnection                    ("jdbc:mysql://localhost:3306/test01?useUnicode=true&characterEncoding=utf8","root","123456");            System.out.println("数据库连接成功!");        } catch (Exception e){               e.printStackTrace();        }    }    /**     * 实现用户登陆,匹配数据库信息     * @param username     * @param password     * @return     */    public int login(String username,String password){           try {               String sql = "select * from userinfo_copy1 where username=? and pwd=?";            preparedStatement = connection.prepareStatement(sql);            preparedStatement.setString(1,username);            preparedStatement.setString(2,password);            resultSet = preparedStatement.executeQuery();            // 判断返回结果集是否有内容,也就是用户存不存在            if (resultSet.next()){                   return 1;            } else {                   return 2;            }        } catch (Exception e){               e.printStackTrace();            return 0;        }    }}


④ 效果展示

在这里插入图片描述


                                                                            

上一篇:【skLearn 分类算法】K-近邻(KNN)
下一篇:【sklearn】KMeans 计算样本质心

发表评论

最新留言

很好
[***.229.124.182]2025年04月14日 07时30分11秒