关于string boot项目实训课(准备工作)

news2024/11/23 6:32:15

一、页面–web页面–java代码之间的逻辑关系

首先在java文件夹下创建一个java类

@Controller//类上面要加入注解
public class TestController {
    @GetMapping("login")//对应web请求--localhost:9991/Login
    //类方法,用于处理逻辑
    public String login(String user,int pass){
        if(user.equals("张三") && pass==123456)
        {
            return "index";//跳转到index.html页面
        }
        else
            return "login";//跳转到login.html页面
    }
    @GetMapping("test")
    public String test(){
        return "index";
    }
}

java类用于写后台代码,进行逻辑处理

其中,关于@Controller注解的作用

1、@Controller 是Spring框架提供的注解。

1)@Controller注解可以将该类交由spring管理,从而能够使用getBean()或者@Autowired的方式从Spring中获取Bean实例。

2)@Controller标识的类,在语义上,表示该类代表控制器类。
这里控制层里面的每个方法,都可以去调用@Service标识的类,@Service标识的类中的方法可以继续调用@Resposity标识的接口实现类。

2、@Controller一般使用在Spring的包扫描开启的时候,例如在此案例中的配置。配置包扫描后,Spring会自动寻找指定包下的@Component , @Controller , @Service , @Repository等标注的类,并自动将其注册到Spring中。

其次,关于@GetMapping()的作用及注意事项

1.同一个方法在浏览器中直接输入地址是不能进入@PostMapping注解的方法中的,因为浏览器提交的是get请求
2.直接在浏览器地址栏输入某个地址、点击链接、表单默认的提交方式都是会发送get请求进入@GetMapping注解的方法中
3.直接在浏览器地址栏输入某个地址、点击链接、表单默认的提交方式都是会发送get请求进入@GetMapping注解的方法中。表单method = “post”时会进入@PostMapping的方法中
关于@GetMapping和@PostMapping的小结

之后创建两个html文件

login.html

从login页面发起web请求,form用于提交数据,数据用于判断,判断逻辑由java负责,
action中需要填写提交路径--java请求路径:需要将数据提交给哪个后台的java方法  @GetMapping("login")
name属性用于在后台中区分数据来自哪个输入框
<form action="/login">
    用户名<input type="text" name="user"/><br/>
    密 码<input type="password" name="pass"/><br/>
    <input type="submit" value="登录"/>
</form>

index.html

<body>
主页
</body>

关于数据如何流通?页面之间数据如何传递?

1, 访问localhost:9991/test
在这里插入图片描述
这里的test对应的是web请求 ,在这里插入图片描述

即localhost:9991/test 的运行结果是直接进行web请求,进而直接执行test方法
在这里插入图片描述

2, 访问localhost:9991/login.html
在这里插入图片描述
而这种访问方式,是从login页面发起web请求。
使用form进行提交数据,提交的数据用于后台代码进行逻辑判断;
action中需要填写的是提交路径–java请求路径,即需要将数据提交给哪个后台的java方法(或web请求) @GetMapping(“login”)
name属性用于在后台中区分数据来自哪个输入框

在这里插入图片描述
需要将在login.html页面上填写的数据,通过form表单提交给名为login的web请求
在这里插入图片描述
之后进入名为login的web请求的注解方法,即login 类方法,然后进行判断。

二、关于默认访问

常见一个空的index.html

<body>

</body>

1, 访问http://localhost:9991/
结果为空白页面
在这里插入图片描述
2, 访问http://localhost:9991/login.html
在这里插入图片描述

出现原因:index.html和login.html页面没有被创建时,访问localhost:9991/ 会出现404
默认 访问项目根地址(localhost:9991)是去项目中找index页面,如果index.html没有创建,则出现错误(404),有则进入index界面。

测试

当我的index.html中为如下内容时

<body>
<h1>主页</h1>
</body>

再次访问localhost:9991时,为以下结果
在这里插入图片描述

三、关于java代码和数据库连接问题

数据库使用的是mysql

首先关于Mysql的安装以及可视化图形工具的安装遇到的问题

**查看是否已安装mysql:**cmd–>mysql -V或者mysql -version
查看自己的mysql安装路径:在这里插入图片描述还可以通过cmd来查看:如何通过cmd来查看路径
安装可视化图形工具及破解:关于工具的下载及破解方法

其次,关于代码如何连接数据库

需要配置application.yml文件
在这里插入图片描述
在这里插入图片描述

只需要修改以上两处位置,一个为root的密码,另一个为数据库名在这里插入图片描述
以上就可以完成连接数据库!!!

之后通过java代码进行数据库的查询
1、创建一个文件夹pojo,之后在此文件夹下创建一个实体类Users,Users与数据库中的表名相同
在这里插入图片描述
User类

public class Users {//Users与数据库表名相同  实体类
                    //数据库中每一条记录也是使用实体类存储

    private int id;//与对应数据库表中的属性名相同
    private String user;
    private String pass;


    public Users(){

    }

    public Users(int id, String user, String pass) {//有参数的构造方法
        this.id = id;
        this.user = user;
        this.pass = pass;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    @Override
    public String toString() {
        return "Users{" +
                "id=" + id +
                ", user='" + user + '\'' +
                ", pass='" + pass + '\'' +
                '}';
    }
}

2、之后创建一个Dao文件夹,在此文件夹下创建一个名为UsersDao的Interface类文件,其中此文件的固定命名格式为:与表名一一对应+Dao
**

UsersDao类文件就可以实现从数据库到java代码的数据流通

**
UsersDao.java

@Mapper//注解
public interface UsersDao {//接口类
    @Select("select * from users where user ='admin' and pass = '123'")//select括号中写select查询语句
    Users show();//show():接口中的方法名  Users:返回值类型
}

当我调用show()方法时,他会执行@select中的查询语句,select查询语句会从数据库中查询到一条记录在这里插入图片描述
之后,show()会将查询到的记录放到Users中
具体过程如下
在这里插入图片描述
最后,如何调用show()方法:
在这里插入图片描述
其中,UsersDao usersDao;的意思为定义一个类型为UsersDao的接口变量

在这里插入图片描述
运行结果
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/154931.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实时Windows AD用户帐户锁定分析器工具

实时帐户锁定工具提供有关域帐户锁定原因的实时报表。本机Windows Active Directory帐户锁定策略是阻止连续、时限性、寻求登录的密码猜测尝试的一种实用方法&#xff0c;这会由于使用错误的密码而导致帐户锁定。帐户锁定的其他原因可能包括&#xff1a;由于采用严格的密码设置…

【项目】 改造原前端ViewUI框架,使其支持ElementUI 与 Avue

一、背景说明 因为原来前端的同事习惯用&#xff0c;ViewUI框架&#xff0c;于是基线版本的项目&#xff0c;都是使用的ViewUI框架搭建的。 但是&#xff0c;这个ViewUI的表格&#xff0c;是引用的第三方的vux的框架&#xff0c;在网上很少人使用&#xff0c;所以遇到问题&…

如果为产业互联网时代的发展寻找一个注脚的话,新产业无疑是一个最主要的特征

如果为产业互联网时代的发展寻找一个注脚的话&#xff0c;新产业无疑是一个最主要的特征。在这个时代&#xff0c;诸多原本看似无法改变的产业有了改变的可能性&#xff0c;诸多看似无法破解的痛点和难题有了新的解决方案。如果一定要找到导致这一蜕变的根本原因的话&#xff0…

用户积分和积分排行榜功能微服务实现

文章目录需求分析什么是积分积分的获取为啥需要积分服务数据库表创建 ms-points 积分微服务新增用户积分功能用户积分实体积分控制层积分业务逻辑层数据交互mapper层网关 ms-gateway 服务添加积分微服务路由用户服务中添加用户积分逻辑项目测试积分排行榜TopN(关系型数据库)构造…

記錄centos8 升級Python3.6到Python3.9以及可能遇到的問題

目录下载Python3.9.9可能出現的問題及解決方案安裝python3.9可能出現的問題及解決方案建立Python3和pip3的软鏈接:查看Python3和Pip3是否正确的被安装&#xff1a;将/usr/local/python3/bin加入PATHCentos8-默认的Python、python2版本为2.7&#xff0c;python3版本為3.6&#x…

迭代器深入理解

目录 vector 例子引入 迭代器的价值 通过vector和list 迭代器的差异再次深入理解 vector 例子引入 在学习vector底层erase&#xff0c;碰到迭代器失效的时候我有个疑惑&#xff0c;为什么sgi 版&#xff08;Linux g使用的&#xff09;库里实现的迭代器对于有些迭代器失效情…

threejs教程(一)

插件安装 npm i three项目引入 这里我随便找的VUE项目练习的 import * as THREE from "three";大致介绍一下threejs的逻辑 一般我们用它是来搭建三维模型的,搭建三维模型就需要的三个要素 场景(scene) 渲染器(renderer) 和相机(camera) 场景简单理解就是唱戏的戏台…

【C++升级之路】第六篇:模板初阶(函数模板类模板)

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【C学习与应用】 ✒️✒️本篇内容&#xff1a;泛型编程的概念&#xff0c;函数模板的概念、格式、原理和基础使用方法&#xff0c;类模板的格式和基础使用…

Java一维数组的定义、赋值和初始化

当数组中每个元素都只带有一个下标时&#xff0c;这种数组就是“一维数组”。一维数组&#xff08;one-dimensional array&#xff09;实质上是一组相同类型数据的线性集合&#xff0c;是数组中最简单的一种数组。 数组是引用数据类型&#xff0c;引用数据类型在使用之前一定要…

Linux操作系统--文本编辑器(保姆级教程)

文本编辑器 Linux是一种文本驱动的操作系统。用户在使用Linux过程中经常需要编辑文本&#xff0c;比如编写脚本文件来执行几条命令行&#xff0c;写电子邮件&#xff0c;创建C语言源程学等&#xff0c;因此&#xff0c;必须熟悉至少一种文本编辑器以便高效地输入和修改文本文件…

Spring循环依赖详解

概述 我们在日常的技术交流中经常会提到Spring循环依赖&#xff0c;听起来挺高大尚的&#xff0c;那Spring到底是如何实现的呢&#xff1f;下面我们就来一一揭秘。 什么是循环依赖 如上图所示&#xff0c;A对象中包含B对象的引用&#xff0c;同时B对象中包含A对象的引用&…

微信小程序自定义tabbar栏【中间突出样式】

文章目录前言一、自定义tabbar栏 配置二、添加自定义tabbar栏组件添加组件代码创建全局字段在组件中保存重要字段三、效果展示总结前言 昨天主管突然给我说微信小程序默认的 tabBar 不美观&#xff0c;让我改成中间突出的那种样式。纵然我心里面有千般不情愿&#xff0c;但还是…

python实现算法与数据结构基础-链表、栈、队列、排序算法、二分查找、二叉树

目录1、算法的概念1.1 举例&#xff1a;1.2 算法的五大特性&#xff1a;1.3 时间复杂度1.4 空间复杂度2、数据结构2.1 内存的存储结构2.2 数据结构的分类2.3 顺序表存储方式3、链表3.1链表实现3.2链表的方法3.3链表增加节点3.4链表删除节点3.5链表总结4、栈4.1 栈的介绍4.2 栈的…

负载均衡SLB和LVS的简单介绍

负载均衡 SLB 阿里云SLB(Server Load Balancing&#xff0c;服务器负载均衡)&#xff1a;是阿里云结合自身弹性计算平台的特点以及强大的技术优势&#xff0c;提供的一套软件负载均衡解决方案&#xff0c;以更好的满足弹性计算平台负载均衡的需求。 什么情况下使用SLB? 简单…

2022尚硅谷SSM框架跟学(四)Spring基础一

2022尚硅谷SSM框架跟学.四 Spring基础一Spring1.Spring简介1.1、Spring概述1.2Spring家族1.3Spring Framework1.3.1Spring Framework特性1.3.2Spring Framework五大功能模块2.IOC2.1.IOC容器2.1.1IOC思想(1).获取资源的传统方式(2).反转控制方式获取资源(3).DI2.1.2、IOC容器在…

(02)Cartographer源码无死角解析-(48) 2D点云扫描匹配→扫描匹配基本原理讲解,代码总体框架梳理

讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/127350885 文末…

项目管理工具dhtmlxGantt甘特图入门教程(八):数据加载(二)

DhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表&#xff0c;可满足应用程序的所有需求&#xff0c;是最完善的甘特图图表库。 这篇文章给大家讲解如何利用dhtmlxGantt加载任务日期。 DhtmlxGantt正版试用下载&#xff08;qun&#xff1a;764148812&#x…

【Linux】进程状态、优先级和进程切换

大家好我是沐曦希&#x1f495; 文章目录一、操作系统进程1.运行队列2.进程状态二、Linux进程状态三、两个特殊进程1.僵尸进程2.孤儿进程四、进程优先级1.优先级概念2.查看系统进程3.PRI和NI4.nice值的更改5.特性五、进程切换1.并发2.进程如何切换一、操作系统进程 什么是进程…

axios拦截器、ElementUI组件的使用

一、axios拦截器 1、axios模块的作用 是对基于http请求的封装。在浏览器对异步请求对象XMLHttpRequest进行封装 2、拦截器 ​ &#xff08;1&#xff09;请求拦截器&#xff1a;对客户端发起的请求进行统一的前期处理&#xff08;token、时间戳、cookie等&#xff09; ​ …

电脑软件经常出现程序未响应是什么原因?及4种解决方法总结

对于电脑小白来说&#xff0c;电脑经常会出现一下莫名其妙的问题&#xff0c;下面我总结的这些方法可以帮大家排除电脑的问题&#xff0c;让电脑速度如飞。资源不足&#xff1a;如果您的电脑资源不足&#xff0c;比如内存或 CPU 使用率过高&#xff0c;那么程序可能会变得不稳定…