当前位置: 首页 > wzjs >正文

如何用万网做自己的网站山西网站建设价格

如何用万网做自己的网站,山西网站建设价格,网站的关键词推扩是怎样做,大学学部网站建设工作Jsp技术入门指南【十四】实现基于MySQLJDBCJSP数据库验证的登录界面与登录跳转功能 前言第一步:加入驱动包与Maven第二步、创建并导入web库第三步、连接本地数据库的java代码核心代码讲解 第四步、创建数据库第五步、导入并修改JSP登录文件 前言 在之前的博客中&am…

Jsp技术入门指南【十四】实现基于MySQL+JDBC+JSP数据库验证的登录界面与登录跳转功能

  • 前言
  • 第一步:加入驱动包与Maven
  • 第二步、创建并导入web库
  • 第三步、连接本地数据库的java代码
    • 核心代码讲解
  • 第四步、创建数据库
  • 第五步、导入并修改JSP登录文件


前言

  • 在之前的博客中,我们详细探讨了 JSTL 中 SQL 标签库和自定义标签库的基础用法,并展示了如何利用这些标签库实现 MySQL 数据库连接以及数据分页展示功能。
  • 本文将继续深入,介绍如何基于 MySQL 数据库实现用户登录验证功能,包括登录界面设计、用户身份验证以及登录成功 / 失败后的页面跳转处理

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的JSP知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12950980.html?spm=1001.2014.3001.5482


题目要求

  • 利用MySQL+JSP+JDBC内容,完成前后端连接,实现基于MySQL数据库验证的登录界面与登录跳转功能
  • 当用户输入数据库里面的用户名和密码时,才可进行跳转

在这里插入图片描述

下面我们来实际操作一下

第一步:加入驱动包与Maven

  • 首先我们按照之前的那样加入jsp,jdbc的驱动包来构建环境

在这里插入图片描述

<dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version><scope>provided</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><!-- jstl表达式依赖--><dependency><groupId>javax.servlet.jsp.jstl</groupId><artifactId>jstl-api</artifactId><version>1.2</version></dependency><!-- taglibs 标签库依赖--><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency></dependencies>

在这里插入图片描述

  • 接着我们需要配置好自己的maven环境
  • maven环境必须是全英文,不然运行不了
    maven官方网站https://maven.apache.org/

我的jsp环境搭建博客
JSP技术入门指南【一】利用IDEA从零开始搭建你的第一个JSP系统
https://blog.csdn.net/2402_83322742/article/details/146980845?spm=1001.2014.3001.5501
Java-servlet-Web环境搭建(下)详细讲解利用maven和tomcat搭建Java-servlet环境
https://blog.csdn.net/2402_83322742/article/details/145998804

在这里插入图片描述

第二步、创建并导入web库

  • 我们新建了一个MySQLtest的模块,在里面单击右键,打开模板设置
    在这里插入图片描述
  • 在MySQLtest里面添加web文件
    在这里插入图片描述
    在这里插入图片描述
  • 然后在工件里,找到web应用程序展开型,找到我们刚刚添加的MySQLweb文件
    在这里插入图片描述
  • 在web-INF文件里创建一个lib文件,并导入我们的库文件
    在这里插入图片描述
    在这里插入图片描述

第三步、连接本地数据库的java代码

  • 首先新建一个java类LoginServlet
    在这里插入图片描述
    在这里插入图片描述

  • 接着在java类里面添加以下代码

LoginServlet类

package org.example;import java.io.IOException;
import java.io.Serial;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {@Serialprivate static final long serialVersionUID = 1L;protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String username = request.getParameter("username");String password = request.getParameter("password");// 数据库连接信息String url = "jdbc:mysql://localhost:3306/2023se3";String dbUsername = "root";String dbPassword = "123456";Connection conn = null;PreparedStatement stmt = null;ResultSet rs = null;try {// 加载数据库驱动Class.forName("com.mysql.cj.jdbc.Driver");// 建立数据库连接conn = DriverManager.getConnection(url, dbUsername, dbPassword);// 查询用户信息String sql = "SELECT * FROM userspasswd WHERE username = ? AND password = ?";stmt = conn.prepareStatement(sql);stmt.setString(1, username);stmt.setString(2, password);rs = stmt.executeQuery();if (rs.next()) {String displayName = rs.getString("username"); // 获取数据库中的显示名request.getSession().setAttribute("displayName", displayName); // 存入会话response.sendRedirect("index.jsp");} else {// 登录失败,返回登录页并给出提示request.setAttribute("error", "用户名或密码错误");request.getRequestDispatcher("login.jsp").forward(request, response);}} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();// 数据库连接或查询出错,返回登录页并给出提示request.setAttribute("error", "数据库连接出错,请稍后再试");request.getRequestDispatcher("login.jsp").forward(request, response);} finally {// 关闭数据库连接和资源try {if (rs != null) rs.close();if (stmt != null) stmt.close();if (conn != null) conn.close();} catch (SQLException e) {e.printStackTrace();}}}
}

核心代码讲解

  1. 数据库连接管理
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立数据库连接
conn = DriverManager.getConnection(url, dbUsername, dbPassword);
  • 使用JDBC连接MySQL数据库
  • 数据库连接信息硬编码在Servlet中(不推荐,后续会讲原因)
  1. SQL查询与防注入
String sql = "SELECT * FROM userspasswd WHERE username = ? AND password = ?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, username);
stmt.setString(2, password);
  • 使用预编译语句(PreparedStatement)防止SQL注入
  • 通过参数化查询提高安全性
  1. 结果处理
if (rs.next()) {String displayName = rs.getString("username");request.getSession().setAttribute("displayName", displayName);response.sendRedirect("index.jsp");
} else {request.setAttribute("error", "用户名或密码错误");request.getRequestDispatcher("login.jsp").forward(request, response);
}
  • 通过ResultSet判断是否查询到用户记录
  • 使用Session存储用户信息
  • 使用重定向和转发实现页面跳转
  1. 资源管理
finally {try {if (rs != null) rs.close();if (stmt != null) stmt.close();if (conn != null) conn.close();} catch (SQLException e) {e.printStackTrace();}
}
  • 在finally块中关闭数据库资源
  • 按逆序关闭ResultSet、Statement和Connection

第四步、创建数据库

  • 完成上面的代码之后,我们接着创建一个数据库,点击数据库按钮
    在这里插入图片描述
  • 然后找到加号,点击数据源,找到MySQL
    在这里插入图片描述
  • 在里面输入我们的密码和用户名
    在这里插入图片描述
  • 找到部署架构,里面就有我们的数据库文件
    在这里插入图片描述
    在这里插入图片描述
  • 连接数据库的代码名字要求与我们的数据库匹配一致,这里我连接了2023se3

在这里插入图片描述

  • 单击右键
  • 在数据库里根据我们的HTML表格格式创建一张表
  • 新建查询语句

在这里插入图片描述

CREATE TABLE `userpasswd` (`username` VARCHAR(255) NOT NULL,`password` VARCHAR(255) NOT NULL,PRIMARY KEY (`username`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
  • 然后加入数据
INSERT INTO `userpasswd` (username, password) VALUES
('1', '123'),
('root', '123456'),

在这里插入图片描述

第五步、导入并修改JSP登录文件

  • 在web下,我们单击右键新建一个jsp文件,名字为login.jsp

在这里插入图片描述

  • 然后在里面加入我们的HTML文件
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description" content=""><meta name="author" content=""><title>Sphinx - Login</title><link href="css/bootstrap.min.css" rel="stylesheet"><link href="css/login.css" rel="stylesheet"><link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"><!--[if lt IE 9]><script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script><script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script><![endif]-->
</head>
<body>
<div class="container"><div class="row login"><div class="col-md-4 col-md-offset-4"><div class="panel panel-default"><div class="panel-heading"><h4 class="panel-title text-center login-title"> pha-Admin 登录 </h4></div><div class="panel-body"><form action="LoginServlet" method="post" role="form"><fieldset><div class="form-group"><div class="input-group"><span class="input-group-addon" id="username"><iclass="glyphicon glyphicon-user"></i></span><input type="text" class="form-control" name="username" placeholder="用户名"aria-describedby="username"></div></div><div class="form-group"><div class="input-group"><span class="input-group-addon" id="password"><iclass="glyphicon glyphicon-lock"></i></span><input type="password" class="form-control" name="password" placeholder="密码"aria-describedby="password"></div></div><div class="checkbox"><label class="login-remember"><input name="remember" type="checkbox" value="Remember Me"> 记住我</label></div><input type="submit" class="btn btn-success btn-block" value="登录"></fieldset></form></div></div></div></div>
</div>
<script src="js/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>

在这里插入图片描述

  • 修改HTML里面from表单文件,连接我们的LoginServlet类

在这里插入图片描述

<form role="form">
 <form action="LoginServlet" method="post" role="form">
  • 在HTML里面的input输入字段加入name="username"和name="password",这些数据会被提交到服务器
    在这里插入图片描述

在这里插入图片描述

  • 将HTML文件提交按钮改为<input type="submit">,点击后会将表单数据(用户名和密码)发送到LoginServlet进行处理

在这里插入图片描述

在这里插入图片描述
最后运行项目

在这里插入图片描述

我们的HTML文件就只有数据库里面的用户和密码才能进行登录跳转了


以上就是这篇博客的全部内容,下一篇我们将继续探索JSP的更多精彩内容。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的JSP知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12950980.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述


文章转载自:

http://kxXDQw4Z.znknj.cn
http://if2jgrsv.znknj.cn
http://ymRkqIvu.znknj.cn
http://copUo4C2.znknj.cn
http://WnlrfcGZ.znknj.cn
http://vGnhVfu3.znknj.cn
http://EUYx5PGA.znknj.cn
http://RFx6KpO1.znknj.cn
http://ZhKcigRf.znknj.cn
http://SZwvYv6Y.znknj.cn
http://qDHtnoiv.znknj.cn
http://FUyfPyIn.znknj.cn
http://gda1E3Jo.znknj.cn
http://kOHxLjQ1.znknj.cn
http://37BMsFlL.znknj.cn
http://DabX6ky7.znknj.cn
http://0NN0WfNe.znknj.cn
http://o4y0FwxT.znknj.cn
http://xTYnx81h.znknj.cn
http://iD61dhPD.znknj.cn
http://fsNlmXFq.znknj.cn
http://CxlEEiZP.znknj.cn
http://kHfQjZjL.znknj.cn
http://jWPsbRh7.znknj.cn
http://Pdi5REvm.znknj.cn
http://TjU4TSrS.znknj.cn
http://0U7ajFVe.znknj.cn
http://mk8j0eK6.znknj.cn
http://ZT7ZO4XN.znknj.cn
http://U29RSb6W.znknj.cn
http://www.dtcms.com/wzjs/683623.html

相关文章:

  • 深圳网站建设seo洛阳网络推广
  • 网站建设开发人员须知如何创建本地站点
  • 用微信怎么做商城网站网站建设论文参考文献
  • 网站建设费缴税软件开发工程师的发展前景
  • 西宁专业做网站的找网站的方法
  • 做网站要学些什么条件如何做漫画赚钱的网站
  • 网站a记录吗渭南最新防疫信息
  • 公司网站建设调研背景黑猫会活动策划网站
  • 鄂尔多斯 网站制作个人建设网站难吗
  • 经销商怎么做网站外国网站设计素材
  • 网站可以自己维护吗vi设计主题品牌
  • 办公室门户网站建设和管理工作wordpress网站页脚
  • 公司网站建设的宁波建设网证书查询平台
  • 青岛做模板网站的公司房地产信息查询网
  • 简易app软件seo平台
  • 莘县网站织梦网站防黑怎么做
  • 深圳flash网站建设北京城市建设档案馆网站
  • 同个网站可以做多个外链吗wordpress页面链接404
  • 交通建设工程质量监督局网站网站 营销策略
  • 中小企业网络构建长春seo公司
  • 酒店网站设计方案山东川畅科技做网站多少钱
  • html判断域名 然后再跳转到网站环保局 网站建设
  • 手机搞笑网站模板下载安装做网站银川
  • 北京搬家公司24小时服务电话seo短视频网页入口引流网址
  • 安丘建设网站上海有哪几家做新房的网站
  • 网站制作软件工程师网上购物商城源代码
  • 网站后台编辑框无法显示重庆网站设计生产厂家
  • 医院网站建设计划做推广便宜的网站
  • 影楼网站模版工业设计公司有哪些
  • 西安地区专业做网站公司做一个网站加优化排名得多少钱