【JSP】登陆界面 ---- 数据库信息交互


文章目录

  • 初始项目结构
  • ① 制作登陆界面
  • ② 创建LoginServlet
  • ③ 创建dbHelper工具类
  • ④ 效果展示


初始项目结构

在这里插入图片描述


① 制作登陆界面

  • 首先要制作简单的登陆界面,具备两个输入框:姓名、密码,以及登陆(提交)、注册(跳转),还有基本的位置布局等。
  • 这里我们以form表单的形式对内容进行提交,方便获取表单信息。
  • action="/LoginServlet" action 属性定义了当表单被提交时数据被送往LoginServlet。
  • method="post" 设置或返回将数据发送到服务器的 HTTP 方法
<%--Created by IntelliJ IDEA.User: 35192Date: 2021/1/21Time: 20:33To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>My JSP 'index.jsp' starting pagetitle>head><body><%-- 用户登录界面 --%><div align="center" style="background-color: lawngreen"><%-- 当点击登陆的时候,以表单的形式提交信息,启动LoginServlet --%><h1 align="center">用户登陆h1><form action="/LoginServlet" method="post"><%--   登录界面以表格的形式展现    --%><table><tr><td>用户名:td><td><input type="text" name="username" placeholder="请输入用户名">td>tr><tr><td>密码:td><td><input type="text" name="pwd" placeholder="请输入用密码">td>tr><tr><%-- 合并表格两列 --%><td colspan="2"><input type="submit" value="登陆" style="margin-left: 50px;margin-top: 5px"> <input type="button" value="注册" style="margin-left: 55px;margin-top:5px">td>tr>table>form>div>body>
html>

返回顶部


② 创建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;}}
}

返回顶部


④ 效果展示

在这里插入图片描述

返回顶部


                                                                            下一篇:【JSP】实现注册页面跳转以及注册用户功能实现


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部