(代码注释超详细)JavaWeb连接Mysql数据库完成登录注册业务

编写代码要实现的业务:

  1. 登录:完成连接数据库判断登陆信息是否有误

  1. 注册:将信息填写完毕后点击注册,跳转到登陆页面

  1. 主页:展示项目信息并且可以在页面内进行增删改操作

完整文件目录如下:

文件目录:

  1. bean包中填写的代码为实体类

  1. dao模型就是写一个类,把访问数据库的代码封装起来

  1. servlet包是Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容

  1. Util是一个多功能、基于工具的包

代码中易出现的问题:

1.中文乱码问题

中文乱码就是值在请求信息或者响应信息中包含的中文字符不能正常显示。产生原因无非就是客户端与服务器采用的编码方式不同导致的。

根据请求方式的不同,请求一般可以被分为两种:GET请求和POST请求,

POST请求

乱码的原因:POST 提交的数据在请求体中,其所使用的编码格式时页面一致(即utf-8)。request 对象接收到数据之后,会将数据放到request缓冲区,缓冲区的默认字符集是SO-8859-1(该字符集不支持中文),两者使用的字符集不一致导致乱码。

解决方案:在获取请求参数之前设置request缓冲区字符集为utf-8。

    // 设置获取数据的格式
    request.setCharacterEncoding("utf-8"); 
    response.setCharacterEncoding("utf-8");

GET请求和POST请求区别: 1、 get是从服务器上获取数据,post是向服务器传送数据。 2、 get请求时通过URL直接请求数据,数据信息可以在URL中直接看到,比如浏览器访问;而post请求是放在请求头中的,用户无法直接看到。

所以一般不会使用GET请求

MYSQL代码部分

#判断存在即删除数据库
drop database if exists mydb;
#创建数据库
create database mydb;
#使用数据库
use mydb;


#创建表
create table t_user
(
    uid int primary key auto_increment,
    username varchar(20),
    password varchar(20),
    phone varchar(11),
    address varchar(50)
);


insert into t_user(username,password,phone,address) values('张三','666','18965423548','南阳');
insert into t_user(username,password,phone,address) values('李四','333','18754263548','许昌');
insert into t_user(username,password,phone,address) values('小美','123','18565234759','信阳');

select * from t_user;


create table t_goods
(
    gid int primary key auto_increment,
    gname varchar(20),
    price double,
    mark varchar(100)
);

insert into t_goods(gname,price,mark) values('泡面',4.5,'够香够辣就是这个味!');
insert into t_goods(gname,price,mark) values('火腿',8.5,'肉质细腻Q弹!');
insert into t_goods(gname,price,mark) values('雪碧',3.5,'清爽冰凉随心爽!');

select * from t_goods;

  1. 首页的编写(.jsp文件)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>首页</title>
</head>
<body>
  <h1>欢迎学习WEB!</h1>
  <a href="login.jsp">去登陆</a><br>
  <a href="register.jsp">去注册</a>
</body>
</html>

给客户两个选项(登陆/注册)---完成页面如下

1.1登陆页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登陆页面</title>
</head>
<body>
    <h1>登陆页面</h1>
    <h2>欢迎学习WEB!</h2>
    <form action="login" method="post">
        账号:<input type="text" name="username" value=""> <br>
        密码:<input type="password" name="password" value=""> <br>
        <input type="submit" value="登录">&nbsp;&nbsp;&nbsp;
        <a href="register.jsp">没有账号?点击注册</a>
    </form>
</body>
</html>

1.2注册页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册页面</title>
</head>
<body>
    <h1>注册页面</h1>
    <form action="register" method="post">
        账号:<input type="text" name="username" value=""> <br>
        密码:<input type="password" name="password" value=""> <br>
        再次输入密码:<input type="password" name="password" value=""> <br>
        手机号:<input type="text" name="phone" value=""> <br>
        地址:<input type="text" name="address" value=""> <br>
        <input type="submit" value="注册">&nbsp;&nbsp;&nbsp;
        <a href="login.jsp">已有账号?点击登录</a>
    </form>
</body>
</html>

1.3项目页面

由后台数据库传递过来的商品数据:

a:<%之间可以写服务器端代码%>

<%=%>获取后台的变量值

session在网络应用中称为“会话控制”,是服务器为了保存用户状态而创建的一个特殊的对象。 session就是一个对象,用于存储信息

(这段代码可以不写)

    <%
            // 获取session
            HttpSession session1 = request.getSession();
            // 从session中取出数据
            List<Goods> goodsList = (List<Goods>) session1.getAttribute("goodsList");
            // 遍历集合中的元素
            for (Goods goods : goodsList) {
        %>
            <!--使用java脚本获取集合中对象的元素,放入html标签中-->
            <tr>
                <td><%=goods.getGid()%></td>
                <td><%=goods.getGname()%></td>
                <td><%=goods.getPrice()%></td>
                <td><%=goods.getMark()%></td>
            </tr>
        <%
            }
        %>

b: <%--导入JSTL包--%>

<%@taglib prefix="m" uri="http://java.sun.com/jsp/jstl/core" %>

现在导入JSTL包后

可以使用 ${} 直接获取数据 注意:在${}的括号中不能出现空格

<%@ page import="java.util.List" %>
<%@ page import="com.man.bean.Goods" %><%--
  Created by IntelliJ IDEA.
  User: 小m
  Date: 2023/2/16
  Time: 12:21
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--导入JSTL包--%>
<%@taglib prefix="m" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
<head>
    <title>主页</title>
</head>
<body>
<h1>欢迎来自${user.address}的${user.username}登录项目主页</h1>
<h2>主页信息展示</h2>
<table>
    <form action="seach" method="post">
        <input type="text" name="keyword" value="">
        <input type="submit" value="搜索">
    </form>
    <br>
    <a href="addgoods.jsp">添加商品</a>
    <thead>
        <tr>
            <th>商品编号</th>
            <th>商品名称</th>
            <th>商品价格</th>
       
  • 53
    点赞
  • 466
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
### 回答1: JavaWeb连接MySQL数据库可以使用JDBC技术,实现登录注册效果需要以下步骤: 1.下载并安装MySQL数据库,创建相应的数据库和表格。 2.在JavaWeb项目中引入MySQL的JDBC驱动包。 3.编写Java代码,使用JDBC连接MySQL数据库实现用户的注册和登录功能。具体实现可以参考以下步骤: (1)注册功能:用户在注册页面输入用户名和密码,点击注册按钮后,将用户输入的信息插入到MySQL数据库中的用户表格中。 (2)登录功能:用户在登录页面输入用户名和密码,点击登录按钮后,查询MySQL数据库中的用户表格,判断用户输入的用户名和密码是否正确,如果正确则登录成功,否则登录失败。 4.在JavaWeb项目中编写相应的页面,实现用户的注册和登录界面。 5.将JavaWeb项目部署到Tomcat服务器上,启动服务器,通过浏览器访问注册和登录页面,测试登录注册功能是否正常。 以上就是JavaWeb连接MySQL数据库实现登录注册效果的基本步骤。 ### 回答2: JavaWeb是一种使用Java语言开发Web应用程序的技术,而MySQL是一种关系型数据库,可以为Web应用程序提供数据存储和管理的功能。因此,连接MySQL数据库可以实现JavaWeb应用程序的登录和注册功能。 要实现这个过程,需要遵循以下步骤: 1.下载MySQL JDBC驱动程序,这是连接MySQL数据库所必需的库文件,可以从MySQL官网或其他网站获取。 2.创建一个Java类,用于执行登录和注册操作。这个类需要在构造函数中使用JDBC驱动程序来建立与MySQL数据库连接。在这个类中,需要编写登录和注册逻辑来获取用户输入的数据,并将其插入到MySQL数据库中。 3.在JavaWeb应用程序中创建登录和注册页面,在登录页面中虚拟用户输入用户名和密码,然后将这些数据发送到Java类中进行验证。如果验证成功,Java类将返回登录成功的消息,并将用户重定向到主页。如果验证失败,则会显示错误消息。 4.在注册页面中,用户可以输入用户名、密码等数据,并单击“注册”按钮将这些数据发送到Java类中进行处理。如果注册成功,Java类将返回注册成功的消息,并将用户重定向到登录页面。如果注册失败,则将显示错误消息,要求用户再次输入。 总之,连接MySQL数据库可以实现JavaWeb应用程序的登录和注册功能。注意,为了保证数据的安全性,需要使用安全编码技术来加密和解密用户数据。此外,必须确保MySQL数据库的安全性和性能,以避免任何安全漏洞和性能问题。 ### 回答3: JavaWeb是一种基于Java语言开发的Web应用程序平台,其中连接MySQL数据库实现登录注册效果是非常常见的需求。下面将对JavaWeb连接MySQL数据库实现登录注册效果的具体步骤进行详细介绍。 第一步,安装MySQL数据库和JDBC驱动 在JavaWeb连接MySQL数据库之前,我们需要先安装MySQL数据库和JDBC驱动。安装MySQL数据库的方法因操作系统不同而有所不同,这里不再赘述。安装完MySQL数据库后,我们还需要下载JDBC驱动,并将其添加到Java Web 项目的类路径中。 第二步,编写Java代码连接MySQL数据库 为了连接MySQL数据库实现登录、注册等功能,需要添加MySQL的JDBC驱动,并且需要在Java程序中正确引入驱动包。在Java代码中,可以通过以下步骤配置连接信息: 1. 引入JDBC包 需要通过Java代码import语句导入MySQL JDBC驱动的类库。对于Java SE,我们需要下载和导入mysql-connector-java.jar包,而对于Java EE环境,该为了避免JDBC包冲突需要使用JNDI连接池来连接数据库。 2. 加载驱动 在使用JDBC之前,需要使用Class.forName()方法来注册驱动程序。一般来说,可以使用Class.forName("com.mysql.jdbc.Driver")或Class.forName("com.mysql.cj.jdbc.Driver")来加载MySQL JDBC驱动程序。 3. 连接数据库 连接MySQL数据库需要使用DriverManager类创建数据库连接对象。连接的URL、用户名、密码等配置信息需要根据实际情况设置,具体代码如下: String driver = "com.mysql.cj.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC"; String user = "root"; String password = "123456"; Class.forName(driver); Connection conn = DriverManager.getConnection(url, user, password); 4. 执行SQL语句 连接成功后,可以使用Connection对象的createStatement()或prepareStatement()方法执行SQL语句,并将查询结果存储在ResultSet对象中。 第三步,实现登录和注册功能 在JavaWeb项目中实现登录和注册功能,我们需要进行数据库操作。用户进行登录的时候,需要从前端接收到用户名与密码,当检验完成后通过Session保存用户登录状态,在用户退出登录时清空Session即可。而新用户注册的时候,需要将前端传来的信息插入到对应的表中,插入成功后会返回注册成功信息,否则会返回注册失败信息。 以上就是关于JavaWeb连接MySQL数据库实现登录注册效果的详细介绍。需要注意的是,开发者可根据具体需求进行调整,并且在开发过程中遵守安全规范和最佳开发实践。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值