1.重定向

(1)什么是重定向?

服务器通知浏览器访问一个新的地址。
注:
    服务器可以通过发送一个302状态码及一个
Location消息头(该消息头的值是一个地址,一般
称之为重定向地址)给浏览器,浏览器收到之后,
会立即向重定向地址发请求。

(2)如何重定向?

response.sendRedirect(String url)。
注:
    url就是重定向地址。

(3)一个细节:

重定向之前,服务器会清空response对象
上存放的数据。

(4)两个特点:

a.重定向地址是任意的。
b.重定向之后,浏览器地址栏的地址会发生变化。

2.Servlet的生命周期

(1)什么是Servlet的生命周期?

Servlet容器如何创建Servlet实例,如何对其
进行初始化,如何调用其方法处理请求,以及
如何销毁其实例的整个过程。

(2)生命周期分成几个阶段?

1)实例化

a.什么是实例化?
容器调用Servlet的构造器,创建相应的对象。
b.什么时候实例化?
    情形1:容器收到请求之后。
    情形2: 容器启动之后,立即实例化。

    注:容器只会创建一个实例!

2)初始化

a.什么是初始化?
容器创建Servlet实例之后,接下来会调用
该实例的init方法。
b.init方法只会执行1次!
    注:init方法用于获取一些资源。
c.GenericServlet已经实现了init方法:
    注:
      将容器传递进来的ServletConfig对象
    保存下来了,并且提供了getServletConfig
    方法用于获得该对象。
d.如何实现自已的初始化处理逻辑?
    只要override GenericServlet的init
    方法(注意,是那个不带参的init方法)。

e.初始化参数

3)调用(就绪)

a.什么是就绪?
容器在收到请求之后,会调用Servlet实例的
service方法来处理请求。
b.HttpServlet类已经实现了service方法。
  注:
    b1.依据请求类型(get/post)调用对应的
    doGet或者doPost方法。
    b2.doGet方法和doPost方法只是抛出了一个异常。
    b3.可以override doGet和doPost,或者也
    可以override service方法来实现自已的
    处理逻辑。

4)销毁

a.什么是销毁?
容器在删除Servlet实例之前,会调用该实例的
destroy方法。
b.该方法只会执行一次!
c.可以override GenericServlet的destroy方法
来实现自已的销毁处理逻辑。

(3)生命周期相关的几个接口与类(了解)

a.Servlet接口
    init(ServletConfig config);
    service(ServletRequest req,
        ServletResponse res);
    destroy()
b.GenericServlet抽象类
    实现了Servlet接口中的部分方法(init,
    destroy)。
c.HttpServlet抽象类
    继承了GenericServlet,实现了service
    方法。

练习:计算bmi指数
bmi指数 = 体重(公斤) / 身高(米) / 身高(米)

如果bmi指数 < min  体重过轻
如果bmi指数 > max  体重过重
否则体重正常

min,max要求使用初始化参数来配置。

Servlet学习笔记04——什么是重定向,servlet生命周期?的更多相关文章

  1. Servlet学习笔记(一)之Servlet原理、初始化、生命周期、结构体系

    Servlet是用java语言编写的应用到Web服务器端的扩展技术,与java对象的区别是,Servlet对象主要封装了对HTTP请求的处理,并且它的运行需要Servlet容器的支持(以下会介绍原因, ...

  2. Servlet学习笔记(二)之Servlet路径映射配置、Servlet接口、ServletConfig、ServletContext

    Servlet路径映射配置 要使Servlet对象正常的运行,需要进行适当的配置,以告诉Web容器哪个请求调用哪个Servlet对象处理,对Servlet起到一个注册的作用.Servlet的配置信息包 ...

  3. Android学习笔记(五)——活动的生命周期

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 为了能写出流畅连贯的程序,我们需要了解一下活动的生命周期. 一.返回栈 Android 中的活动是可以层叠的. ...

  4. Android学习笔记(六)Fragment的生命周期

    在上一篇博文中对Fragment做了简单的介绍,现在再来探讨一下Fragment的生命周期. 一.Fragment的几种状态: 与Activity类似,Fragment也有一下几种状态: · 活动状态 ...

  5. 张高兴的 Xamarin.Android 学习笔记:(三)活动生命周期

    本文将直接解释我写的一个示例.示例目的在于展示 Android 活动在 Xamarin 中的用法.如果有朋友对基础知识不太了解建议先学 Android . 新建一个 Xamarin.Android 项 ...

  6. Android学习笔记(十) Activity的生命周期

    一.如何在一个应用程序中定义多个Activity -定义一个类,继承Activity -复写onCreate() setContentView(R.layout.secondLayout):设定该Ac ...

  7. Laravel5.1学习笔记9 系统架构1 请求生命周期 (待修)

    Request Lifecycle Introduction Lifecycle Overview Focus On Service Providers Introduction When using ...

  8. 【React】学习笔记(二)——组件的生命周期、React脚手架使用

    原教程视频:ttps://www.bilibili.com/video/BV1wy4y1D7JT?p=2&spm_id_from=pageDriver 目录 一.组件的生命周期 1.1.生命周 ...

  9. Servlet学习笔记(四)

    目录 Servlet学习笔记(四) 一.会话技术Cookie.session 1. 什么是会话技术? 2. 会话技术有什么用? 3. Cookie 3.1 什么是Cookie? 3.2 使用Cooki ...

随机推荐

  1. 【小程序报错】 TLS 版本必须大于等于 1.2

    服务器是windows 2008 server 环境是IIS7SSL是申请用的阿里免费.微信小程序发现wx.request,调试报错: 小程序要求的 TLS 版本必须大于等于 1.2 直接说解决办法吧 ...

  2. MySQL GROUP_CONCAT长度限制引发的一场灾难

    GROUP_CONCAT函数是对查处的分组数据对于分组列相同的数据合并成一列用逗号隔开的函数. 但是该函数的长度有个默认限制,默认是1024个字符,超过就会截断,从而导致用count统计GROUP_C ...

  3. 我的第一台 Mac

    我的第一台 Mac 心里的这棵草长了一年多之后终于狠心剁手了. 2018年11月6号下单 2018 款 MBP 2.6/32/512 定制款,7号早上到手 --- 感受(个人主观感觉-)

  4. React 表单组件

    诸如 <input>.<textarea>.<option> 这样的表单组件不同于其他组件,因为他们可以通过用户交互发生变化.这些组件提供的界面使响应用户交互的表单 ...

  5. 【起航计划 021】2015 起航计划 Android APIDemo的魔鬼步伐 20 App->Intents createChooser

    Intents 这个例子的代码非常简单: public void onGetMusic(View view) { Intent intent = new Intent(Intent.ACTION_GE ...

  6. EF--payload or not

    负载加载非负载加载适用于多对多场境. 一.非负载(payload-free)加载 1.1创建表 create table Album ( AlbumId ,), AlbumName ) ) creat ...

  7. npm升级自身

    参考:https://github.com/felixrieseberg/npm-windows-upgrade Usage First, ensure that you can execute sc ...

  8. 中兴ZXR10 GER4核心路由器配置案例

    Connecting to 192.168.100.2:23...Connection established.To escape to local shell, press 'Ctrl+Alt+]' ...

  9. Ubuntu小工具

    更好的工具 更多的界面风格: https://github.com/anmoljagetia/Flatabulous 更丰富的终端zsh: https://github.com/robbyrussel ...

  10. iRecognizer号码扫描开发实录

    iRecognizer——这是一款可以帮助你快速扫描获得印刷体数字的软件 现已上架 腾讯应用宝,酷安 提供的功能:扫一扫(相册或当场扫描),获得电话号码,之后就可以拨打或者发送短信,自动复制到剪贴板, ...