Servlet详细了解

一 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请求包括三部分:

  1. 请求行:请求的地址, http版本,,状态码

  2. 请求头:客户的信息

  3. *请求体:表单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里
特性:

  1. 可以从浏览器创建XMLHpptRequest对象
  2. 从 node.js 创建http请求
  3. 拦截请求跟响应
  4. 取消请求

 

  1. 首先要引入axios.js文件或者安装axios的脚手架
  2. 然后使用对应的axios的语法

 

 

跨域

浏览器不让从一个域名的网页去请求另一个域名网页的资源,这是浏览器的同源策略造成的, 是javaScript加的安全限制, 不能接收另一个服务器给发送给前端的请求
跨域的定义是: 只要协议 域名 端口 有任何一个不同 就是跨域

1 为什么要限制跨域访问
万一是另外一个恶意网站响应的数据,会导致服务器出问题

2 为什么要跨域
公司的不同子域需要相互调用资源时

3后端解决跨域
后端可以设置响应头的声明,告诉浏览器此次的访问是安全的
location.assign 并不会出现跨域问题, 他会重新开一个窗口,跟原服务器没关系

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值