1.JavaSE java基础语法 核心类库
web后端开发环境搭建
web后端(javaEE)需要在服务器中运行.这样前端才能访问到。
服务器:由java编写的后端服务器,通过接受网页端发来的请求,执行不同操作。
区别:
.xml :
ml结尾的,也是一种标记语言。 设计目的,用来在项目中存储配置信息的,制定好可以使用的哪些标签即可,(以标签信息存储数据)
web.xml :
存储web后端项目配置信息的, 在服务器启动时,由服务器加载读取的。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--
区别:
.xml : ml结尾的,也是一种标记语言。
设计目的,用来在项目中存储配置信息的,制定好可以使用的哪些标签即可,(以标签信息存储数据)
web.xml : 存储web后端项目配置信息的,
在服务器启动时,由服务器加载读取的。
-->
<!--
配置servlet程序,把我们开发的servlet程序注册到服务器,由服务器启动时加载,在第一次访问时,有服务器创建对象。
-->
<!--
<servlet>
<servlet-name>demo</servlet-name> /* 定义对象名 */
<servlet-class>com.ffyc.dormServer.web.DemoServlet</servlet-class> /* 注册servlet程序 */
<init-param> /* 向servlet中配置参数 */
<param-name>count</param-name>
<param-value>10</param-value>
</init-param>
</servlet>
/*
为servlet程序配置一个访问地址
*/
<servlet-mapping>
<servlet-name>demo</servlet-name> /* 为指定name的servlet程序配置访问地址*/
<url-pattern>/demo</url-pattern> /* 配置的供外界访问的地址,*/
</servlet-mapping>
-->
<servlet>
<servlet-name>index</servlet-name>
<servlet-class>com.ffyc.dormServer.web.indexServlet_fb</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping>
</web-app>
servlet对象的生命周期:
创建:
第一次访问Servlet程序时,由服务器创建
初始化:
在构建方法执行完成后,调用init()执行一些初始化操作
服务:
每次请求调用service()
销毁:
服务器关闭时,会销毁servlet对象,
并在销毁servlet对象时,会自动调用destroy(),执行一些最终操作。
destroy():当服务器关闭时,自动调用某些操作。
service:提供服务,每次请求servlet都会响应。
doget:处理get请求
dpost:处理post请求
前端向后端发送请求
从前端向后端发送请求,都是http请求 http请求只能发送,超文本内容
一次http请求中包含
请求行,请求头,请求体三部分
请求行:
请求方式,请求的资源地址等等
请求头:
包含客户端的一些环境信息,这些信息都是由浏览器自动发送的,以键值形式传递
请求体:
以表单post方式向后端发送的请求数据,在请求体中包含
get请求:
get请求主要是从后端获取信息,例如网络上的超链接,行后端传递少量信息,获得大量信息 请求数据在请求地址中直接拼接,所以传输的数据量有限,而且敏感数据不安全
post请求:
post请求主要用于向后端发送大量数据 请求数据在请求体中,可以传输大量数据,不会在地址中显示,所以相对安全
过滤器
过滤器是javaEE规范中定义的一种技术,可以让请求到达目标servlet之前,先进入到过滤器中,在过滤器中统一进行一些拦截处理, 当处理完成后,可以继续向后执行,到达目标servlet,如果配置了多个过滤器,也可以进入到下一个过滤器.
过滤器的作用:
对servlet发起的请求进行拦截过滤,在进入servlet前进行拦截,
把可以重复的代码提取到过滤器中去。
使用场景:
1.统一编码过滤
2.权限验证
3.跨域过滤
前后端交互
同步请求:
1.通过超链接和表单可以向后端发送请求,后端也可以正常响应内容。通过表单向访问后端的请求方式称为同步请求。
from表单-超链接
同步请求方式:
当网页与后端交互时,前端不能再进行其他操作,当服务器相应回来后,会把整个浏览器的内容覆盖掉。
在前后端交互时,不友好。
异步请求:
2.现在前后端交互请求,使用的是异步请求。
不会打断前端的正常操作。
在使用js中提供的XMLHttpRequest对象,发送和接受响应。
使用异步框架更方便的发送请求,例如axios框架。
axios:
发送异步请求,跨域问题,axios封装
axios基础语法:
①:this.$http.get(地址?Key=value&key2=value1).then(function(response){})
②:this.$http.post("/后端配置地址",key1+“值”+key2+“值”).then(function(response){})
跨域问题:
会出现跨域访问问题,浏览器默认不允许js对象接收来自其他服务器相应的内容。
当协议域名端口其中有一项不同时,就属于跨域访问。
跨域问题是一个前端问题,也可以通过后端解决,在响应头中设置允许跨域访问。
后端向前端响应更多的数据
后端一般情况下将数据封装到对象中, 但是js不认识java对象,
java中toString将对象转为字符串,js接收到后只是普通的字符串,不能使用面向对象方式操作
为了让js能够方便的进行操作,在java中将对象转为json格式的字符串,传递给前端js.
json (javaScript object Notation) javaScript 对象表现形式,是一种js对象表示方式的字符串.
目前json格式 已成为公认的前后端交互的数据标准格式。
在后端把java对象转为js能够认识的json格式。
javaScript object Notation 就是一种固定格式的字符串。
Web会话跟踪
因为http请求是无状态,不携带用户信息的,当用户登录成功后,之后在此与服务器交互时,服务器并不知道是哪个用户发送的请求,来访问服务器。
所以在web开发中,必须要解决此问题.(之后的请求,还需要让后端知道是哪个账号发送的请求)。
1.在登录成功后,在后端为用户生一个称为toekn的字符串(token令牌)
使用jwt组件为管理员生成token字符串.可以携带管理员信息,并且可以加密存储
(toekn令牌)
jwt生成的token有三部分 1.声明,生成类型,加密算法 2.载荷,管理员。 3.签证,结合签核两部分,秘钥 加密生成的(最重要的)
生成类型,加密算法 管理员信息 (id,账号,头像)