最近在看java web的相关内容,不管是整体还是细节,要学习的知识有很多,所以有一个好的学习体系非常重要。在阅读学习一些博客和教程中关于servlet的内容后,现将知识体系和自己的总结体会进行梳理,希望在更深入理解的同时,也能够帮到别人。

一、servlet定义

  java servlet是运行在web服务器或应用服务器上的程序,本质也是一个java类,是浏览器或客户端http请求与web服务器上数据库或应用程序的中间层。servlet可以接收来自浏览器用户的表单信息(http request),通过信息分析,组装结果信息(http response)返回给浏览器,从而实现前端和后台的交互。

二、servlet总体框架

  

三、servlet生命周期

  servlet的生命周期是servlet从创建到销毁的过程,主要涉及三个方法:

  1、void init(ServletConfig config);

    当有用户第一次访问该servlet的url时,该servlet被创建,也可以设置成随着服务器启动而加载。servlet创建时,调用该init方法进行初始化,且该init只被调用一次,当还有用户访问该servlet的url时,init将不再被调用(init随着servlet的创建而调用,既然servlet只创建一次,init方法当然只被调用一次了)。

    在该带参init方法中,除了给ServletConfig赋值外,还会调用init的重载无参方法,可供程序员自己来个性化定制初始化,例如可以设置一个全局的count参数来记录该url被访问的次数等。

  2、void service(ServletRequest req, ServletResponse res);

    servlet时单实例多线程的,在servlet的整个生命周期内,只会有一个实例(单例模式),每当有用户访问时,服务器会调用该service方法,通过解析http的请求方式(一般为get或post),创建一个线程去执行相应的doGet或doPost方法。

  3、void destroy();

    该方法只被调用一次,在servlet结束生命周期时调用。当servlet被移除或服务器正常关闭的时候,服务器调用servlet的destroy方法实现销毁操作。

(以下内容待续...)

四、servletConfig

五、servletContext

servlet是单实例多线程的类,查看源码了解servlet是如何创建并回收线程的。

servlet简单概括总结的更多相关文章

  1. 使用jsp/servlet简单实现文件上传与下载

    使用JSP/Servlet简单实现文件上传与下载    通过学习黑马jsp教学视频,我学会了使用jsp与servlet简单地实现web的文件的上传与下载,首先感谢黑马.好了,下面来简单了解如何通过使用 ...

  2. IDEA新建javaWeb以及Servlet简单实现

    刚开始用IDEA开发,还不太熟悉,因此写一个教程,加深印象 1.新建一个Web项目 两种方法:java 和 Java Enterprise(推荐) 第一种)通过Java工程创建,这个方法需要手动导入T ...

  3. Intellij IDEA创建javaWeb以及Servlet简单实现

    1.创建web工程 File --> New --> Project...

  4. iOS开发——适配篇&App适配简单概括

    App适配简单概括 1:适配:适应.兼容各种不同的情况 系统适配 针对不同版本的操作系统进行适配 屏幕适配 针对不同大小的屏幕尺寸进行适配 在用户眼中 屏幕是由无数个像素组成的 像素越多,屏幕越清晰 ...

  5. Servlet简单总结(一)

    一.Servlet简单总结 1.1. 什么是Servlet Servlet是JavaEE三大组建之一,是使用Java语言编写服务器端的程序,主要用来处理Web应用程序中的请求-响应.Servlet并没 ...

  6. Intellijidea建javaWeb以及Servlet简单实现

    一.创建并设置javaweb工程1.创建javaweb工程File --> New --> Project... 点击Project后出现如下界面,选择Java Enterprise,选中 ...

  7. JavaWeb基础之Servlet简单实现用户登陆

    学习javaweb遇到了一些坑,一些问题总结下来,记个笔记. 学习servlet遇到的一些坑: servlet实现用户登陆遇到的坑解决办法: https://www.cnblogs.com/swxj/ ...

  8. HTTP请求解析过程 (简单概括)

    1.域名解析 用户输入网址,由域名系统DNS解析输入的网址: 2.TCP的3次握手 通过域名解析出的IP地址来向web服务器发起TCP连接请求,如果3次握手通过,则与web服务端建立了可靠的连接: 3 ...

  9. [转]Intellij idea创建javaWeb以及Servlet简单实现

    准备:1. 安装jdk1.72. 安装tomcat1.8 一.创建并设置javaweb工程 1.创建javaweb工程File --> New --> Project... 设置工程名字: ...

随机推荐

  1. js date 常用

    1.怎么获取当月的最后一天 var  now=new Date(); new Date(new Date(now.getFullYear(),now.getMonth()+1,1).getTime() ...

  2. 多线程下,两个线程交替打印0 -100,使用wait()和notify()

    多线程下,两个线程交替打印0 -100,使用wait()和notify() public class ThreadTest{ private static final Object lock = ne ...

  3. php速成_day3

    一.MySQL关系型数据库 1.什么是数据库 数据库 数据存储的仓库,在网站开发应用当中,需要有一些数据存储起来. 注册的用户信息,使用PHP变量只是一个临时的存储,如果需要永久的存储起来,就把数据存 ...

  4. 201403-2 窗口 Java

    要想到定义一个窗口类,判断点在不在矩形里好判断 需要一个数组,存放结果 import java.util.ArrayList; import java.util.List; import java.u ...

  5. DNS和hosts

    https://zhidao.baidu.com/question/571487394.html 还有ip地址和域名 域名是唯一的 ip也是唯一的 但是一个域名可以对应多个ip(就好比百度只有一个域名 ...

  6. 吴裕雄--天生自然Linux操作系统:Linux 简介

    Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 PO ...

  7. Vue专题-组件

    vue.js既然是框架,那就不能只是简单的完成数据模板引擎的任务,它还提供了页面布局的功能.本文详细介绍使用vue.js进行页面布局的强大工具,vue.js组件系统. Vue.js组件系统 每一个新技 ...

  8. Kali 时间修改

    前言 装了新版本的 Kali 之后发现默认的时间和实际的时间不太一样 查了资料说 linux 的默认时间是格林威治时间,即从本初子午线为0时区 以下是 kali 修改时间的方法 1.tzselect ...

  9. drf中的jwt使用与手动签发token、校验用户

    jwt认证 1)session存储token,需要数据库参与,耗服务器资源.低效2)缓存存token,需要缓存参与,高效,不易集群3)客户端存token,服务器存签发与交易token的算法,高效,易集 ...

  10. 使用迅为itop4418开发板创建Android模拟器

    基于迅为iTOP-4418开发部在 Eclipse 中,单击“Windows”菜单,选择“Android Virtual Device Manager”启动 模拟器管理插件.然后如下图,单击“Crea ...