web开发中,简单的案例说明前端页面和后端以及mysql数据库的交互过程

这篇具有很好参考价值的文章主要介绍了web开发中,简单的案例说明前端页面和后端以及mysql数据库的交互过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        首先这是一个基于web开发的稿子,作者也是转java20天左右,以前也一直迷惑起那段页面是如何和后端进行交互,数据提交提交到了哪里?后端开发如何获取到前端提交的数据呢?后端数据提交到数据库中应该如何处理,接下来通过一个简单的例子,登录案例(实现前端数据提交->后端获取数据->数据和数据库对比处理)

        一.项目流程:

1. 用户在登录页面输入用户名和密码,提交请求给LoginServlet
2. 在LoginServlet中接收请求和数据[用户名和密码]
3. 在LoginServlt中通过Mybatis实现调用UserMapper来根据用户名和密码查询数据库表
4. 将查询的结果封装到User对象中进行返回
5. 在LoginServlet中判断返回的User对象是否为null
6. 如果为nul,说明根据用户名和密码没有查询到用户,则登录失败,返回"登录失败"数据给前端
7. 如果不为null,则说明用户存在并且密码正确,则登录成功,返回"登录成功"数据给前端

前后端交互后端数据显示到前端页面实战,Java,java,mysql,前端,数据库

二.项目步骤:

        1.创建数据库:

                下面是穿件数据库的语句,可以通过创建语句创建数据库。

 -- 创建用户表
CREATE TABLE tb_user(
    id int primary key auto_increment,
    username varchar(20) unique,
    password varchar(32)
);

-- 添加数据
INSERT INTO tb_user(username,password) values('zhangsan','123'),('lisi','234');

SELECT * FROM tb_user;

这是创建数据库后表的状态: 

前后端交互后端数据显示到前端页面实战,Java,java,mysql,前端,数据库

        2.导入mysql和mybstis坐标

        在项目的pom.xml导入Mybatis和Mysql驱动坐标

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.5</version>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.34</version>
</dependency>

三.创建mybatis-config.xml核心配置文件,UserMapper.xml映射文件,UserMapper接口

        mybatis-config.xml 拷贝到resources目录下

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <!--起别名-->
  <typeAliases>
    <package name="com.itheima.pojo"/>
  </typeAliases>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
<dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <!--
          useSSL:关闭SSL安全连接 性能更高
          useServerPrepStmts:开启预编译功能
          &amp; 等同于 & ,xml配置文件中不能直接写 &符号
        -->
        <property name="url" value="jdbc:mysql:///db1?
useSSL=false&amp;useServerPrepStmts=true"/>
        <property name="username" value="root"/>
        <property name="password" value="1234"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <!--扫描mapper-->
    <package name="com.itheima.mapper"/>
  </mappers>
</configuration>

         在com.itheima.mapper包下创建UserMapper接口

public interface UserMapper {
}

UserMapper.xml 拷贝到resources目录下,

注意:在resources下创建UserMapper.xml的目录时,要使用/分割

前后端交互后端数据显示到前端页面实战,Java,java,mysql,前端,数据库

四.代码实现

1. 在UserMapper接口中提供一个根据用户名和密码查询用户对象的方法

/**
  * 根据用户名和密码查询用户对象
  * @param username
  * @param password
  * @return
  */
  @Select("select * from tb_user where username = #{username} and password =
#{password}")
  User select(@Param("username") String username,@Param("password")  String
password);

说明 :@Param注解的作用:用于传递参数,是方法的参数可以与SQL中的字段名相对应。

2. 修改loign.html

        注意:发送的路径需要明确否则数据发送会出现问题,导致无法访问的问题出现。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>login</title>
  <link href="css/login.css" rel="stylesheet">
</head>
<body>
<div id="loginDiv">
  <form action="/request-demo/loginServlet" method="post" id="form">
    <h1 id="loginMsg">LOGIN IN</h1>
    <p>Username:<input id="username" name="username" type="text"></p>
    <p>Password:<input id="password" name="password" type="password"></p>
    <div id="subDiv">
      <input type="submit" class="button" value="login up">
      <input type="reset" class="button"
value="reset">&nbsp;&nbsp;&nbsp;
      <a href="register.html">没有账号?点击注册</a>
    </div>
  </form>
</div>
</body>
</html>

3. 编写LoginServlet

        这里我们首先通过方法获取到提交的数据username和password数据,然后我们通过mybatis获取 数据库中的用户名和密码,形成数据对比,最后使用response请求将数据响应回去

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
  @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
    //1. 接收用户名和密码
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    //2. 调用MyBatis完成查询
    //2.1 获取SqlSessionFactory对象
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new
SqlSessionFactoryBuilder().build(inputStream);
    //2.2 获取SqlSession对象
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //2.3 获取Mapper
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    //2.4 调用方法
    User user = userMapper.select(username, password);
    //2.5 释放资源
    sqlSession.close();
    //获取字符输出流,并设置content type
    response.setContentType("text/html;charset=utf-8");
    PrintWriter writer = response.getWriter();
    //3. 判断user释放为null
    if(user != null){
      // 登陆成功
      writer.write("登陆成功");
   }else {
      // 登陆失败
      writer.write("登陆失败");
   }
 }
  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
    this.doGet(request, response);
 }
}

注意:由于我这里的路径错了多以数据无法跳转过去,这里的代码是点击跳转访问页面数据的,但是本来这里的路径输入写错了,所以一直跳转失败了,这里需要填入正确的路径才可以。

前后端交互后端数据显示到前端页面实战,Java,java,mysql,前端,数据库

五.最后:

        如果数据输入正确的话就会访问数据路径的网页,并且通过我们调取了mysql中的数据形成数据对比,如果对比成功的话,登录成功,否则失败,通过调用response发送响应数据,返会给用户界面。

前后端交互后端数据显示到前端页面实战,Java,java,mysql,前端,数据库

前后端交互后端数据显示到前端页面实战,Java,java,mysql,前端,数据库文章来源地址https://www.toymoban.com/news/detail-771472.html

到了这里,关于web开发中,简单的案例说明前端页面和后端以及mysql数据库的交互过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从技能需求到就业前景,了解前端和后端开发的优缺点和个人选择

    命运决定的不是你的人生,能决定你人生的只有自己。 前端和后端是Web开发中两个不可或缺的领域。前端开发主要负责网页的界面设计和交互行为,利用HTML、CSS和JavaScript等技术,将网页的外观和功能实现。而后端开发则主要负责网站的后台逻辑和数据处理部分,利用服务器

    2024年02月08日
    浏览(28)
  • 使用vue+springboot+mybatis开发的信息管理系统,前端和后端是怎么进行交互的

    1. 前端向后端发送http请求。 2. 后端接收到请求后,通过mybatis从数据库中获取所需数据。 3. 后端将处理完的数据通过restful api返回给前端。 4. 前端根据后端返回的数据进行页面渲染。 具体来说,可以分为以下几个步骤: 前端使用vue.js作为基础框架,使用axios库向后端发送h

    2024年02月06日
    浏览(54)
  • 使用代码生成工具快速开发应用-结合后端Web API提供接口和前端页面快速生成,实现通用的业务编码规则管理

    在前面随笔《在Winform应用中增加通用的业务编码规则生成》,我介绍了基于Winform和WPF的一个通用的业务编码规则的管理功能,本篇随笔介绍基于后端Web API接口,实现快速的Vue3+ElementPlus前端界面的开发整合,同样是基于代码生成工具实现快速的前端代码的生成处理。 在前面

    2024年02月04日
    浏览(31)
  • 前端如何提交数据给后端(包含前端和后端代码)

    如果你想提交表单数据到服务器,可以使用Ajax技术将表单数据通过HTTP POST请求到发送到服务器. 前端代码如下 在上面的代码中,我们使用 jQuery 的 $.ajax() 方法将表单数据转化为 JSON 并通过 HTTP POST 请求发送到服务器的 /submit-form 路径。服务器可以通过该路径接收表单数据并进行

    2024年02月09日
    浏览(34)
  • 前端和后端交互方式

    前端和后端交互一般通过HTTP请求和响应来进行。前端通过浏览器向后端发送请求,后端收到请求后进行处理并返回响应,前端接收响应后进行相应的处理。具体的交互方式如下: AJAX:前端通过JavaScript发起异步请求,向后端发送数据并接收响应,然后在页面上动态更新数据。

    2024年01月21日
    浏览(28)
  • 前端和后端分别是什么?

      从技术工具来看: 前端:常见的 html5、JavaScript、jQuery... 后端:spring、tomcet、JVM,MySQL... 毕竟,如果这个问题问一个老后端,他掰掰手指可以给你罗列出一堆的名词来,比如设计模式、数据库优化、框架、JVM、网络编程...... 从简单描述来看: 前端:入门简单,先易后难,

    2024年02月09日
    浏览(32)
  • 前端分页和后端分页

    分页可以在前端或后端进行,具体取决于项目的需求和实现方式。以下是前端分页和后端分页的一些特点和适用场景: 前端分页 : 特点 :前端分页是指在前端(浏览器端)对数据进行分页处理,即一次性获取所有数据,然后在前端进行分页展示和切换。 优点 :减轻了服务

    2024年04月10日
    浏览(62)
  • 前端和后端交互数据类型转换

    页面是男/女 后端pojo类以及数据库中是Integer 0/1  怎么样很方便地转化? ----枚举转化-- 在web开发中有时会使用枚举作为参数,而前端在调接口时就会出现传错或者传空导致后端拿不到枚举类型。在这里就使用反序列化@JsonDeserialize 这里是对枚举进行反序列化,所以首先编写一个

    2024年03月26日
    浏览(37)
  • 前端和后端解决跨域问题的方法

    目前很多java web开发都是采用前后端分离框架进行开发,相比于单体项目容易产生跨域问题。  后端接收到请求并返回结果了,浏览器把这个响应拦截了。 浏览器 基于同源策略,如果请求的网页和当前的服务 不是同源的 ,并且发送的是 XHR (XMLHttpRequest)请求,就会产生跨域

    2024年04月26日
    浏览(25)
  • php许愿墙代码包括前端和后端部分

    以下是一个简单的PHP许愿墙代码示例,包括前端和后端部分: 前端HTML代码(index.html): 后端PHP代码(wishwall.php): 以上代码实现了一个简单的许愿墙功能。用户在前端页面填写姓名和愿望,点击提交后,后端PHP代码会将愿望以文本形式追加到一个名为 \\\"wishes.txt\\\" 的文件中,

    2024年02月03日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包