一 web开发
1.概述
Web服务器是指驻留于因特网上某种类型计算机的程序.
可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览,是一个容器,是一个连接用户与程序之间的中间件。
在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器: Apache 的Tomcat,该服务器支持全部JSP以及Servlet规范.
2.搭建环境
Tomcat官方站点:http://tomcat.apache.org
获取Tomcat安装程序包 :
tar.gz文件是Linux操作系统下的安装版本
zip文件是Windows系统下的压缩版本
安装JDK
设置新建JAVA_HOME环境变量;设置PATH环境变量;安装Tomcat;解压tomcat压缩文件
tomcat下目录
双击 bin 目录下的 startup.bat 文件
server.xml是Tomcat的主配置文件
修改服务器端口号
3.在idea里配置tomcat
1.首先编辑配置
2.配置tomcat
3.创建并发web项目 1.创建java项目,添加web功能 2.发布web应用到服务器 自动将web应用发布到web服务器下,需要在开发工具中集成tomcat进来。
删除index.jsp, 添加servlet-api.jar
二 创建web项目
1.创建一个类继承javax.servlet.http包下的HttpServlet
2.在web.xml文件中配置Servlet
3.运行Servlet程序 通过浏览器访问http:localhost:8080/ 项目名/配置的url
由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被 外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文 件中使用元素和元素完成.
<2>> 在web-xml文件里设置Servlet配置
Web.xml文件用于对web应用下的web资源进行配置,服务
器在启动时会读取web.xml文件中的内容。
三 Servlet
一Servlet概述
Servlet是Server Applet的简称,意思为用Java编写的服务器端的程序.
它运行在web服务器中,web服务器负责Servlet和客户的通信以及调用Servlet方法。
Servlet的作用:
接收用户发送的请求数据
调用其他的java程序来处理请求
根据处理结果,将结果响应给客户端
二 Servlet创建和使用
xml指可扩展性标记语言,主要是存储数据,以特定的格式存储项目配置信息
Web.xml文件用于对web应用下的web资源进行配置,必须放在web应用目录WEB-INF目录下, 服务器在启动时会读取web.xml文件中的内容
像servlet、过滤器、监听器等等都在web.xml文件中配置
由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成
3运行servlet程序
通过浏览器访问http:localhost:8080/ 项目名/配置的url
ip(找到计算机)+端口(找到计算机上的某一个程序,这里也就是找到服务器)+项目名(一个服务器中有可能部署了多个项目,所以需要通过名称找到项目)+配置注册的servlet的名称(找到对应的servlet访问地址)
3 Servlet程序执行流程
一次http请求发送到后端找到servlet程序,是按照一个特定的顺序调用方法的。
构造方法 ---> init() ---> service() ---> destroy()
流程
1.创建阶段(构造方法)
servlet对象是由服务器创建的,创建时有两种情况:
默认情况下,当我们第一次向servlet发送请求时,由服务器创建此servlet对象,始终只创建一个,也就是只执行一次
2.初始化阶段(init(ServletConfig config))
在servlet创建成功后(也就是构造方法执行后)立即执行,初始化一些参数配置, 只执行一次
ServletConfig参数,用来封装servlet配置信息,我们可以在web.xml中配置,并通过config.getInitParameter(""),来获取对应的值,也就是通过参数读取配置信息
3.服务阶段(service())
service是为前端提供服务的,一旦有客户端请求,就会执行service(),提供服务
HttpServletRequest 表示请求,封装请求数据;HttpServletResponse 表示响应,它们都是接口,tomcat想要运行java程序,就要去写具体的实现类来实现该接口
4.销毁阶段(destroy())
当服务器关闭时,在servlet真正销毁之前,服务器会调用destroy(,)让我们的servlet程序可以去执行一些最终的操作
四.Http请求协议
即超文本传输协议
http是基与tcp与ip通信协议来传递数据, 是网络模型中的应用层协议, 用来规定浏览器与服务器之间如何传输超文本内容.
也是基于tcp/ip协议 客户端与服务器之间必须建立连接
一个http请求包括三部分:
-
请求行:请求的地址, http版本,,状态码
-
请求头:客户的信息
-
*请求体:表单post提交数据的区域
1get方式
超链接访问, form表单提交,默认是get方式, 地址栏直接访问
主要用于从服务器获取信息, 通过URL提交数据, 数据在URL里可以看到, 放置的数据一般在1kb左右
2 post方式
form表单提交, 指定method=“POST”
主要是向服务器提交信息, 数据放在请求体里提交, 可以向后端提供大量数据, 数据放在请求体里面
3请求对象
后端通过继承 HttpServlet 类, 该类重写了servlet里的必要方法,(例如:servlet的构造方法, init方法, service方法, destroy方法),参数里有request对象,respose对象对前端信息,响应信息进行包装
继承该类就只用写需要的dopost与doget方法
1. request对象与respose对象
1.http请求 request对象
通过request对象来获取前端传入的数据
request.getParameter(“具体参数名称”),一次只能接收一个数据
request.getParameterValues(“具体参数名称”) ,一次返回一个String的数组
2.前端获取后端内容以及respose对象
可以通过respose对象里封装的printWriter对象向前端发送数据
由于response会默认以ISO8859-1将需要输出到浏览器的字符进行解码, 如果输出的字符不存在, 就会乱码产生所以要设置解码
4.Filter接口
一个过滤器可以配置多个资源, 一个资源也可以配置多个过滤器
javaAPI提供Filter接口,编程过程中, 如果java类实现了这个接口, 这个类就叫做过滤器, 用Filter技术可以使得用户在访问某个资源时, 对访问请求和响应进行拦截,请求就不会到达目标的dopost或者doget
作用: 对服务器的web资源进行拦截(权限控制, 通过拦截资源进行权限控制, 是否可以访问 )
ajax概述
Ajax 全称为:“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML), 使用 Ajax,我们可以无刷新状态更新页面,并且实现异步提交,提升了 用户体验。
Ajax其实质是利用浏览器提供的一个特殊的对象(XMLHttpRequest) 异步地向服务器发送请求。
服务器返回部分数据,浏览器让你去利用这些数据对页面做部分的更新, 整个过程,页面无刷新,不打断用户的操作。
2创建 XMLHttpRequest 对象
axios框架
Axious是ajax框架,一个基于promise的Http库, 可以用在浏览器 和 node.js里
特性:
- 可以从浏览器创建XMLHpptRequest对象
- 从 node.js 创建http请求
- 拦截请求跟响应
- 取消请求
- 首先要引入axios.js文件或者安装axios的脚手架
- 然后使用对应的axios的语法
跨域
浏览器不让从一个域名的网页去请求另一个域名网页的资源,这是浏览器的同源策略造成的, 是javaScript加的安全限制, 不能接收另一个服务器给发送给前端的请求
跨域的定义是: 只要协议 域名 端口 有任何一个不同 就是跨域
1 为什么要限制跨域访问
万一是另外一个恶意网站响应的数据,会导致服务器出问题
2 为什么要跨域
公司的不同子域需要相互调用资源时
3后端解决跨域
后端可以设置响应头的声明,告诉浏览器此次的访问是安全的
location.assign 并不会出现跨域问题, 他会重新开一个窗口,跟原服务器没关系