JavaEE笔记

1.JavaSE java基础语法 核心类库

web后端开发环境搭建

web后端(javaEE)需要在服务器中运行.这样前端才能访问到。

服务器:由java编写的后端服务器,通过接受网页端发来的请求,执行不同操作。

区别:
.xml :

ml结尾的,也是一种标记语言。 设计目的,用来在项目中存储配置信息的,制定好可以使用的哪些标签即可,(以标签信息存储数据)

web.xml :

存储web后端项目配置信息的, 在服务器启动时,由服务器加载读取的。

java 复制代码
<?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,账号,头像)

相关推荐
听忆.8 分钟前
手机屏幕上进行OCR识别方案
笔记
Wlq041532 分钟前
J2EE平台
java·java-ee
XiaoLeisj39 分钟前
【JavaEE初阶 — 多线程】Thread类的方法&线程生命周期
java·开发语言·java-ee
阑梦清川41 分钟前
JavaEE初阶---网络原理(五)---HTTP协议
网络·http·java-ee
Selina K1 小时前
shell脚本知识点记录
笔记·shell
1 小时前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习
霍格沃兹测试开发学社测试人社区2 小时前
软件测试学习笔记丨Flask操作数据库-数据库和表的管理
软件测试·笔记·测试开发·学习·flask
幸运超级加倍~2 小时前
软件设计师-上午题-16 算法(4-5分)
笔记·算法
杨荧2 小时前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
王俊山IT2 小时前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习