
【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; } }}
④ 效果展示
发表评论
最新留言
很好
[***.229.124.182]2025年04月14日 07时30分11秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
从零开始学安全(三十四)●百度杯 ctf比赛 九月场 sqli
2021-05-09
3389连接痕迹清除
2021-05-09
发生系统错误 6118
2021-05-09
阿里巴巴Json工具-Fastjson教程
2021-05-09
Spring Cloud Gateway - 快速开始
2021-05-09
Spring Security 实战干货:理解AuthenticationManager
2021-05-09
Java对象转JSON时如何动态的增删改查属性
2021-05-09
Python 面向对象进阶
2021-05-09
Linux常用统计命令之wc
2021-05-09
Git安装及使用以及连接GitHub方法详解
2021-05-09
docker容器与虚拟机的区别
2021-05-09
shell脚本里使用echo输出颜色
2021-05-09
Python2跟Python3的区别
2021-05-09
并发编程——IO模型详解
2021-05-09
Java之封装,继承,多态
2021-05-09
wait()与notify()
2021-05-09
使用js打印时去除页眉页脚
2021-05-09
Spring security OAuth2.0认证授权学习第二天(基础概念-RBAC)
2021-05-09
ORA-00904: "FILED_TYPE": 标识符无效
2021-05-09
数据仓库系列之维度建模
2021-05-09