SpringMVC简介
什么是MVC
MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分
M:Model,模型层,指工程中的JavaBean,作用是处理数据
JavaBean分为两类:
一类称为实体类Bean:专门存储业务数据的,如 Student、User 等
一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。
V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据
C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器
MVC的工作流程:
用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器
什么是SpringMVC
SpringMVC是Spring的一个后续产品,是Spring的一个子项目
SpringMVC 是 Spring 为表述层开发提供的 ...
概述
Spring是什么
Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring 框架除了自己提供功能外,还提供整合其他技术和框架的能力。
Spring 自诞生以来备受青睐,一直被广大开发人员作为 Java 企业级应用程序开发的首选。时至今日,Spring 俨然成为了 Java EE 代名词,成为了构建 Java EE 应用的事实标准。
自 2004 年 4 月,Spring 1.0 版本正式发布以来,Spring 已经步入到了第 6 个大版本,也就是 Spring 6。本课程采用Spring当前最新发布的正式版本6.0.2。
Spring的广义和狭义
在不同的语境中,Spring 所代表的含义是不同的。下面我们就分别从“广义”和“狭义”两个角度,对 Spring 进行介绍。
广义的 Spring:Spri ...
挂坠篇
2023年2月19日22:15:09,终于开学了(不带封校的那种),我和我们宿舍一起去我们学校旁边的火车头步行街聚个餐,毕竟好久没见了
在一起吃完饭散步的时候,偶然遇到了一个店铺,说是找名字,找到名字有好运,当时我就想毕竟要考研了吗,买一个挂坠图一个好兆头
说干就干,去里面千辛万苦终于找齐了自己的名字,期间还有服务员过来说你啥名字,我来帮你找,当时我说完我名字之后他直接从底下的盒子里面翻出来了,我当时就想,还能这么操作,不是自己找出来才有用吗,于是乎我拒绝了店员的好意,开始自己寻找,但是过了一会店员又来帮我找,感觉有点催我意思催我赶紧付钱,
唉,终于历经千辛万苦,找到名字之后,直接向店员说,让他们给穿起来吧,当时店员就是说先付这三个名字的钱 15 块钱,当时还能接受
和我一起还有一个舍友,他已经找完了,这时候他过来给我说,找完自己的之后还要去里面串一些零件,我当就想,既然是配件那总不能比我这三个字还贵吧,终究是我格局小了
到店里之后服务员,直接给我了几个吊坠的样式,让我从这里面选,大概有五六种样式把,我当时选了一个看起来不怎么贵的样式,就按这个串吧…
付完款之后我看着手机 ...
遇到的问题
在实现查询操作的时候,将查询操作分离出来了,这样会导致代码冗余,其实直接在展示的Servlet页面写查询即可
在点击上一页和下一页的时候会出现问题
当查询完毕的时候,结果出现了,点击下一页会自动跳转到下一页,但是点击上一页的时候无法回到上一页
解决方法
代码冗余问题
在执行页面展示的时候,其实也是一个带参查询操作,只不过这次的参数为空。
所以我们可以将第一次展示页设置成为一个空参的带参查询操作
通过获取前端传过来的查询参数,如果为空的话我们就设置为 “”
123456789// 判断上一次查询参数是否为空if(JDBCUtils.isEmpty((String) req.getSession().getAttribute("kv"))){ // 如果是空的话,则设置成“” 防止出现null问题 kv = "";}else{ // 如果不是空的话,则获取 kv = (String) req.getSession().getAttribute("kv&qu ...
HTML
frameset-iframe
frameset
作用:如果一个网页中包含很多个子网页,我们可以使用frameset来进行区分
1234567891011121314<html> <head></head> <!-- 如果里面有多个页面的话采用frameset标签, row是按行分割,clos是按列分割 --> <frameset row="20%,*"> <frame src="top.html" /> <frameset clos="15%,*"> <frame src="left.html" /> <frameset row="80%, *"> <frame src="main.html" /> ...
转载图床方案汇总 | Xlenco)
当前 MarkDown 作为一种程序员必备的轻量级标记语言,避免了富文本编辑器换平台就要重新排版的繁琐,使我们可以专注于技术的输出,但使用 markdown 也有弊端,那就是图片的存储问题,markdown 文件要用到图片时必须是一个链接。各个平台都有自己的图片存储方法,在不使用图床的情况下,同一篇文章发布到不同的平台需要单独上传图片一次。如果都放本地这样实在是太麻烦了。
目前最好的解决办法就是使用图床来存储图片
常用免费图床盘点
图床
说明
sm.ms
要注册,海外服务器【免费】
meotu
要注册,国内服务器【免费】
z4a 图床
要注册,国内服务器【免费】
imgtp
无需注册,国内服务器,最大支持 15MB【免费】
imgbed
无需注册,国内服务器,最大支持 20MB【免费】
聚合图床
要注册,国内服务器【免费】
牛图网
无需注册,日本服务器 【免费】
imgbb
无需注册,亚太服务器【免费】
upload
无需注册,海外服务器 【免费】
catbox
无需注册,海外服务器【免费】 ...
JDBC概述
数据持久化
持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以"固化”,而持久化的实现过程大多通过各种关系数据库来完成。
持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XM数据文件中。
主要是选择数据库,因为数据库可以存储多个类型,不像文本文件一样没有格式
JDBC介绍
JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API)),定义了用来访问数据库的标准Java类库,( java.sql.javax.sql )使用这些类库可以以一种标准的方法、方便地访问数据库资源。
JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。
JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快 ...
参考教程
window-terminal美化方案
美化后的效果
安装
现在微软商店上下载windows terminal preview
再在微软商店上搜索winget,一般都是windows自带的
win+X然后再按A,以管理员模式打开powershell,输入以下指令安装oh-my-posh:安装完毕之后请不要关闭终端,我们来配置主题
1winget install JanDeDobbeleer.OhMyPosh -s winget
管理员模式下的powershell,输入指令新建配置文件:
1New-Item -Path $PROFILE -Type File -Force
然后输入指令打开配置文件:
1notepad $PROFILE
在打开的配置文件中输入主题配置内容:
1& ([ScriptBlock] ...
数据库概述
RDBMS与非RDBMS
关系型数据库(RDBMS)
实质
这种类型的数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。
关系型数据库以行( row)和列(column)的形式存储数据,以便于用户理解。这一系列的行和列被称为表(table),一组表组成了一个库(database)。
表与表之间的数据记录有关系(relationship)。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系型数据库,就是建立在关系模型基础上的数据库。
SL就是关系型数据库的查询语言。
优势
复杂查询
可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。。
事务支持
使得对于安全性能很高的数据访问要求得以实现。
非关系型数据库(非RDBMS)
介绍
非关系型数据库,可看成传统关系型数据库的功能阉割版本,基于键值对存储数据,不需要经过SQL层的解析,性能非常高。同时,通过减少不常用的功能,进一步提高性能。
目前基本上大部分主流的非关系型数据库都是免费的。
有哪些非关系型数据库
...
Python
未读开始刷代码之前需要先配环境
需要的环境:
Python
selenium 谷歌插件
pymouse 控制鼠标移动
谷歌浏览器
注意事项:在使用中需要将自动控制的页面放到桌面最前端 ,并且需要将鼠标放到指定位置 .
Python基础,就不介绍怎么安装了
环境准备
selenium 插件安装
先下载控制selenium的包
1pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
下载selenium插件
网址:https://npmmirror.com/mirrors/
从中找到chromedriver,然后找到对应的版本号
自己谷歌的版本从下面这个方式寻找
将下载好的插件放到和python.exe同目录下
Pymouse 安装
先下载插件
1pip install pymouse -i https://pypi.tuna.tsinghua.edu.cn/simple
下载PyHook下载地址
找到自己对应版本的文件
下载pywin32下载地址找到自己对应的版 ...