JavaEE

一.web开发概述

1.服务器

解释1:服务器是一款软件,可以向其他发送请求,服务器会做出一个响应。可以在服务器中部署文件,让其他人访问。

解释2:也可以把运行服务器软件的计算机称为服务器

2.安装服务器

Tomcat官方站点:http://tomcat.apache.org

3.安装JDK

1)配置两个环境变量

(1)path中

(2)JAVA_HOME

2)解压安装tomcat

(1)在bin目录中双击 startup.bat 命令启动

出现异常情况:

原因:端口号被占用。

解决方法:

在cmd输入指令:netstat -ano |findstr "端口号"。根据端口号找到进程。

输入指令:taskkill /f /t /im "进程PID号"。终止进程。

(2)访问 IP:8080

(访问时startup.bat小窗口不能关闭,作为服务器)

4.更改端口号

在conf目录下,打开server.xml文件,将69行的8080端口号更改为8088.

二.web开发环境搭建

1.创建web后端项目

1)创建

2)准备工作

4)在webapp中创建一个html文件

(测试,后面删掉)

2.发布web后端项目到tomcat中

1)在idea中集成tomcat

修改代码后,会自动将项目重新部署到tomcat中

2)页面显示

同时在tomcat中webapps文件夹下显示出domeServer文件夹

三.Servlet概述

1.定义

Servlet是Server Applet的简称,意思为用Java编写的服务器端的程序. 它运行在web服务器中,web服务器负责Servlet和客户的通信以及调用 Servlet方法。

2.作用

1)接收用户发送的请求数据

2)调用其他的java程序来处理请求

3)根据处理结果,将结果响应给客户端

四.Servlet创建和使用

1.创建一个类

继承javax.servlet.http包下的HttpServlet

精减:

(service()可以不重写,只重写doGet()与doPost().具体解释看http请求部分)

2.在web.xml文件中配置Servlet

3.运行Servlet程序

通过浏览器访问http:localhost:8080/ 项目名/配置的url

五.Serlvet生命周期

1.创建

第一次访问Serlvet程序时,由服务器创建。

2.初始化

在构造方法执行完成后,调用init()执行一些初始化操作。

3.服务

每次请求调用service()

4.销毁

服务器关闭时,会销毁serlvet对象,同时会自动调用destroy(),执行一些最终操作。

六.http协议, http请求

1.http协议

1)超文本传输协议 (HyperText Transfer Protocol)

服务器传输超文本 到本地浏览器的传送协议,是互联网上应用最为流行的一种网络协议,用于定义客户端浏览器和服务器之间交换数据的过程。

2)HTTP是一个基于TCP/IP通信协议来传递数据.

3)HTTP是一个属于应用层的协议,由于其简捷、快速的方式,适用于分布 式超媒体信息系统.

2.http请求

客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器 发送了一个http请求。

1)从前端像后端发送的请求,都是http请求

2)http请求只能发送超文本内容

3)一次http请求中包含请求行,请求头,请求行,请求体三部分

(1)请求行:包含请求的方式,请求的资源地址等

(2)请求头:包含客户端的一些环境信息,这些信息都是由浏览器自动发送的,以键值形式传递

(3)请求体:以表单post方式向后端发送的数据,在请求体中包含

①get请求:

主要是从后端获取信息的,例如网页上的超链接,从后端传递少量信息,获得大量信息请求数据在请求地址中直接拼接,所以传递的的数据有限,并且敏感数据不安全

② post请求:

主要用于像后端发送大量数据,例如上传表单,图片
请求数据在请求体中,可以传输大量数据,不会在地址中显示,所以相对安全

将重写的service()简化

由于前端请求有get和post两种,在后端的处理上略有不同,在父类的service方法中,会根据请求方法的不同,调用doget()或dopost()分别处理。

(使用post请求,如果传递的消息里有汉字会出现乱码)

3.处理get请求与post请求

(编码设置必不可少)

4.方法

七.http响应

一个http响应代表服务器向客户端回送的数据,它包括:响应行,响应头,响应体。

响应行里包含了http协议版本,以及用于描述服务器对请求的处理结果。

响应头用于描述服务器的基本信息,以及数据描述

响应体代表服务器向客户端浏览器回送的正文

状态码:服务器和浏览器用于确定状态的固定数字号码

200:请求成功

302:请求重定向

400:语义有误,当前请求无法被服务器理解或请求参数有误

404:请求资源不存在,通常是路径写错了或者服务器资源删除了

500:服务内部错误(代码异常)

八.过滤器

1.定义

过滤器是javaEE规范中定义的一种技术,可以让请求到达目标之前,先进到过滤器中,在过滤器中统一进行一些拦截处理,当处理完成后,可以继续向后执行,到达目标servlet,如果配置了多个过滤器中,也可以进入到下一个过滤器。

2.使用场景

1)统一编码过滤

2)权限验证

3)跨域过滤

3.与过滤器有关的API的三个接口

1)Filter

在init()中,可以获得通过filterConfig获得配置文件中的初始化参数

(图二16,17行)

2)FilterChain

3)FilterConfig

4.总结

过滤器用来实现通用的功能,减少代码冗余,提高可维护性

一个过滤器可以配置给多个资源使用

一个资源也可以配置多个过滤器,按照配置顺序调

九.前后端项目之间的交互

现在,在网页中通过超链接、表单就可以向后端发送请求,后端也可以正常响应内容。

1.同步请求

通过表单访问后端的请求方式称为同步请求。

同步请求:当网页与后端交互时,前端不能再进行其他操作,服务器端响应回来的内容会把整个浏览器中的内容覆盖掉。

(这种请求方式在前后端交互时不友好)

2.异步请求

现在的前后端交互请求都使用异步请求。

1)异步请求

同时可以做多件事情(前端与服务器交互时,不影响前端网页其他操作)

2)原理

使用js中提供的 XMLHttpRequest 对象实现发送异步请求和接收前端服务器响应。

3)异步请求时出现跨域访问问题

浏览器默认不允许js对象接受来自其他服务器响应的内容。

跨域问题是一个前端问题。可以在后端解决,也可以在前端解决。

4)跨域问题

跨域问题:不同服务之间进行访问。

请求的域名,协议,端口有一项不同就属于跨域访问

在添加的后端过滤器中响应时,告知前端本次响应是安全的,可以正常接收。

4.导入axious框架

5.后端像前端响应更多的数据

1)响应一个对象

(1)插入jar包

(2)通过jackson组件,将java对象转为json格式的字符串

(3)前段程序

(4)页面

2)相应多个数据

将数据包装到ArrayList数组中

6.从后端响应回标准数据格式

1)标准后端响应数据的模型类

2)将数据封装在result对象中

利用状态码反应不同状态

3)前端程序

4)页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/956320.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于海思soc的智能产品开发(高、中、低soc、以及和fpga的搭配)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 市场上关于图像、音频的soc其实非常多,这里面有高、中、低档,开发方式也不相同。之所以会这样,有价格的因素&am…

w~深度学习~合集5

我自己的原文哦~ https://blog.51cto.com/whaosoft/13083433 #Agile But Safe 足式机器人领域又一次迎来创新!CMU 与 ETH Zurich 团队联合研发了一个名为 「敏捷但安全」(ABS,Agile But Safe)的新框架,为四足机器…

Excel重新踩坑6:工作实战总结之根据筛选条件求平均成绩

一、前言: 这个博客的实战场景:给了一组学生数据,这些数据中,有全市20个社区,1-9年级的学生各科成绩。要求按照各社区统计1-9年级的所有学生各科平均值。下面首先介绍会用到的一些函数,然后再简单说明实战…

STL容器-- list的模拟实现(附源码)

STL容器-- list的模拟实现(附源码) List的实现主要考察我们对list这一容器的理解,和代码的编写能力,通过上节对list容器的使用,我们对list容器已经有了一些基本的了解,接下来就让我们来实现一些list容器常见…

PageHelper快速使用

依赖 <!--分页插件PageHelper--> <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.7</version> </dependency>示例 /** * 封装分页结果…

大华Java开发面试题及参考答案 (上)

TCP 的三次握手和四次挥手过程中各个状态的细节是怎样的&#xff1f; TCP&#xff08;Transmission Control Protocol&#xff09;是一种面向连接的、可靠的传输层协议&#xff0c;其三次握手和四次挥手过程涉及多个状态&#xff0c;以下是详细的状态细节&#xff1a; 三次握手…

ACL基础理论

ACL ——访问控制列表 ACL属于策略的一种 ACL访问控制列表的作用&#xff1a; 访问控制&#xff1a;在路由器流量流入或流出的接口上&#xff0c;匹配流量&#xff0c;然后执行设定好的动作&#xff1a;permit&#xff08;允许&#xff09;、deny&#xff08;拒绝&#xff…

【陕西省乡镇界】面图层shp格式arcgis数据乡镇名称和编码2020年wgs84坐标无偏移内容测评

标题中的“陕西省乡镇界面图层shp格式arcgis数据乡镇名称和编码2020年wgs84坐标无偏移.zip”表明这是一个地理信息系统&#xff08;GIS&#xff09;的数据集&#xff0c;专为陕西省的乡镇区域设计。该数据集以Shapefile&#xff08;shp&#xff09;格式提供&#xff0c;是GIS领…

简述mysql 主从复制原理及其工作过程,配置一主两从并验证

第一种基于binlog的主从同步 首先对主库进行配置&#xff1a; [rootopenEuler-1 ~]# vim /etc/my.cnf 启动服务 [rootopenEuler-1 ~]# systemctl enable --now mysqld 主库的配置 从库的配置 第一个从库 [rootopenEuler-1 ~]# vim /etc/my.cnf [rootopenEuler-1 ~]# sys…

(一)相机标定——四大坐标系的介绍、对应转换、畸变原理以及OpenCV完整代码实战(C++版)

一、四大坐标系介绍 1&#xff0c;世界坐标系 从这个世界&#xff08;world&#xff09;的视角来看物体 世界坐标系是3D空间坐标&#xff0c;每个点的位置用 ( X w , Y w , Z w ) (X_w,Y_w,Z_w) (Xw​,Yw​,Zw​)表示 2&#xff0c;相机坐标系 相机本身具有一个坐标系&…

Hugging Face功能介绍,及在线体验文生图模型Flux

Hugging Face简介 对于非机器学习或深度学习领域的人士来说&#xff0c;Hugging Face这个名字可能并不耳熟。然而&#xff0c;随着近年来大模型的迅速崛起&#xff0c;相信大家或多或少都有所接触。如果你对这一领域感兴趣&#xff0c;并在GitHub上查阅过一些开源资料&#xf…

华为ENSP:STP和链路聚合的管理与配置

这里将不再过度阐述STP和链路聚合的理论知识&#xff0c;不清楚的同学可以去观看Cisco文章中的理论知识 理论知识https://blog.csdn.net/2301_76341691/article/details/145166547?fromshareblogdetail&sharetypeblogdetail&sharerId145166547&sharereferPC&…

Asp.Net Core 8.0 使用 Serilog 按日志级别写入日志文件的两种方式

1、所需的Nuget包 本文项目的版本是.NET 8.0&#xff0c;如果使用其它版本安装适配版本即可。 Serilog.AspNetCore(8.0.2) Serilog.Sinks.File(5.0.0) Serilog.Expressions(5.0.0) 2、两种配置方式 2.1 代码形式&#xff08;Program.cs&#xff09; 在Program.cs文件中&am…

基于ESP32+VUE+JAVA+Ngnix的一个小型固件编译系统

一、前提 开发ESP32固件时&#xff0c;使用本地环境输出固件时&#xff0c;存在多个开发多种开发平台的问题。会导致最终输出的固件不统一。更可能因为本地的开发环境差异导致固件无法追溯。 基于上述原因&#xff0c;开发了一个小型的固件编译系统。将该系统部署在一台ubutn…

自然语言处理——自注意力机制

一、文字表示方法 在自然语言处理中&#xff0c;如何用数据表示文字是基础问题。独热编码&#xff08;One-hot Encoding &#xff09;是一种简单的方法&#xff0c;例如对于 “我”“你”“他”“猫”“狗” 等字&#xff0c;会将其编码为如 “我 [1 0 0 0 0 ……]”“你 [0 …

[JavaScript] 运算符详解

文章目录 算术运算符&#xff08;Arithmetic Operators&#xff09;注意事项&#xff1a; 比较运算符&#xff08;Comparison Operators&#xff09;注意事项&#xff1a; 逻辑运算符&#xff08;Logical Operators&#xff09;短路运算&#xff1a;逻辑运算符的返回值&#xf…

《汽车维护与修理》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答&#xff1a; 问&#xff1a;《汽车维护与修理》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的正规学术期刊。 问&#xff1a;《汽车维护与修理》级别&#xff1f; 答&#xff1a;国家级。主管单位&#xff1a;中国汽车维修行业协会 …

VUE学习笔记(入门)17__小黑记事本综合案例

目录结构 记得引入css样式 css代码 /* 清除浏览器的默认内外间距 */ html, body {margin: 0;padding: 0; } body {background: #fff; } button {margin: 0;padding: 0;border: 0;background: none;font-size: 100%;vertical-align: baseline;font-family: inherit;font-weig…

React的应用级框架推荐——Next、Modern、Blitz等,快速搭建React项目

在 React 企业级应用开发中&#xff0c;Next.js、Modern.js 和 Blitz 是三个常见的框架&#xff0c;它们提供了不同的特性和功能&#xff0c;旨在简化开发流程并提高应用的性能和扩展性。以下是它们的详解与比较&#xff1a; Next、Modern、Blitz 1. Next.js Next.js 是由 Ve…

【React】插槽渲染机制

目录 通过 children 属性结合条件渲染通过 children 和 slot 属性实现具名插槽通过 props 实现具名插槽 在 React 中&#xff0c;并没有直接类似于 Vue 中的“插槽”机制&#xff08;slot&#xff09;。但是&#xff0c;React 可以通过 props和 children 来实现类似插槽的功能…