servlet生命周期

  1. web容器加载servlet 类
  2. web容器调用servlet的构造函数,初始化servlet.
  3. web容器调用servlet的init()方法。注意该方法在servlet的一生中只会调用一次,而且必须在service()方法之前调用
  4. web容器根据相应的url调用servlet的service()方法。servlet的一生主要处于此阶段
  5. web容器调用servlet的destroy()方法。该方法一生也只调用一次

注意:1)servlet在调用构造函数和init()方法之间处于一种不确定状态,例如无法捕获web应用配置信息或查找应用的另一个引用,因此不要在构造函数中放任何代码,初始化只运行一次的代码放到init()方法中。

servletConfig对象VS servletContext 对象

ServletConfig 对象

  • 每个servlet都有一个ServletConfig对象
  • 用于向servlet传递部署时的信息(数据库等),最好不要把该信息硬编码到代码中
  • 用于访问servletContext
  • 参数在部署描述文件中的配置

ServletContext:

  • 每个web应用有一个ServletConText
  • 用于访问web应用参数
  • 相当于一个公告栏,可以在此放置消息,应用的其他部分可以访问该消息
  • 用于得到服务器信息,包括容器名、容器版本以及支持API的版本

Http方法:

  1. GET: 要求得到所求请求URL上的一个东西(资源 or文件)
  2. POST: 要求服务器接受附加到请求的体信息,并提供所请求URL上的一个东西。
  3. HEAD:只要求得到GET返回结果的首部部分
  4. TRACE:要求请求返回,这样客户能看到另一端接收到了扫描,以便测试或排错
  5. PUT: 指出要把包含的消息体放在请求的URL上
  6. DELETE: 指出删除请求URL上的一个东西(资源or文件)
  7. OPTIONS:要求得到一个HTTP方法列表,所请求URL上的东西可以对这些HTTP方法做出相应
  8. CONNECT: 要求连接以建立隧道

GET vs POST

  1. GET请求参数在URL上,有大小限制,而POST请求参数在消息体中,参数可以传的比较多
  2. POST相比GET比较安全,
  3. GET用于得到某个资源,而POST用于发送数据来进行处理
  4. GET 是幂等的, 而POST不是

j2ee爬坑行之二 servlet的更多相关文章

  1. j2ee爬坑行之一:web容器

    什么是容器? servlet没用main方法,它们受控于另一个java应用程序,这个应用程序就称为容器. tomcat就是这样一个容器.当web服务器得到一个指向某servlet的请求,此时服务器不是 ...

  2. Vue 爬坑之路(十二)—— vue-cli 3.x 搭建项目

    Vue Cli 3 官方文档:https://cli.vuejs.org/zh/guide/ 一.安装 @vue/cli 更新到 3.x 之后,vue-cli 的包名从 vue-cli 改成了 @vu ...

  3. AngularJs (二) 搭建Deployd 服务爬坑

    Deployd 爬坑 按照书上的教程,介绍Deployd 这个东东,首先进入其deployd.com/网页,发现这个东东着实厉害. THE SIMPLEST WAY TO BUILD AN API 按 ...

  4. Vue 爬坑之路(一)—— 使用 vue-cli 搭建项目

    vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli vue ...

  5. mybatis-generator 详细配置及使用,爬坑记录

    mybatis-generator 详细配置及使用,爬坑记录 提示:如果不成功一定是项目路径和 数据库配置出问题,本篇基于 MySQL 8.0.13,调试没有问题. 如果失败,建议使用相同的项目结构, ...

  6. 【饿了么】—— Vue2.0高仿饿了么核心模块&移动端Web App项目爬坑(三)

    前言:接着上一篇项目总结,这一篇是学习过程记录的最后一篇,这里会梳理:评论组件.商家组件.优化.打包.相关资料链接.项目github地址:https://github.com/66Web/ljq_el ...

  7. VueRouter爬坑第四篇-命名路由、编程式导航

    VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建. 项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境. ...

  8. 安卓易学,爬坑不易——腾讯老司机的RecyclerView局部刷新爬坑之路

    针对手游的性能优化,腾讯WeTest平台的Cube工具提供了基本所有相关指标的检测,为手游进行最高效和准确的测试服务,不断改善玩家的体验.目前功能还在免费开放中. 点击地址:http://wetest ...

  9. Android爬坑之路

    做了那么久前端,现在终于可以回到我的老本行, 今天我用了一天的时间配置里Android开发环境,mac和windows双平台,eclipse和IDEA双平台,别问为什么,我就喜欢,中间大坑不断,再加上 ...

随机推荐

  1. base64 小测试:

    base64工作原理:Base64是MIME邮件中常用的编码方式之一.它的主要思想是将输入的字符串或数据编码成只含有{'A'-'Z', 'a'-'z', '0'-'9', '+', '/'}这64个可 ...

  2. Android的minSdkVersion,targetSdkVersion,maxSdkVersion

    参考http://developer.android.com/guide/topics/manifest/uses-sdk-element.html API Level 是一个整型值,表示Androi ...

  3. [Firebase] Deploy you website to Firebase

    If you are looking for a host website, you can try Firebase, heroku or AWS... Today, I tried to depl ...

  4. Gradle Import Wizard--官方文档

    Last updated and checked to work with version 3.0.0 of the tools This tutorial will take you through ...

  5. 第一篇:数据工程师眼中的智能电网(Smart Grid)

    前言 想必第一次接触到智能电网这个概念的人,尤其是互联网从业者,都会顾名思义的将之理解为"智能的电网". 然而智能电网中的"智能"是广义上的智能,它就是指更好的 ...

  6. YYModel 源码历险记 代码结构

    前言 因为公司需要开发一个内部使用的字典转模型的项目,所以最近也是在看关于字典转模型的内容.有Mantle,jsonModel,MJExtension等众多框架,最后还是选择了先从YYModel源码读 ...

  7. SPOJ 3048 - DNA Sequences LCS

    给出两个字符串(不长于1000),求最长公共子序列,要求:从每个串中取必须取连续k (1<=k<=100)个数 [LCS]一开始自己想用DP加一维[len]用来表示当前已经取了连续len个 ...

  8. 使用EditText搜索listview里面的内容,实现Listview跟随变动的情况

    1.布局的XML文件里面添加EditText控件(省略)控件id=mSearch ListView的id=admin_lv; 2.一.获取ListView展示的数据(通过适配器获取) 二.这个是我要说 ...

  9. propertychange input change

    IE678 支持propertychange事件,可以监听所有属性(包括自定义属性)的改变事件,包括手动修改输入框文本以及js修改输入框文本. propertychange事件有个特点就是不支持冒泡, ...

  10. 数据库连接未关闭,conn与rs未关闭

    场景: 2000多人使用系统,早上打卡签到,时间点比较集中. 程序:会创建connction连接.但是未关闭,导致tomcat挂了.导致连接池已满 解决:conn.close,rs.close.记住一 ...