初始Servlet(一)

今天带大家了解一下Servlet,学习过java的同学肯定对它不陌生,所以我就将我所学的皮毛整理出来共同学习,嘻嘻

一.九大对象

(1)out:向客户端发送数据的对象,发送的内容是浏览器需要显示的内容

(2)request:接收客户端发来的请求

(3)reponse:响应客户端的请求

(4)session:会话对象,HttpSession当前浏览器和服务器之间的一次通话

(5)application:全局对象,ServletContext的实例

(6)config:配置对象,ServletConfig的对象,进行Servlet的配置

(7)exception:异常对象,等同于java异常处理的对象,是Throwable的子类

(8)page:当前对象,等同于this,是Object的一个类型

(9)pageContext:上下文对象,相当于管理层

二.生命周期

(1)装载Servlet:这项操作一般是动态执行的。有些服务器提供了相应的管理功能,可以在启动的时候装载servlet并能够初始化特定的servlet。

(2)创建一个servlet实例

(3)调用servlet的init()方法

(4)一个客户端的请求到达服务器。创建一个请求对象。创建一个响应对象。

(5)激活servlet的Service()方法,并传递请求和响应对象。Service()方法获得关于请求对象的信息、处理请求、访问其他资源、获得需要的信息。Service()方法使用响应对象的方法,将响应传回给服务器,最终到达客户端。对于更多的客户端请求,服务器创建新的请求和响应对象,仍然激活此Servlet的Service()方法,将两个对象作为参数传递给它。
在这里插入图片描述

三.装载机制

(1)自动装载:某些Servlet如果需要在Servlet容器启动时就加载,需要在web.xml下它的标签里中,添加优先级代码:

<Servlet>
<load-on-startup>1<load-on-startup>
</Servlet>

数字越小表示该servlet的优先级越高,会先于其他自动装载的优先级较低的先装载

(2)Servlet容器启动后,客户首次向某个Servlet发送请求时,Tomcat容器会加载它

(3)当Servlet类文件被更新后,也会重新自动加载

Servlet是长期驻留在内存里的。某个Servlet一旦被加载,就会长期存在于服务器的内存里,直到服务器关闭。Servlet被加载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。

四.运行机制

(1)客户端(浏览器)在地址栏输入一个URL发起的HTTP请求

(2)服务器根据URL指定要执行的Servlet

(3)servlet运行service()方法,并给服务器做出响应

(4)服务器接收到了servlet的响应数据,将数据返回给请求者

(5)客户端接受响应数据,做出展示

五.实现方式

(1)通过实现Servlet接口

(2)通过继承GenericServlet抽象类

(3)通过继承HttpServlet类

(4)可以使用XML和注解方式注册

六.重定向(redirect)跟转发(forword)

1.请求转发:

request.getRequestDispatcher(URL地址).forword(request,response)

过程:·客户端发送请求,Servlet做出业务逻辑处理
      ·Servlet调用forword()方法,服务器Servlet把目标资源返回给客户端浏览器

在这里插入图片描述
2.重定向:response.sendRedirect(URL地址)

    过程:·客户端发送请求。Servlet做出业务逻辑处理
      ·Servlet调用reponse.sendRedirect()方法,把要访问的目标资源作为reponse响应头信息给客户端浏览器
      ·客户端浏览器重新访问服务器资源xxx.jsp,服务器再次对客户端浏览器做出响应

在这里插入图片描述
3.重定向(redirect)和转发(forword)区别:

A.请求的次数:Redirect:发起两次请求,并响应两次
             Forword:只一次请求一次响应
B.Request请求中的内容不同:Redirect:第一次请求中的内容丢失
                         Forword:请求的内容会保存
C.地址栏的变化:Redirect:地址栏显示的最终响应的资源
               Forword:地址栏中显示的第一次请求的资源
D.资源的位置:Redirect:可以是任何位置,WEB-INF,META-INF下无法访问
             Forword:只能是本项目中的位置,本项目中的任何位置都可以
E.发起的位置不同:Redirect:在客户端发起
                Forword:在服务器端发起
F.对象不同:Redirect:是通过HttpServletResponse对象完成的
           Forword:是通过RequestDispatcher接口的forword方法完成

内容若有差错的,还请大家指正一下!
图片均来源于网络上

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值