2021/11/22
复习内容:
- 了解spring5的基本特性、
- 通过spring5了解到java se的基础不扎实,重新复习了反射、注解等相关的内容、
- 重新学习web的概念以及html(超文本标记语言)的基础知识
- 了解了maven的基本情况
具体 内容的回顾
1了解spring5的基本特性
spring5 的下载安装
spring5 的核心包:beans、core 、context、expression
在导入的同时也需要 将其导入相应的loggin日志,从而进行相应的导入
spring5的定义:它是一款轻量级的java ee的框架的开发工具 (轻量级——指它的jar包相对于其他的是较小的)(联想到最近使用的“阿里云”是轻量级的云服务器,容易在系统上进行部署 )
spring的目的:是为了帮助开发者减少在程序开发过程 中繁琐重复的环节,是一种框架(框架 可以理解成:半成品),程序将其骨架搭建好,程序员指需要填充相应的代码逻辑,即可以实现相应的功能。
spring的核心部分:IOC 和 AOP 两部分组成
IOC (控制翻转):把创建对象的权利转交给框架,由框架来实现对象的创建(核心思想:利用反射的机制)
AOP(面向切面):不修改源代码而进行代码的增强(使用到了注解相关方面知识)
spring5在学习jdbc的过程中使用了template,目的去简化开发的流程(与数据池的连接、断开)
Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。
-
execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
-
update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
-
query方法及queryForXXX方法:用于执行查询相关语句;
具体的知识详情请了解jdbc部分,在此处就不具体的展开
了解了:IOC 的底层基本逻辑(xx谷的)
为什么 要使用IOC (目的):降低程序的耦合度
(耦合度):耦合度就是指软件程序对象之间的依赖性。程序与程序之间的耦合度越高,表示其程序的维护成本相对也就较高
(内聚性):是指机能相关的程序组合成一模块的程度,或是各机能凝聚的状态或程度。
程序的最好要求:低耦合高内聚 :
高内聚:尽可能类的每个成员方法只完成一件事(最大限度的聚合) 低耦合:减少类内部,一个成员方法调用另一个成员方法。
低耦合:减少类内部,一个成员方法调用另一个成员方法。它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口
底层实现:反射、工厂模式、配置文件(XML) :
具体的实现逻辑:相关的信息通过配置文件写入,通过反射解析得到相应的类信息,通过工厂模式(设计模式之一)来实现对象的生成
spring对IOC 容器提供的两个接口:
BeanFactory接口:
ApplicationContext接口:
ApplicationContex是 BeanFactory的子接口
ApplicationContex 与 BeanFactory的区别:
- ApplicationContex 加载配置文件时候就会把在配置文件对象进行创建。
- BeanFactory 加载配置文件时候不会创建对象,在获取对象时才会创建对象。
具体调用的api
反射
目的:获得相应的对象,在java中万物皆可为对象。
2. 反射
说明:其将类的各个组成部分封装为其他对象。
获取Class对象的三种方式:
① Class.forName(“全类名”)
多用于配置文件,将类名定义在配置文件中,读取文件,加载类。
② 类名.class
多用于参数的传递。
③ 对象.getClass()
多用于对象获取字节码的方式
结论:同一个字节码文件(.class)在一次程序运行过程中,只会被加载一次,无论通过哪一种方式获取Class对象都是同一个。
Class对象功能:
① 获取成员变量
Field【 】 getFields
Field getField(String name) (获取公共的public)
Field【 】 getDeclaredFields()
Field getDeclaredField(String name)
② 获取构造方法
Constructor【 】 getConstructors()
ConstuctorT getConstructor(类名,参数)
③ 获取成员方法
Method【 】 getMethods()
Method getMethod()
④ 获取类名
String getName()
Field成员变量
① 设置值
void set(Object obj, Object Value)
② 获取值
get(Object obj)
③忽略访问权限修饰符的安全检查
setAccessible(true) 暴力反射
Constructor:构造方法
创建对象
T newInstance(Object …)
如果使用无参构造方法创建对象:Class对象的newInstance方法。
网页的类型:C/S B/S
html、css、javascript的相关关系
HTML :提供相应的文本服务()
CSS:进行字体、颜色等的修饰
Javascript:进行相应的动画设置
静态网页、动态网页
当用户 申请的是静态网页,客户端会 将相应的文件发送到浏览器,浏览器中存在静态网页解析的 引擎,从而得到相应的静态网页结果
动态网页:会根据用户的登入情况,进行相应的动态变化
显示机制:动态网页会先在服务器 端根据用户的登入信息生成,并转变成 静态网页,后通过网络传输到用户的浏览器,解析显示
2021/11/23
学习内容:html 标签项目、css、javascript等相关内容
数据结构 与算法
CSS:页面布局操作
HTML表单标签
表单:(作用)用于收集采集用户输入的数据,实现程序(服务器)与用户之间的交互
使用标签:<form>
属性:action 提交数据的URL
method:提交方式:(7种)
两种较为常见:get 、post
两者的区别(get、post)
提交方式为get:
- 请求参数会在地址栏处进行显示
- 请求参数的长度是有进行限制的
- 使用不太安全
提交方式为post:
- 请求参数不会再地址栏中直接进行显示,而是封装到请求体中进行显示
- 请求参数的长度是没有限制的
- 通过点击F12中可以观察到具体的显示结果
- 使用相对较为安全
http协议具体提及相关(请求方法(4种))
表单中的数据要想被提交,就需要指定name属性,将相应的内容(用户和密码传递会URL的服务器)具体的结果可以观察地址栏中的结果
具体形式用户名<input name=“username”>
“”表单项 标签
input:可以通过type属性值进行改变元素性质
没有进行设置的时候,默认设置为“type”= text
type的取值类型:
- text:文本输入框(默认值)
- 在日常使用的时候发现在输入前会有文本输入框的文字提示,点击输入后就消失,输入框的内容发生变化则会
- 设置placeholder <palceholder = "请输入用户名">
- 点击输入则消失
label标签:可以与输入框之前的文字描述信息进行绑定;通过label标签与input标签的id进行绑定,当用户点击label标签的文字,就会自动跳转到inputt输入框中相应的输入信息(获得其相应的焦点)
<label >
- password:密码输入框 显示的时候是以密文形式显示
- radio (单选框)性别选择
- 要使得多个单选框实现单选的效果,必须使得其name属性值相同,来自同一范围
- 单选框选择的时候,在地址框会有反馈。通过设置单选框的value属性,指定被选中后返回相应的值,从而实现相应的逻辑
- 有着checked选项,可以表示默认被选中的效果(指定默认值)
- CheckBox(复选框)更多的选择方式:
- 要使得多个单选框实现单选的效果,必须使得其name属性值相同,来自同一范围
- 单选框选择的时候,在地址框会有反馈。通过设置单选框的value属性,指定被选中后返回相应的值,从而实现相应的逻辑
- 有着checked选项,可以表示默认被选中的效果(指定默认值)
file :文件选择框 用户可以选择本地的图片、文档进行相应的上传
图片 <input type ="file" name = "file">
隐藏域:具体并不会被界面显示和用户看到,但是其数据也会被相应的进行提交
按钮
- button //登入按钮 //只是一个普通的按钮,没有特殊的功能(但是后期与javascript进行绑定联动)
- submit //提交按钮(点击后进行提交,跳转到指定的服务器URL)
- image //图片提交按钮(点击图片进行提交) 属性:src 可以通过这个进行设置相应的图片
select(下拉列表) :
列表项 <option> :定义select下拉列表中的各项信息
<option>北京</option>
注意:在消息中记得设置相应的name 以value属性,方便在提交的时候进行信息的绑定
textarea(文本域):
CSS
- 概念:层叠样式表
- 层叠:表示这多个样式同时作用在同一个html的元素上,同时生效
- 作用:页面美化和布局控制
- 好处
- 功能强大
- 将内容展示和样式控制进行分离
- 降低其耦合度
- 让分工协作更容易,提高开发效率
- 使用(结合方式)
- 内联方式:在标签内使用style属性来指定css代码(键值对)
- 内部样式:在head标签内,定义style标签,style 标签的标签体就是css的代码
-
<style> div{ color:bule; } </style> <div> hello world <div>
使得所有的div都会变成蓝色
-
3.外部样式
1.定义css的资源文件
1.创建新的directory文件夹(css)2.在创建任意文件,修改后置成.css
2.在head标签内中,定义link的标签,引入外部的资源文件中
1.通过link标签将其资源引入(link rel =“stylesheet” herf=“css/a.css”)
div {
color:green;
}
<link rel = "stylesheet" herf ="css/a.css">
<div>hello world <div>
也可以通过这样的方式引入css
<style>
@import "css/a.css"
</style>
总结:
1——2——3 css的作用范围由(当前标签)——(当前页面)——(引入后的css所有页面)(范围越来越大)
后期常用的2、3
css的基本语法
格式: 选择器{
属性1:属性值1;
属性2:属性值2;
}
最后一个属性及属性值可以添加/不添加分号
选择器:筛选具有相似特征的元素
类型:(1):基础选择器:
1-1:id选择器:选择具体的id属性值;建议在一个页面id指要求唯一
具体写法:#id属性值()
1-2:元素选择器:选择具有相同名字的元素
语法:标签名称()
*id选择器的优先级高于元素选择器
1-3:类选择器:选择具有相同class类的元素
语法:.class属性值() (class为标签的属性值,可以对应多个)
*id选择器的优先级高于元素选择器
(2):扩展选择器:
*:表示选择所有元素
语法:*{}
2.并集选择器:选择多个标签合并的
*选择器1,选择器2{}
3.子选择器:选择器1下面的选择器2
语法:选择器1 选择器2 { }
4.父选择器:筛选选择器2上的父元素选择器1
选择器1 >选择器2{}
5.
属性:
- 字体、文本
- font-size :设置字体大小
- color:文本颜色
- text-align :对其方式
- line-height:行高
- border 边框 格式:border:属性1 属性2 属性3
- 背景
- background :复合属性:下包含多个子类型(颜色、图片)
- 背景图片:写法:background:url("img/logo.jpg");//设置不重复 NO-repeat
- 边框
- 尺寸
- 盒子模型
- margin :外边距
- padding:内边距
- 默认情况洗下内边距会影响整个的大小问题
- 解决办法:设置盒子的属性 ,让width和height就是盒子的最终的大小
- 默认情况洗下内边距会影响整个的大小问题
- float:浮动:目的让三个分行的div在同一行进行展示
- 左浮动:float:left
- 右浮动:float:right
- 居中:float:center
- 总结:根据视角不同,内外边距的概念不同