Javaweb
WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。 Internet上供外界访问的Web资源分为:
1. 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。 2. 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。
静态web资源开发技术:Html 常用动态web资源开发技术:JSP/Servlet、ASP、PHP等 在Java中,动态web资源开发技术统称为Javaweb。
以下图为b站尚硅谷学习javaweb截屏,侵权必删!
html
HTML是什么?
HTML,全称“Hyper Text Markup Language(超文本标记语言)”,简单来说,网页就是用HTML语言制作的。HTML是一门描述性语言,是一门非常容易入门的语言。
从web1.0到web2.0,网页制作已经变为前端开发了。现在对于前端开发,你要学的不是什么“网页三剑客”,而是“HTML+CSS+JavaScript”;
2、前端技术核心元素的是HTML、CSS和JavaScript,但是我们还要学习一些Ajax、SEO知识;
3、前端技术只能开发静态网页,而进一步学习了后端技术,你能开发一个用户交互性更好、功能更加强大的网站;
常用标签
在学习html最开始的时候,最先学习的就是各种标签,然后结合起来做一个简单的表单。
form标签是表单标签
表单提交的时候,数据没有发送给服务器的三种情况:
ifrname标签
ifrname标签可以在页面上开辟一个小区域显示一个独立的页面
<ifrname src="1.标题标签.html" name="abc"></ifrname>
table标签(表格标签在开发中经常用到,增删改查就是在一个表格的基础上进行的)
<table width="400" border="1">
<caption>表格的标题</caption>
<col align="left"/>
<thead> 表格头
<tr> tr 行标签
<th>表头</th> th 是表头标签
</tr>
</thead>
<tbody> 表格体
<tr>
<td>内容</td> td 是单元格标签
</tr>
</tbody>
<tfoot> 表尾
<tr>
<td>脚注</td>
</tr>
</tfoot>
</table>
border设置表格标签 width设置表格宽度,height设置表格高度,align设置表格相对于页面的对齐方式。
a 表示超链接标签
img是图片标签 (用来显示图片) src属性可以设置图片的路径
alt属性表示当指定路径找不到图片时,用来代替显示的文本内容
get和post请求
get请求的特点:
- 浏览器地址栏中的地址:action属性【+?+请求参数】
- 请求参数的格式:name=value&name=value
- 不安全,并且由于数据长度的限制
post请求的特点:
- 浏览器地址栏中只要action属性值
- 相对于get请求更安全
- 理论上没有数据长度的限制
相对路径和绝对路径
在JavaSE中路径也分为相对路径和绝对路径
相对路径:从工程名开始算
绝对路径:盘符:/目录/文件名
在web中路径也分为相对和绝对两种
相对路径:
. 表示当前文件所在的目录
… 表示当前文件所在的上一级目录
文件名 表示当前文件所在的目录的文件,相当于 ./文件名 ./可以省略
绝对路径:
正确的格式:http://ip:port/工程名/资源路径
错误格式:盘符:/目录/文件名
css
选择器:浏览器根据“选择器”决定css样式影响的html元素(标签)
属性(property)是你要改变的样式名,并且每一个属性都有一个值,属性和值被冒号分开,并由花括号包围,这样就组成了一个完整的样式声明(declaration),例如:p {color:blue}
多个声明:如果要定义不止一个声明,则需要用分号将每一个声明分开,虽然最后一条声明的最后不可有加分号(但是尽量在每条声明的末尾都加上分号)
html注释不可以放到css里面 css注释用/**/
上面这个图片将css代码写在html页面的缺点:
1、只能在同一页面内复用代码,不能在多个页面复用css代码
2、维护起来不方便,实际的项目中会有成千上万的页面,要到每一个页面中修改很难受。
一般在开发中将css样式写成一个单独的css文件,在通过link标签引入即可复用。
<link rel="stylesheet" type="text/css" href="./styles.css" />
css常用样式
JavaScript
1、JavaScript语言主要是完成页面的数据验证,因此它运行在客户端,需要运行浏览器来解析执行JavaScript代码,Js是弱类型,Java是强类型,js的语法不够严格。
特点:
1、交互性(它可以做的就是信息的动态交互)
2、安全性(不允许直接访问本地硬盘)
3、跨平台(只要是可以解释JS的浏览器都可以执行,和平台无关)
4、变量,JavaScript的变量类型:
数值类型:number
字符串类型:string
对象类型:object
布尔类型:boolean
函数类型:function
JavaScript里特殊的值:
undefined 未定义,所有js变量未赋予初始值的时候,默认值都是undefined
NAN 全称是:not a number 非数字,非数值。
js的定义变量格式:
var 变量名; var 变量名 = 值
js里用的函数
函数的定义方式:
var 函数名 = function(形参列表){ 函数体 }
js中的事件**
什么是事件?事件就是电脑输入设备与页面进行交互的响应,我们称之为事件。
常用的事件:
onload 加载完成事件 页面加载完成之后,常用语做页面js代码初始化操作
onclick 单击事件 常用于按钮的点击响应操作
onblur 失去焦点事件 常用于输入框失去焦点后验证其输入内容是否合法
onsubmit 表单提交事件 常用于表单提交,验证所有表单项是否合法
事件的注册又分为静态注册和动态注册两种:
什么是事件的注册(绑定)?
其实就是告诉浏览器,当事件响应后要执行那些操作代码,叫事件注册和事件绑定
静态注册事件:通过html标签的事件直接赋予事件响应后的代码,这种方式我们叫静态注册
动态注册事件:是指通过js代码得到标签的dom对象,然后再通过dom对象.事件名 = function() { } 这种形式赋予事件响应后的代码,叫动态注册。
动态注册的基本步骤:
1、获取标签对象
2、标签对象.事件名 = function() { }
JavaScript事件对象
事件对象,是封装有触发的事件信息的一个JavaScript对象。
我们重点关心的是怎么拿到这个JavaScript的事件对象,以及使用。
如何获取JavaScript事件的对象?
在给元素绑定事件的时候,在事件的function( event) 参数列表中添加一个参数,这个参数名,我们习惯取名为event,这event就是javaScript传递事件处理函数的事件对象。
Document对象
documment 对象的理解 第一点:Document它管理了所有的html文档的内容。 第二点:document它是一种树结构的文档,有层级关系。 第三点:它让我们把所有的标签都 对象化。 第四点: 我们可以通过document访问所有的标签对象。
Document对象中的方法介绍***
document.getElementById(elementId)
通过标签的id属性查找标签dom对象,elementId是标签的id属性值
document.getElementByName(elementName)
通过标签的name属性查找标签的dom对象,elementName标签的name属性值
document.creatElement( tagName)
通过标签名查找标签dom对象,tagname是标签名
document.creatElement( tagName)
方法,通过给定的标签名,创建一个标签对象,tagName是要创建的标签名。
document对象有三个查询的方法,如果有id属性,优先使用getElement方法进行查询
如果没有id属性,则优先使用getElementsByName方法来进行查询
如果id属性和name属性都没有最后再按照标签名查getElementByTagName
以上三个方法,一定要在页面加载完成之后执行,才能查询到标签对象。
jQuery
引入jquery
常见问题?
1、使用jQuery一定要引入jQuery库吗?一定要
2、jQuery中的$到底是什么? 他是一个函数
3、怎么为按钮添加点击响应函数的?
使用jQuery查询到标签对象
使用标签对象.dick( function() { } )
如上图:
传入参数为:[html 字符串]时:
会对我们创建这个html标签对象
传入参数为:[选择器字符串]时:
${"#id属性值"} id选择器,根据id查询标签对象
${"标签名"} 标签名选择器,根据指定的标签名查询标签对象
${".class"} 类型选择器,可以根据class属性查询标签对象
jQuery对象 dom对象
一、啥是jQuery对象?什么是dom对象?
Dom对象
1、通过getElementById()查询出来的标签对象是Dom对象
2、通过getElementByName()查询出来的标签对象是dom对象
3、通过getElementByTagName() 查询出来的标签对象是dom对象
4、通过creatElement() 方法创建的对象,是dom对象
jQuery对象
5、通过jQuery提供的API创建的对象,是jQuery对象
6、通过jQuery包装的Dom对象,也是jQuery对象
7、通过jQuery提供的API查询到的对象,是jQuery对象 二、jQuery对象的本质是什么?
jQuery对象是dom对象的数组 + jQuery提供的一系列功能函数。
jQuery对象和dom对象可以相互转换。
jQuery基本选择器
(类似前面css学过的选择器)
ID 选择器:根据id查找标签对象
.class 选择器:根据class查找标签对象
element 选择器:根据标签名查找标签对象
※ 选择器:表示任意,所有元素(body)
selector1,selector2 组合选择器:合并选择器1,选择器2的结果并返回
1、属性过滤器: 2、内容过滤器
Tomcat
servlet
1、什么是servlet?
1、servlet是Javaee规范之一,规范就是接口
2、servlet是JavaWeb三大组件之一,三大组件分别是:servlet程序,Filter过滤器,Listener监听器。
3、serlvet是运行在服务器上的一个java小程序,它可以接受客户发送过来的请求,并响应数据给客户端。
原理剖析:
浏览器发送一个Http请求,Http请求用web容器分配给特定的servlet进行处理,servlet的本质是一个Java对象,这个对象拥有一系列的方法来处理Http请求,常见的就是dopost(),doget()方法,web容器包含了多个servlet,特定的http请求用哪个servlet来处理呢? 由web容器中web.xml来决定的。
实际开发中,使用继承HttpServlet类的方法实现servlet这个类,根据业务重写dopost(),doget()方法,然后写一大堆servlet,未来可以用springMVC来优化的。
web服务器习惯处理静态页面,所以需要一个程序来帮助处理动态请求,web服务器会将动态请求回传给帮助程序,返回处理后的静态结果给web服务器程序。
避免了web服务器处理动态页面,servlet本质是帮助程序,JSP的本质也就是servlet,web服务器把每一个访问的jsp文件先翻译成的对应的Servlet,在进行编译运行。
2,请求响应
servletContext类
1、servletContext是一个接口,它表示servlet上下文对象。
2、一个web工程,只有一个servletContext对象实例。
3、servletContext对象是一个域对象。
什么是域对象?
域对象,是可以像map一样存取数据的对象。
这里的域指的是存取数据的操作范围。
Map put()存数据 get()取数据 remove() 删除数据
域对象 setAttibute() getAttribute() removeAttribute()
3,POST,GRT请求
4,请求重定向
JDBC
Java中的数据存储技术
JDBC直接访问数据库
JDO(Java Data Object)技术
第三方O/R工具,mybatis Hibernate等
Jdbc是java访问数据库的基石,mybatis Hibernate等只是更好的封装了Jdbc
druid数据库连接池
这个技术具体可以看这篇文章
druid数据库连接池
JSP
(百度百科)JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
jsp现在不怎么用了,了解即可
2、jsp的九大内置对象
request 请求对象
response 响应对象
pageContext jsp的上下文对象
session 会话对象
application servletContext对象
config servletConfig对象
out jsp输出流对象
page 指向当前的jsp对象
exception 异常对象
3、jsp的四大作用域
四个域分别是:
pageContext(PageContextImpl类) 当前jsp页面范围内有效
request(httpServletRequest) 一次请求内有效
session(httpSession类) 一个会话范围内有效(打开浏览器访问服务器,到关闭浏览器)
application(ServletContext) 整个web工程范围内都有效(只要web工程不停,数据都在)
域对象是可以像map一样存取数据的对象,四个域对象功能一样,不同的是它们对数据的存取范围。
虽然四个域对象可以存取数据,在使用上他们是有优先顺序的。
从小到大的范围:pageContext request session applcation
由于jsp翻译之后,底层源代码都是使用out进行输出,所以在一般情况上,我们在jsp页面统一使用out来进行输出,避免打乱页面输出的内容顺序。
out.write() 输出字符串没问题
out.print() 输出任意数据都没有问题。(都转换成为字符串后调用的write输出)
cookie
web中的三大概念:cookie session application
cookie的工作原理
客户端,当我们访问某个服务器网站时,服务器就会根据浏览器的编号生成一个cookie返回给客户端,客户端下次访问的时候回将自己的本地的cookie加上url访问地址来给服务器,服务器以此来辨别用户的状态。
进而实现免用户登录的功能
session
(HttpSesion)
session回话中用来保存用户登录的信息
Session是存放在服务器端,当浏览器第一次请求时,服务器自动生成一个session和一个sessionID来唯一标识这个session,并将前一个服务器响应中sessionID防在请求中一并发送到服务器中
服务器从请求中提取sessionID并与保存的作对比,进而来实现用户的免登录功能
session的客户端实现形式
使用cookie来保存
使用url+附加信息
页面表单里+隐藏域
Http是无状态的协议
|