Servlet生命周期
http协议
一个http请求包括三部分:
请求行:请求的地址, http版本,,状态码
请求头:客户的信息
请求体:表单post提交数据的区域
get方式
超链接访问, form表单提交,默认是get方式, 地址栏直接访问
主要用于从服务器获取信息, 通过URL提交数据, 数据在URL里可以看到, 放置的数据一般在1kb左右
post方式
form表单提交, 指定method=“POST”
主要是向服务器提交信息, 数据放在请求体里提交, 可以向后端提供大量数据, 数据放在请求体里面
请求对象
后端通过继承 HttpServlet 类, 该类重写了servlet里的必要方法,(例如:servlet的构造方法, init方法, service方法, destroy方法),参数里有request对象,respose对象对前端信息,响应信息进行包装
继承该类就只用写需要的dopost与doget方法
注意:Servlet接口里的service(HttpServletRquest,HttpServletRquest )是为前端通过服务的, 每次请求都会被访问 HttpServletRquest 表示请求 HttpServletRespose 表示响应,请求与响应对象里面封装了数据, 具体是服务器里的类实现HttpServletRespose 接口,并且把数据封装进去
通过request对象获取传输信息
注意: 由于前后端解码规则问题, post请求的数据向后端传输时,中文时会乱码, 所以在接收之前(一定要在之前设置)要进行设置编码格式get请求在Toncat8.0 之后 中文不会乱码
前端获取后端内容以及respose对象
响应状态码
Filter过滤器
Filter接口
javaAPI提供Filter接口,编程过程中, 如果java类实现了这个接口, 这个类就叫做过滤器, 用Filter技术可以使得用户在访问某个资源时, 对访问请求和响应进行拦截,请求就不会到达目标的dopost或者doget
作用: 对服务器的web资源进行拦截(权限控制, 通过拦截资源进行权限控制, 是否可以访问 )
该接口有三个方法init(), doFilter(), destory()
1.init()
该方法是对filter对象进行初始化
的方法,仅在容器初始化filter对象结束后被调用一次
2.doFilter()
该方法是filter进行过滤操作的方法,是最重
要的方法。过滤器实现类必须实现该方法。方法体中可以对request
和response进行预处理。其中FilterChain可以将处理后的request
和response对象传递到过滤链上的下一个资源。
3.destory()
该方法在容器销毁过滤器对象前被调用。不用时只需要重写doFilter
在web.xml文件里面配置过滤器
AJAX (Asynchronous JavaScipt and XML)(异步JavaScript 和 XML)
Ajax 全称为:“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML), 使用 Ajax,我们可以无刷新状态更新页面,并且实现异步提交,提升了 用户体验,其本质是利用浏览器提供的一个特殊的对象(XMLHttpRequest) 异步地向服务器发送请求。服务器返回部分数据,浏览器让你去利用这些数据对页面做部分的更新, 整个过程,页面无刷新,不打断用户的操作。
创建 XMLHttpRequest 对象
就绪状态码
axios框架
Axious是ajax框架,一个基于promise的Http库, 可以用在浏览器 和 node.js里
特性:
- 可以从浏览器创建XMLHpptRequest对象
- 从 node.js 创建http请求
- 拦截请求跟响应
- 取消请求
- 首先要引入axios.js文件或者安装axios的脚手架
- 然后使用对应的axios的语法
axious框架实现异步请求
跨域问题
在前端服务页面中(8848) 接收后端服务器响应的数据(8080)
使用ajax技术前端后交互,前端默认会进行阻止,不让前端服务接收其他后端的数据.
为了安全性, 协议,域名,端口有一个不相同就是属于跨域问题
跨域问题解决: 前端解决, 后端解决,在响应头中设置说明,告知浏览器,此次的响应是可靠的
在web.xml中配置