客户在浏览器上输入URL地址,回车.然后浏览器将URL地址发送给DNS服务器获取,对应Web服务器的IP地址,然后将IP地址返回给浏览器,然后浏览器向Web服务器发送请求,然后Web服务器查询数据,返回给浏览器,然后浏览器进行渲染,显示在客户面前
Web服务器是web应用的基础.web应用是运行在web服务器上的,同时web服务器用来接收浏览器发送的请求,并做出响应
nginx Tomcat apache IIs
常见浏览器的架构是: B/S Browser/server架构, HTTP协议提供通信
? 常见的浏览器有: Browser: IE Chrome edge firefox server:(nginx-转发代理 Tomcat-java apache-php iis-Asp.met)
? Tmocat服务器默认端口号是 8080
#### 如何修改端口号?
Tmocat服务器修改端口号在server.xml文件中修改
? 两种方式:
? 将项目打包成war压缩文件,复制到webapps目录下
? 还有一种是将编译好的项目文件 直接复制到webapps目录下
HTTP是超文本传输协议,用来传输数据. 传输层基于TCP,默认端口号是80
HTTPS是基于HTTP进行加密之后的传输协议. 默认端口号是443
HTML是超文本标记语言,HTML是浏览器解析渲染的语言,
分为请求和应答报文
头部head和主体body
GET POST PUT HEAD DELETE:
GET 查 POST 增 PUT 改 HEAD查头部元数据,不返回资源主体信息 DELETE: 删
get 传输小数据,最重要的是get请求是将 数据 放在URL里面
post 可以用于传输大数据 Post是将请求 放在body请求体里面
HTTP传输数据,将数据放在哪里是由 HTTP请求的方法决定的:
? GET请求是将数据放在请求头URL中,不放在请求体中
? POST PUT DELETE 是将数据放在请求体中
1xx: 返回信息状态比如 暂存什么什么的
2xx: 成功状态码
3xx: 重定向
4xx: 客户端错误
5xx:服务器错误
通信协议是:http请求协议
访问地址是: www.tstjava.com
端口号是 9000
input/test请求路径是
?a=3&b=5是查询参数,用于给服务器传递的参数
是一个基于Java平台的项目管理和整合工具
说明项目自身信息,项目运行所依赖jar包信息,项目运行环境信息比如:jdk,tomcat信息
jar包是归档文件,Java程序可以打包成jar包, jar包是将别人已经写好的一些类,然后对这些类进行打包,然后开发人员就可以将jar包引到自己的项目里面,使用这些类和属性.
war包是一个web应用程序,可以直接运行,一般是开发好的网站,打包之后部署在tomcat网站根目录下面,然后重启tomcat,然后这个包就可以自动解压,相当于代码发布
war包是 java web程序打的包
本地仓库
远程仓库(远程仓库也叫中央仓库,第三方仓库)
mvn clean 清除项目的构建缓存
mvn install 将项目安装到本地仓库
mvn compile 编译项目的源代码
mvn test 运行项目的单元测试
mvn package 打包项目,生成可执行文件或者部署包
过滤 映射 聚合 将Stream转换为一个包含这些元素的集合
stream.filter(n->n%2==0) //过滤,将偶数保留
stream.map(t->t*t)//映射 返回t的平方
steam.reduce(0,(a,b)->a+b) // 第一个值是默认值,第二个是一个函数,接受两个参数运算之后返回新的一个元素
collection() 将Stream转换为一个包含这些元素的集合
流操作 不改变原有的数据集
1.Servlet类不能直接运行,而是编译后得到二进制文件.class文件,部署到Web服务器才能运行
2.Servlet程序测试, 需要前端浏览器发送HTTP请求进行测试
3.Servlet类需要映射到指定的URL地址
1.接收HTTP请求
2.获取HTTP请求报文数据并且进行处理
3.返回HTTP响应报文
HTTP请求中的头部和通信相关的信息,可以通过HttpServletRequest方法获取
1.报文主体数据由用户通过表单产生,是键值对 key-value形式
获取数据的方法: String getParameter(String key)
出现中文乱码的原因:
中文乱码出现的原因在于 字符编码的不统一
如果页面的编码是utf-8,表单提交的值也是utf-8,和tomcat的编码默认不一样,所以就产生了乱码
实例化 初始化 服务 销毁
实例化: Servlet 容器创建Servlet的实力
初始化: 该容器调用init()方法
服务: 如果请求Servlet,则容器调用service()方法
销毁 销毁实例之前调用 destroy()方法
什么是页面跳转?
页面跳转是指将后台程序根据业务逻辑,自动从当前页面跳转到指定页面
页面跳转的方式?
页面跳转的方式有两种: 重定向 和 转发
重定向: 后台通知客户端浏览器重新访问新的URL地址
请求转发: 后台获取跳转页面的资源,生成HTML文档,然后发送到客户端
Servlet很重要的一个功能就是 实现和前端的数据交互,其中包括 接收前端传递的参数和给前端返回Http应答
? 因为通过HTTP请求,所以前端的数据可以放在头部也可以放在主体
? 前端传参的形式一般是 key1=value&key2=value
例如
get传参是将数据放在http头部, 是以字符串形式传参,受到URL地址的限制,不能超过1024字节
POST传参放在http body中.:
常用的传输内容类型:(content-type): appliction/json application/x-www-form-urlencoded.类get形式,将参数字符串进行urlencoded编码,放到Body中进行封装发送
multipart/form-data. 用来文件上传.同时传递二进制数据是
application/json.表示传递参数内容json字符串{“name”:“value1”,“pwed”:“value2”}.这个是目前前后端分离用的比较多的一种传输形式
Servlet类:
? @Webservlet(“/”)
? public class test extends HttpServlet{
? doGet(HttpServletRequest req, HttpServletResponse resp)
}
Servlet类是需要部署到tomcat上的
打包成war包放在webapps下
将编译好的项目文件复制到 webapps下
Servlet的生命周期:
实例化
初始化
服务
销毁
注销用户:
invalidate()
Servlet如何返回结果:
重定向: HttpServletResponse.sendRedirect()
转发: RequestDispatcher.forward()
输出字符串:
? HttpServletResponse.getWriter
输出二进制数据:
? HttpServletResponse.getOutputStream()
request.getParameter(“key”)
过滤器的应用领域:
角色权限管理,编码转换,数据清洗,日志管理
IOC控制反转的作用:
? 降低代码耦合度, 提高代码灵活性, 提供可扩展性
什么是控制反转?
将对象的创建和组装等细节交给Spring容器来管理,而不是程序代码控制
基于xml 基于注解 基于Java配置类
输出字符串:
? HttpServletResponse.getWriter
输出二进制数据:
? HttpServletResponse.getOutputStream()
request.getParameter(“key”)
过滤器的应用领域:
角色权限管理,编码转换,数据清洗,日志管理
IOC控制反转的作用:
? 降低代码耦合度, 提高代码灵活性, 提供可扩展性
什么是控制反转?
将对象的创建和组装等细节交给Spring容器来管理,而不是程序代码控制
基于xml 基于注解 基于Java配置类