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

仿牛客项目Day1

SpringMVC

架构

 spring的前端控制器是DispatcherServlet

模板引擎Thymeleaf

这个还不知道干嘛的

mvc演示

get请求

@RequestMapping:声明访问路径和http方法get或set什么的

@ResponseBody:java对象转为json格式的数据,表示该方法的返回结果直接写入 HTTP response body 中

@RequestParam:get方法,url上面加的参数可以提供默认值defaultValue或者是否一定需要required

@RequestParam注解的详细介绍 - tomingto - 博客园 (cnblogs.com)

@PathVariable:路径参数,就是获取再url中的参数,比如/students/123,不加问号的那种

post请求

前端:

后后端:

参数中的名字与表单中的名字保持一致,就会自动传递

 响应html数据

前端:

后端:

ModelAndView

 Model,返回字符串类型

响应json数据(异步请求)

异步请求:网页不全部刷新,悄悄地访问了服务器

Mybatis

使用mybatis,只用写接口,不用写实现类

SqlSessionFactory:用于创建SqlSession的工厂类

SqlSession:

主要是写mapper接口层,操作数据库,一个mapper接口层对应一个xml文件,,这个xml文件放在resources目录下的mapper文件夹里面。xml头部要声明作用在具体哪个mapper,用namespace来确定。在mapper接口层的所有方法都在xml中有对应的标签来处理,是根据id来进行识别的,resultType来确定返回类型,要select就<select>,操作的那个sql语句就是标签的名称。参数就写#{id}这个样子,注意里面的一定是方法的参数,一般肯定是驼峰命名。

@Param

<if>

开发社区首页

Mapper层

帖子Mapper

Service层

帖子Service

 用户Service,用来通过帖子userId查用户信息

Cotroller层

list里面有多个discussPost对象

list里面是多个map对象

map对象里面装的是一个discussPost对象和对应的user对象

前端页面

 

page

entity

controller

前端分页

 整体的条件判断:th:if = "${page.rows > 0}"

首页(一直都会显示):th:href = "@{${page.path}(current = 1)}"

末页(一直都会显示):th:href = "@{${page.path}(current = page.total)}"

上一页

如果是当前页是第一页,就不能点:th:class = "|page-item ${page.current == 1 'disabled':''}|"

上一页的路径:th:href = "@{${page.path}(current = ${page.current - 1})}"

下一页

如果是当前页是最后一页,就不能点:

th:class = "|page-item ${page.current == page.total 'disabled':''}|"

下一页的路径:th:href = "@{${page.path}(current = ${page.current + 1})}"

当前页:

如果这个页码是当前页,就激活:

th:class = "|page-item ${i == page.current ? 'active': ''}|"

一共显示的页数:

th:each = "i:${#numbers.sequence(page.from, page.to)}"

下面显示text:

th:text = "${i}"

相关文章:

仿牛客项目Day1

SpringMVC 架构 spring的前端控制器是DispatcherServlet 模板引擎Thymeleaf 这个还不知道干嘛的 mvc演示 get请求 RequestMapping&#xff1a;声明访问路径和http方法get或set什么的 ResponseBody&#xff1a;java对象转为json格式的数据&#xff0c;表示该方法的返回结…...

Effective C++ 学习笔记 条款17 以独立语句将newed对象置入智能指针

假设我们有个函数用来揭示处理程序的优先权&#xff0c;另一个函数用来在某动态分配所得的Widget上进行某些带有优先权的处理&#xff1a; int priority();void processWidget(std::st1::shared_ptr<Widget> pw, int priority);由于谨记“以对象管理资源”&#xff08;条…...

通过Electron打包前端项目为exe

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;爱蹦跶的大A阿 &#x1f525;当前正在更新专栏&#xff1a;《JavaScript保姆级教程》、《VUE》、《Krpano》 ✨ 正文 1、 拉取electron官网上的demo&#xff0c;拉下来之后安装依赖&#xff0c;项目跑起来之后&#xff0c;就…...

大模型时代企业知识全生命周期管理解决方案

©作者|Zhongmei 来源|神州问学 摘 要 越来越多的企业开始意识到数据的重要性。同时意识到&#xff0c;企业想保持长远的发展&#xff0c;还需要协调组织协作、利用现有的数据沉淀经验知识、累积数据资产。据IDC调查&#xff0c;目前企业结构化数据仅占到全部数据量的20%…...

C#冒泡排序算法

冒泡排序实现原理 冒泡排序是一种简单的排序算法&#xff0c;其原理如下&#xff1a; 从待排序的数组的第一个元素开始&#xff0c;依次比较相邻的两个元素。 如果前面的元素大于后面的元素&#xff08;升序排序&#xff09;&#xff0c;则交换这两个元素的位置&#xff0c;使…...

【前端寻宝之路】总结学习使用CSS的引入方式

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-BNJBIEvpN0GHNeJ1 {font-family:"trebuchet ms",verdana,arial,sans-serif;f…...

Python中输入输出函数input和print用法

# 读入一个字符串 s input() print(s)abcdef abcdef# 读入一个整数 n int(input()) print(n)5 5# 读入两个整数(空格间隔) # input()表示读入一行字符串 # split()表示以空格间隔切分出多个字符串序列&#xff0c;如果逗号间隔可以加参数split(,) # map()将序列每个元素转为整…...

简单认识Linux

今天带大家简单认识一下Linux&#xff0c;它和我们日常用的Windows有什么不同呢&#xff1f; Linux介绍 Linux内核&发行版 Linux内核版本 内核(kernel)是系统的心脏&#xff0c;是运行程序和管理像磁盘和打印机等硬件设备的核心程序&#xff0c;它提供了一个在裸设备与…...

javascript正则深入

文章目录 一、前言二、高级`API`2.1、模式匹配的用法`(x)`2.2、非捕获括号的模式匹配`(?:x)`2.3、先行断言`x(?=y)`2.4、后行断言`(?<=y)x`2.5、正向否定查找`x(?!y)`2.6、反向否定查找`(?<!y)x`2.7、字符集合和反向字符集合的用法 `[xyz] / [^xyz]`2.8、词边界和非…...

React-封装自定义Hook

1.声明函数 说明&#xff1a;声明一个以use打头的函数 function useToggle(){} 2.封装 说明&#xff1a;在函数体内封装可复用的逻辑 const [value,setValue]useState(true)const toggle()>{setValue(!value)} 3.返回 说明&#xff1a;把组件中用到的状态或者回调retu…...

Spark实战-基于Spark日志清洗与数据统计以及Zeppelin使用

Saprk-日志实战 一、用户行为日志 1.概念 用户每次访问网站时所有的行为日志(访问、浏览、搜索、点击)用户行为轨迹&#xff0c;流量日志2.原因 分析日志&#xff1a;网站页面访问量网站的粘性推荐3.生产渠道 (1)Nginx(2)Ajax4.日志内容 日志数据内容&#xff1a;1.访问的…...

Springboot中Redis的配置使用

新建 向pom.xml中添加依赖&#xff0c;这个可以不用标注版本号 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 配置yml文件&#xff08;文件名不可以错…...

【node版本问题】运行项目报错 PostCSS received undefined instead of CSS string

最近该项目没有做任何修改&#xff0c;今天运行突然跑不起来报错了 PostCSS received undefined instead of CSS string 【原因】突然想起来期间有换过 node 版本为 16.17.1 【解决】将 node 版本换回之前的 14.18.0 就可以了...

Spring揭秘:BeanDefinitionRegistry应用场景及实现原理!

内容概要 BeanDefinitionRegistry接口提供了灵活且强大的Bean定义管理能力&#xff0c;通过该接口&#xff0c;开发者可以动态地注册、检索和移除Bean定义&#xff0c;使得Spring容器在应对复杂应用场景时更加游刃有余&#xff0c;增强了Spring容器的可扩展性和动态性&#xf…...

蓝桥杯(3.5)

789. 数的范围 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int q sc.nextInt();int[] res new int[n];for(int i0;i<n;i)res[i] sc.nextInt();while(q-- ! 0) {int…...

434G数据失窃!亚信安全发布《勒索家族和勒索事件监控报告》

最新态势快速感知 最新一周全球共监测到勒索事件90起&#xff0c;与上周相比数量有所增加。 lockbit3.0仍然是影响最严重的勒索家族&#xff1b;alphv和cactus恶意家族也是两个活动频繁的恶意家族&#xff0c;需要注意防范。 Change Healthcare - Optum - UnitedHealth遭受了…...

7-18 彩虹瓶(Python)

彩虹瓶的制作过程&#xff08;并不&#xff09;是这样的&#xff1a;先把一大批空瓶铺放在装填场地上&#xff0c;然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。 假设彩虹瓶里要按顺序装 N 种颜色的小球&#xff08;不妨将顺序就编号为 1 到 N&#xff09;。现在工…...

php使用ElasticSearch

ElasticSearch简介 Elasticsearch 是一个分布式的、开源的搜索分析引擎&#xff0c;支持各种数据类型&#xff0c;包括文本、数字、地理、结构化、非结构化。 Lucene与ElasticSearch Apache Lucene是一款高性能的、可扩展的信息检索&#xff08;IR&#xff09;工具库&#xf…...

wpf prism左侧抽屉式菜单

1.首先引入包MaterialDesignColors和MaterialDesignThemes 2.主页面布局 左侧菜单显示在窗体外&#xff0c;点击左上角菜单图标通过简单的动画呈现出来 3.左侧窗体外菜单 <Grid x:Name"GridMenu" Width"150" HorizontalAlignment"Left" Ma…...

揭秘AI新纪元:近期人工智能发展的惊人突破与未来展望

近年来&#xff0c;人工智能&#xff08;AI&#xff09;领域的发展可谓是日新月异&#xff0c;其强大的潜力和广阔的应用前景引发了全球范围内的关注。本文将带您领略近期AI发展的风采&#xff0c;一探这个神奇领域的未来展望。 首先&#xff0c;让我们回顾一下近期AI领域的几…...

AWCII 040 CPU模块

AWCII 040 CPU 模块AWCII 040 是工业自动化控制系统中的中央处理单元&#xff08;CPU 模块&#xff09;&#xff0c;主要用于执行控制程序、数据运算及系统管理&#xff0c;是整个控制系统的核心“大脑”。一、基本概述AWCII 040 CPU 模块集成了处理器、存储单元及系统管理功能…...

高效双电源自动切换电路的设计与实现

1. 双电源自动切换电路的应用场景 双电源自动切换电路在现代电子设备中扮演着关键角色&#xff0c;它能确保设备在不同供电来源之间无缝切换&#xff0c;避免断电导致的系统崩溃。这种电路设计特别适合以下场景&#xff1a; 便携式设备&#xff1a;比如蓝牙音箱、移动电源等&am…...

Jmeter接口测试项目实战

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、什么是jmeter&#xff1f;JMeter是100%完全由Java语言编写的&#xff0c;免费的开源软件&#xff0c;是非常优秀的性能测试和接口测试工具&#xff0c;支持主流…...

如何快速解决AMD Ryzen系统调试问题:SMUDebugTool完整使用指南

如何快速解决AMD Ryzen系统调试问题&#xff1a;SMUDebugTool完整使用指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: ht…...

CTF实战:手把手教你用fastcoll工具复现MD5碰撞攻击(附Python验证脚本)

CTF实战&#xff1a;手把手教你用fastcoll工具复现MD5碰撞攻击&#xff08;附Python验证脚本&#xff09; 在网络安全竞赛和渗透测试中&#xff0c;MD5碰撞攻击是一个经典且实用的技术点。本文将带你从零开始&#xff0c;完整复现MD5碰撞攻击的全过程&#xff0c;包括工具使用、…...

深入解析Python中ort.InferenceSession的底层实现与性能优化

1. 揭开ort.InferenceSession的神秘面纱 第一次接触ort.InferenceSession时&#xff0c;我完全被它的性能震惊了。作为一个用Python加载ONNX模型的标准入口&#xff0c;它看起来就是个普通的类实例化操作&#xff0c;但背后却隐藏着C和Python的完美协作。这种设计让开发者既能享…...

Python通达信数据接口实战指南:开源量化工具配置与优化全解析

Python通达信数据接口实战指南&#xff1a;开源量化工具配置与优化全解析 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx MOOTDX是一个高效实用的Python通达信数据接口库&#xff0c;为量化投资和…...

如何快速配置Windows三指拖动功能:ThreeFingerDragOnWindows完整指南

如何快速配置Windows三指拖动功能&#xff1a;ThreeFingerDragOnWindows完整指南 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/Thre…...

电子电路中的“心脏”:电源

一、语言特性&#xff1a;Java 26 与模式匹配进化 1.1 Java 26 语言级别支持 IDEA 2026.1 EAP 最引人注目的变化之一&#xff0c;就是新增 Java 26 语言级别支持。这意味着开发者可以提前体验和测试即将在 JDK 26 中正式发布的语言特性。 其中最重要的变化是对 JEP 530 的全面支…...

如何高效保存B站视频?全功能跨平台工具BiliTools使用指南

如何高效保存B站视频&#xff1f;全功能跨平台工具BiliTools使用指南 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …...