servlet大致可以分为三个:``简单servlet过滤servlet监听servlet`

servlet:

servlet的创建

  1. 创建一个类并实现Servlet接口。
  2. 重写service方法。
  3. 在服务器中注册Servlet

协议

  1. 一定是双方或多方签订的。
  2. 浏览器和服务器之间的通信是基于请求(request)和响应(reponse)的。
  3. HTTP协议就是规定浏览器和服务器之间的通信报文格式。(报文首部分为首行和头,统称为首部。)

get、post请求

1). get请求:请求参数在地址栏,长度有限制。

四种设置方法:

  1. 直接在URL中设置填写。
  2. 超链接。
  3. 在method属性中设置。
  4. method属性中不填写时,默认为get

2). post请求:请求参数在请求报文的请求主题中,长度无限制。

设置方法:

通过method属性修改(较安全)

在使用表单提交数据到服务器的时候有两张方式可共选择,一个是post一个是get。可在中的method属性中指定提交的方式。如:<form action="inputForm"method="get">,如果不指定method属性,则会默认该属性为”get”方式。

3). Get和post都能够提交数据,那么他们有什么不同呢?

不同点一:

通过get方式提交的数据有大小的限制,通常在1024字节左右。也就是说如果提交的数据很大,用get方法就可需要小心;而post方式没有数据大小的限制,理论上传送多少数据都可以。

不同点二:

通过get传递数据,实际上是将传递的数据按照”key,value”的方式跟在URL的后面来达到传送的目的的;而post传递数据是通过http请求的附件进行的,在URL中并没有明文显示。

不同点三:

通过Get方式提交的数据安全性不高,而Post方式的更加安全~

Servlet容器

Servlet是运行在服务器中的,运行Servlet的东西,我们称之为Servlet容器。

servlet作用

我们现在写的页面,并没有实质性的作用,也并不能处理用户名和密码,实际上,应该是点击登陆后,将请求提交给Servlet,然后再处理用户名和密码是否正确。

  1. 接受请求获取用户信息。

  2. 处理,检查是否正确。

  3. 如果正确返回一个页面,如果不正确,根据处理结果响应。

也就是:接受请求,处理请求,根据处理结果响应。

servlet声明周期:

指的是Servlet对象从创建到销毁的过程。

  1. 构造器:public login(){}

    当service第一次处理请求时被调用,用来创建service对象,只会调用一次。

  2. Init();

    在构造器调用之后马上被调用,用来初始化Servlet对象,只会调用一次。

  3. service();

    用户再次发送请求,service都会被调用,调用多次,用来处理用户请求。

  4. destroy();

    Servlet对象销毁前被调用,用来执行一些收尾工作,只会执行一次。

HttpServlet

间接实现了Servlet接口,通过继承HttpServlet实现了一个Servlet时,我们只需要根据处理请求的类型(method的值)来重写不同方法,处理get请求,重写doGet请求;处理post请求,重写doPost请求。

转发和重定向

转发:

转发时浏览器地址栏不会发生改变。

转发时浏览器发送了一次请求。

转发时发生在服务器的内部,浏览器不知道转发的发生。

 String con= request.getContextPath();//获取效应器

 RequestDispatcherrd = request.getRequestDispather(“Tomcat”);//获取派发器

 rd.forword(request,reponse);//发起转发

重定向:

重定向时地址栏发生改变。

重定向浏览器发送了两次请求。

重定向时发生在浏览器端的,浏览器知道重定向的发生。

Reponse.sendRedireat(“Test.html”);

过滤servlet,也就是我们常说的filter

什么是过滤器?

在客户端到服务器的过程中,当发送请求时,如果有不符合的信息将会被filter进行拦截,如果符合则会进行放行,在服务器给客户端响应时也会进行判断 如果有不符合的信息将会被filter进行拦截,如果符合则会进行放行。

什么是oop?(拓展)

面向对象编程,java是面向对象变成,封装、继承、多台、抽象。

什么是aop?(拓展)

面向切面编程。用来过滤请求。在请求到达servlet之前,对其进行过滤。

它是sun公司srvlet2.3版本之后推出的新功能,在2.3之前的版本没有该功能,定义一个过滤器需要实现(implement)Filter接口,这里实现的是javax.servlet.Filter。

过滤器的生命周期:

在项目开始启动的时候,过滤器开始初始化,当有请求来的时候开始自动去执行doFilter方法,随着项目的关闭过滤器开始停止。

ChainFilter链:

它可以指向下一个资源,如果还有过滤器,则继续进行下一次的过滤,如果没有过滤器,则会指向资源(servlet)。

chain.doFilter(req,resp);//放行

filter应用场景:

(1) 设置跨域问题(为所有的Servelt)

(2) 解决跨域问题

(3) 解决所有的防盗链问题

使用过滤器的时候需要配置地址:

(1)固定地址 (2)通配符/* (3)指定目录

监听器:(listener)(了解)

监听器:相当于之前所学的事件

源:监听的是谁

动作:触发的条件

响应:当条件满足时会执行的函数

ServletContext对象:

声明周期:随着项目的启动而创建,随着项目的关闭而销毁。

生命周期可以理解为:监听器>过滤器>servlet

八种监听器:

原文链接:https://blog.csdn.net/csdn19970806/article/details/80695485

servlet三大组件的更多相关文章

  1. SpringBoot 注册Servlet三大组件【Servlet、Filter、Listener】-原生代码+@Bean+效果展示

    由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件. 注册三大组件,class MyServlet()/clas ...

  2. Spring Boot之注册servlet三大组件

    由于Spring Boot默认是以jar包的形式启动嵌入式的Servlet容器来启动Spring Boot的web应用是,没有web.xml配置文件 注册三大组件用以下方式 ServletRegist ...

  3. 0017SpringBoot注册Servlet三大组件(Servlet、Filter、Listener)

    由于SpringBoot默认是以jar包的形式启动嵌入式servlet容器来启动SpringBoot的web应用,所以没有web.xml文件,那么如何配置Servlet.Filter.Listener ...

  4. 18. Spring Boot 、注册Servlet三大组件Servlet、Filter、Listener

    由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件 public class MyServlet extends ...

  5. JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下)

    JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下) Reference

  6. JavaWeb三大组件(Servlet、Filter、Listener)

    JavaWeb三大组件指的是:Servlet.Filter.Listener,这三个组件在JavaWeb开发中分别提供不同的功能,然而很多人可能只用过其中一个或者两个(Servlet.Filter,比 ...

  7. JavaEE--JavaWeb三大组件Servlet、Filter、Listener

    Servlet.Filter.Listener是JavaEE Web服务规定的服务器动态组件,由开发者编写由Web容器创建,并保证单例以及线程安全性,其中加载顺序为Linstener -> Fl ...

  8. JavaWeb笔记——三大组件之过滤器

    过滤器JavaWeb三大组件之一,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的.  当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter“ ...

  9. 学习笔记_过滤器概述(过滤器JavaWeb三大组件之一)

    过滤器Filter Filter和Lister是Servlet规范里的两个高级特性.不同于Servlet,它们不用于处理客户端请求,只用于对request.response进行修改或者对context ...

随机推荐

  1. 【Medium 万赞好文】ViewModel 和 LIveData:模式 + 反模式

    原文作者: Jose Alcérreca 原文地址: ViewModels and LiveData: Patterns + AntiPatterns 译者:秉心说 View 和 ViewModel ...

  2. Python3程序设计指南:02 数据类型

    目录 1.标识符与关键字 1.1 规则 1.2 约定 2.Integral类型 2.1 整数 2.1.1 数值型操作符与函数 2.1.2 使用数据类型创建对象 2.1.3 整数位逻辑操作符 2.2 布 ...

  3. Java学习笔记之抽象类与接口

    抽象类(abstract) 抽象类概述:一个类被abstract修饰表示这个类是抽象类, 自己定义方法但是不实现方法,后代去实现 抽象方法:   一个方法被abstract修饰表示这个方法是抽象方法 ...

  4. Spring Cloud Alibaba(二) 配置中心多项目、多配置文件、分目录实现

    介绍 之前Spring Cloud Config基础篇这篇文章介绍了Spring Cloud Config 配置中心基础的实现,今天继续聊下Spring Cloud Config 并结合nacos做服 ...

  5. NodeJs编写Cli实现自动初始化新项目目录结构

    应用场景 前端日常开发中,会遇见各种各样的cli,这些工具极大地方便了我们的日常工作,让计算机自己去干繁琐的工作,而我们,就可以节省出大量的时间用于学习.交流.开发. 注释:文章附有源码链接! 使用工 ...

  6. 04jmeter-Concurrency Thread Group

    1.下载插件Custom Thread Groups:参照:00jmeter安装相关 2.添加并发线程组 场景举例: 10个线程2分钟的加速时间5个加速步骤持有目标速率2分钟: 即: 2分钟除以5步, ...

  7. odoo联调

    odoo联调(剑飞花 373500710) 1.准备工作 1.1.参考文章“odoo8.0+PyCharm4.5开发环境配置”配置好odoo开发环境 1.2.下载Chrome浏览器,安装. 1.3.下 ...

  8. Dom对象更改文档结构.html

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 针对工程实践项目的用例建模Use Case Modeling

    一.什么是用例建模(Use Case Modeling) 1.用例(Use Case) (1)概念:用例是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术. ...

  10. 怎样通过excel录入来批量造数据

    背景: 自动化测试除了验证系统功能外,还能够为测试人员根据测试要求造数据实现测试需要!但是一般的自动化测试,都是在编写脚本的时候,写死在程序里的.所以本文是为了在满足系统操作流程的基础上,根据测试的要 ...