javaweb

javaweb,第1张

计划:先学习前后端基本概念,通过一个小项目熟悉流程,再阅读麻雀源码,参考修改。

文章目录 麻雀研究html概览js解析 htmlCSS webMySqljsAJAXVueMybatis
网页的构成:
html:用来定义网络内容的含义和基本结构的标记语言
CSS:用来描述网页的表现与展示效果
JS:通常用来执行网络的功能与行为

麻雀研究

问题记录:boostrap不是要引入源码包吗怎么没看到?还是说在css那里,或者说直接复制html不需要引入源码包?

html概览

collection.html对应的是某一类电影点进去的集合

index.html对应的是主页

movie.html对应的是电影点进去的界面

user.html点进去对应的是用户点进去的界面

user.html甚至可以选择模型?
meta标签:描述元数据

html底下的函数来自哪个文件呢?

recsys.js写的是一些加载数据的逻辑

collection的getQueryString函数:就来自它自己。

index的addGenreRow:来自recsys.js
作用是给每个种类的电影添加行

movies.html的addMovieDetails和addRelatedMovies:来自recsys.js

user.html里面的三个函数也是来自recsys.js

jquery写的是什么呢?
这好像只是一个包,没有具体的逻辑编写。jq的引入是为了简化js的编写的。

js解析

除了页面的设计,还应该关注底下的javascript代码。
需要了解是什么编程模型,html和script在一起,而且文件名是html

html

html的组成:
标签:网页的内容和文字
属性:标签的描述信息(eg所属的类,标签的位置)

常用标签:

标签名作用
p表示文本的一个段落
h表示文档标题, ,呈现了六个不同的级别的标题, 级别最高,而 级别最低
hr表示段落级元素之间的主题转换,一般显示为水平线
li表示列表里的条目。
ul表示一个无序列表,可含多个元素,无编号显示。
ol表示一个有序列表,通常渲染为有带编号的列表
em表示文本着重,一般用斜体显示
strong表示文本重要,一般用粗体显示
font表示字体,可以设置样式(已过时)
i表示斜体
b表示加粗文本
标签名作用
a表示超链接。
标签名作用
img可以显示一张图片(本地或网络)
属性名作用
title鼠标悬停(hover)时显示文本。
alt图形不显示时的替换文本。
height图像的高度。
width图像的宽度。
标签名作用
form表示表单,是用来收集用户输入信息并向 Web 服务器提交的一个容器
属性名作用
action处理此表单信息的Web服务器的URL地址
method提交此表单信息到Web服务器的方式
autocomplete自动补全,指示表单元素是否能够拥有一个默认值,配合input标签使用
标签名作用
label表单元素的说明,配合表单元素使用
input表单中输入控件,多种输入类型,用于接受来自用户数据
button页面中可点击的按钮,可以配合表单进行提交
input属性值作用
text单行文本字段
password单行文本字段,值被遮盖
email用于编辑 e-mail 的字段,可以对e-mail地址进行简单校验
属性值作用
button无行为按钮,用于结合JavaScript实现自定义动态效果
submit提交按钮,用于提交表单数据。
reset重置按钮,用于将表单中内容恢复为默认值。
image图片提交按钮。必须使用 src 属性定义图片的来源及使用 alt 定义替代文本。还可以使用 height 和 width 属性以像素为单位定义图片的大小。
CSS

CSS:用来描述网页的表现与展示效果,是用于设置和布局网页的计算机语言.
CSS是一门基于规则的语言 — 你能定义用于你的网页中特定元素的一组样式规则。这里面提到了两个概念,一是特定元素,二是样式规则。对应CSS的语法,也就是选择器(selects)和声明(eclarations)。
语法:
内联样式:
内联样式是CSS声明在元素的style属性中,仅影响一个元素:
内部样式表:
内部样式表是将CSS样式放在style标签中,通常style标签编写在HTML 的head标签内部。

外部样式表:< link rel=“stylesheet” href=“css文件” >

外部样式表是CSS附加到文档中的最常见和最有用的方法,因为您可以将CSS文件链接到多个页面,从而允许您使用相同的样式表设置所有页面的样式。

外部样式表是指将CSS编写在扩展名为css的单独文件中,并从HTML的link元素引用它,通常link标签编写在HTML 的head标签内部。

选择器:
选择器作用:选择html元素绑定,添加css的效果。
最常用的几种选择器:
元素选择器
类选择器
id选择器
通用选择器

开发者工具可以修改样式

web

系统结构:
cs结构:它指的是客户端——服务器的方式。其中C代表着Client,S代表着服务器。
bs结构:它指的是浏览器——服务器的方式。其中B代表着Browser,S代表着服务器。

服务器:服务器的概念非常的广泛,它可以指代一台特殊的计算机(相比普通计算机运行更快、负载更高、价格更贵),也可以指代用于部署网站的应用。我们这里说的服务器,其实是web服务器,或者应用服务器。它本质就是一个软件,一个应用。作用就是发布我们的应用(工程),让用户可以通过浏览器访问我们的应用。tomcat是服务器

HTTP的全称是:Hyper Text Transfer Protocol,意为 超文本传输协议。它指的是服务器和客户端之间交互必须遵循的一问一答的规则。形容这个规则:问答机制、握手机制。

静态资源:运行tomcat访问静态网页,无法跟java产生交互。其实这么看麻雀应该是一个静态的网络,我们最好能做成一个动态的,能够提供用户注册功能的网页。

动态资源servelet

需要重写service方法

Tomcat是服务器
服务器的概念非常的广泛,它可以指代一台特殊的计算机(相比普通计算机运行更快、负载更高、价格更贵),**也可以指代用于部署网站的应用。我们这里说的服务器,其实是web服务器,或者应用服务器。**它本质就是一个软件,一个应用。作用就是发布我们的应用(工程),让用户可以通过浏览器访问我们的应用。
相应状态码:

状态码说明
200一切都OK>
302/307请求重定向(客户端行为,两次请求,地址栏发生改变)
304请求资源未发生变化,使用缓存
404请求资源未找到
500服务器错误

Servlet:
svl是什么?
Servlet是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,是一个Java类。JavaWeb中servlet主要功能是承载网络连接,业务逻辑处理,比如一些编码格式的转换、登录拦截等。

我们通过浏览器发送请求,请求首先到达Tomcat服务器,由服务器解析请求URL,然后在部署的应用列表中找到我们的应用。接下来,在我们的应用中找应用里的web.xml配置文件,在web.xml中找到FirstServlet的配置,找到后执行service方法,最后由FirstServlet响应客户浏览器。整个过程如下图所示:
浏览器——>Tomcat服务器——>我们的应用——>应用中的web.xml——>FirstServlet——>响应浏览器

Servlet类视图

svl的生命周期
出生:请求第一次到达Servlet时,对象就创建出来,并且初始化成功。只出生一次,就放到内存中。

活着:服务器提供服务的整个过程中,该对象一直存在,每次只是执行service方法。

死亡:当服务停止时,或者服务器宕机时,对象消亡。

常用的方法是doGet()和doPost(),里面可以处理请求和相应。

cookie和session:这里的会话,指的是web开发中的一次通话过程,当打开浏览器,访问网站地址后,会话开始,当关闭浏览器(或者到了过期时间),会话结束。

serveletconfig:
它是Servlet的配置参数对象,在Servlet规范中,允许为每个Servlet都提供一些初始化配置。所以,每个Servlet都一个自己的ServletConfig。它的作用是在Servlet初始化期间,把一些配置信息传递给Servlet。

serveletcontext
ServletContext对象,它是应用上下文对象。每一个应用有且只有一个ServletContext对象。它可以实现让应用中所有Servlet间的数据共享。

请求和响应:

响应,它表示了服务器端收到请求,同时也已经处理完成,把处理的结果告知用户。简单来说,指的就是服务器把请求的处理结果告知客户端。在B/S架构中,响应就是把结果带回浏览器。

响应对象,顾名思义就是用于在JavaWeb工程中实现上述功能的对象。
响应是类,实现接口。响应是服务器收到请求,(把数据进行处理然后发送到浏览器的过程,不一定,也可能是别的处理形式)。有很多方法,需要(可以由)用户编写

请求,就是使用者希望从服务器端索取一些资源,向服务器发出询问。在B/S架构中,就是客户浏览器向服务器发出询问。在我们的JavaEE工程中,客户浏览器发出询问,要遵循HTTP协议所规定的。

请求对象,就是在JavaEE工程中,用于发送请求的对象。我们常用的对象就是ServletRequest和HttpServletRequest,它们的区别就是是否和HTTP协议有关。

jsp

类别适用场景
HTML只能开发静态资源,不能包含java代码,无法添加动态数据。
Servlet写java代码,可以输出页面内容,但是很不方便,开发效率极低。
JSP它包括了HTML的展示技术,同时具备Servlet输出动态资源的能力。但是不适合作为控制器来用。
域对象名称范围级别备注
PageContext页面范围最小,只能在当前页面用因范围太小,开发中用的很少
ServletRequest请求范围一次请求或当期请求转发用当请求转发之后,再次转发时请求域丢失
HttpSession会话范围多次请求数据共享时使用多次请求共享数据,但不同的客户端不能共享
ServletContext应用范围最大,整个应用都可以使用尽量少用,如果对数据有修改需要做同步处理

EL表达式
全称是Expression Language。意为表达式语言。它是Servlet规范中的一部分,是JSP2.0规范加入的内容。其作用是用于在JSP页面中获取数据,从而让我们的JSP脱离java代码块和JSP表达式。

filter:
它可以对web应用中的所有资源进行拦截,并且在拦截之后进行一些特殊的 *** 作。

常见应用场景:URL级别的权限控制;过滤敏感词汇;中文乱码问题等等。

方法/类型ServletFilter备注
初始化 方法void init(ServletConfig); void init(FilterConfig); 几乎一样,都是在web.xml中配置参数,用该对象的方法可以获取到。
提供服务方法void service(request,response); void dofilter(request,response,FilterChain); Filter比Servlet多了一个FilterChain,它不仅能完成Servlet的功能,而且还可以决定程序是否能继续执行。所以过滤器比Servlet更为强大。 在Struts2中,核心控制器就是一个过滤器。
销毁方法void destroy();void destroy();

监听器:
在介绍监听器之前,先跟同学们普及一个知识,观察者设计模式。因为所有的监听器都是观察者设计模式的体现。

那什么是观察者设计模式呢?

它是事件驱动的一种体现形式。就好比在做什么事情的时候被人盯着。当对应做到某件事时,触发事件。

观察者模式通常由以下三部分组成:

​事件源:触发事件的对象。

​事件:触发的动作,里面封装了事件源。

​监听器:当事件源触发事件时,要做的事情。一般是一个接口,由使用者来实现。(此处的思想还涉及了一个涉及模式,我们在JDBC的第二天课程中就给同学们讲解,策略模式)

MySql

存储引擎:

特性MyISAMInnoDBMEMORY
存储限制有(平台对文件系统大小的限制)64TB有(平台的内存限制)
事务安全不支持支持不支持
锁机制表锁表锁/行锁表锁
B+Tree索引支持支持支持
哈希索引不支持不支持支持
全文索引支持支持不支持
集群索引不支持支持不支持
数据索引不支持支持支持
数据缓存不支持支持N/A
索引缓存支持支持N/A
数据可压缩支持不支持不支持
空间使用N/A
内存使用中等
批量插入速度
外键不支持支持不支持

索引:

我们之前学习过集合,其中的ArrayList集合的特点之一就是有索引。那么有索引会带来哪些好处呢?没错,查询数据快!我们可以通过索引来快速查找到想要的数据。那么对于我们的MySQL数据库中的索引功能也是类似的!MySQL数据库中的索引:是帮助MySQL高效获取数据的一种数据结构!所以,索引的本质就是数据结构。在表数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式指向数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。一张数据表,用于保存数据。 一个索引配置文件,用于保存索引,每个索引都去指向了某一个数据(表格演示)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uiYb0IOF-1653120570593)(MySQL高级-04-授课笔记.assets/04.png)] js

js是用来增强用户和html页面交互行为的,让页面有一定动态效果的脚本语言。
语法跟常见的编程语言差不多,循环判断之类的,可以写方法,可以有类与对象,继承。
跟css一样,也可以根据html元素的属性绑定html元素(称之为js的事件,当执行了某些 *** 作时,会触发某些代码的执行),可以对html增删改。

事件:eg:鼠标单击,鼠标双击,触发焦点。当触发事件时可以编程实现一定的逻辑。怎么实现呢?使用文档对象模型对html进行增删改。

DOM对象:文档对象模型
执行对html增删改查的 *** 作。
可以通过属性获取html元素,对元素进行增删改。也可以 *** 作html元素的属性, *** 作html的文本。

jquery:
是Javascript库:封装了Javascript的函数,简化javascript编程,也有事件。
jquery也有选择器,和js效果类似但更简单。

AJAX

异步的js和xml,是用于快速创建动态网页的技术。
而 AJAX 通过浏览器与服务器进行少量数据交换,就可以使网页实现异步更新。也就是在不重新加载整个页 面的情况下,对网页的部分内容进行局部更新。
js和jquery都可以实现ajax。

Vue

用来构建用户界面的前端框架,方便与其他库进行整合。
个人理解还是 *** 作html的一套范式,查资料得到是一套js框架
Vue程序包含视图和脚本两个核心部分:

脚本:Vue核心对象
el:接收获取的元素。
data:保存数据。
methods:定义方法。

视图部分:
数据绑定:{{变量名}}

Mybatis

mybatis是简化jdbc的 *** 作,通过配置映射文件的方式。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1298938.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存