servlet三大组件
servlet大致可以分为三个:``简单servlet、过滤servlet、监听servlet`
servlet:
servlet的创建
- 创建一个类并实现Servlet接口。
- 重写service方法。
- 在服务器中注册Servlet
协议
- 一定是双方或多方签订的。
- 浏览器和服务器之间的通信是基于请求(request)和响应(reponse)的。
- HTTP协议就是规定浏览器和服务器之间的通信报文格式。(报文首部分为首行和头,统称为首部。)
get、post请求
1). get请求:请求参数在地址栏,长度有限制。
四种设置方法:
- 直接在URL中设置填写。
- 超链接。
- 在method属性中设置。
- 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,然后再处理用户名和密码是否正确。
接受请求获取用户信息。
处理,检查是否正确。
如果正确返回一个页面,如果不正确,根据处理结果响应。
也就是:接受请求,处理请求,根据处理结果响应。
servlet声明周期:
指的是Servlet对象从创建到销毁的过程。
构造器:
public login(){}当service第一次处理请求时被调用,用来创建service对象,只会调用一次。
Init();在构造器调用之后马上被调用,用来初始化Servlet对象,只会调用一次。
service();用户再次发送请求,service都会被调用,调用多次,用来处理用户请求。
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三大组件的更多相关文章
- SpringBoot 注册Servlet三大组件【Servlet、Filter、Listener】-原生代码+@Bean+效果展示
由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件. 注册三大组件,class MyServlet()/clas ...
- Spring Boot之注册servlet三大组件
由于Spring Boot默认是以jar包的形式启动嵌入式的Servlet容器来启动Spring Boot的web应用是,没有web.xml配置文件 注册三大组件用以下方式 ServletRegist ...
- 0017SpringBoot注册Servlet三大组件(Servlet、Filter、Listener)
由于SpringBoot默认是以jar包的形式启动嵌入式servlet容器来启动SpringBoot的web应用,所以没有web.xml文件,那么如何配置Servlet.Filter.Listener ...
- 18. Spring Boot 、注册Servlet三大组件Servlet、Filter、Listener
由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件 public class MyServlet extends ...
- JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下)
JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下) Reference
- JavaWeb三大组件(Servlet、Filter、Listener)
JavaWeb三大组件指的是:Servlet.Filter.Listener,这三个组件在JavaWeb开发中分别提供不同的功能,然而很多人可能只用过其中一个或者两个(Servlet.Filter,比 ...
- JavaEE--JavaWeb三大组件Servlet、Filter、Listener
Servlet.Filter.Listener是JavaEE Web服务规定的服务器动态组件,由开发者编写由Web容器创建,并保证单例以及线程安全性,其中加载顺序为Linstener -> Fl ...
- JavaWeb笔记——三大组件之过滤器
过滤器JavaWeb三大组件之一,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的. 当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter“ ...
- 学习笔记_过滤器概述(过滤器JavaWeb三大组件之一)
过滤器Filter Filter和Lister是Servlet规范里的两个高级特性.不同于Servlet,它们不用于处理客户端请求,只用于对request.response进行修改或者对context ...
随机推荐
- maven解决无法从远程仓库获取ojdbc问题
原因 Oracle 的 ojdbc.jar 是收费的,Maven 中央库中实际上没有此资源 解决方法 手动下载相应的jar,然后将其安装到本地仓库.具体操作如下: 1\先去下载相关的jar包或者驱动 ...
- CH3803扑克牌
Description 背景 lqhsr生日那天,Rainbow来找lqhsr玩扑克牌-- 玩着玩着Rainbow觉得太没意思了,于是决定给lqhsr一个考验~~~ 描述 Rainbow把一副扑克牌( ...
- 想转行做程序员,目前想学WEB前端,想问该自学还是报培训班
首先我们还是先看一下WEB前端目前的工资情况吧,我在IT招聘网站拉勾网来进行搜索1-3年WEB前端工作经验大专学历的条件来看. 深圳: 可以看出目前深圳的平均的工资都在10K以上,因为大城市给的机会多 ...
- PHP ksort
1.例子一: <?php /** * 根据 c1 对元素排序 */ $arrays = [ 'b' => [ 'c1' => 10, 'c2' => 5, ], 'a' =&g ...
- 快速傅里叶变换(FFT)略解
前言 如果我们能用一种时间上比 \(O(n^2)\) 更优秀的方法来计算大整数(函数)的乘法,那就好了.快速傅里叶变换(FFT) 可以帮我们在 \(O(n\log n)\) 的时间内解决问题. 函数乘 ...
- java代码实现MD5加密及验证方法
MD5加密 在我们的程序中,不管是什么,都会有安全问题,今天就说的是MD5加密的方法 MD5是哈希算法,也就是 从明文A到密文B很容易,但是从密文B到明文A几乎不可能 也就是说,给你密文,是几乎无法通 ...
- Centos中查找文件、目录、内容
1.查找文件 find / -name 'filename' 2.查找文件夹(目录) find / -name 'path' -type d 3.查找内容 find . | xargs grep -r ...
- 《利用Python进行数据分析·第2版》第四章 Numpy基础:数组和矢量计算
<利用Python进行数据分析·第2版>第四章 Numpy基础:数组和矢量计算 numpy高效处理大数组的数据原因: numpy是在一个连续的内存块中存储数据,独立于其他python内置对 ...
- 基于STM32F103和Cube的输入捕获例程
1.开发环境 (1)Cube5.24 (2)Keil5 (3)STM32F103 2.Cube配置 Cube配置很简单,只要打开TIM4通道1的引脚,设置为输入捕获模式,在配置是高或低电平沿触发 TI ...
- 三、DockerFile 定制属于自己的专属镜像
前言 上篇文章我们知道了怎么操作镜像和容器,到基础都是从已经存在的镜像开始的,那我们自己怎样搭建一个镜像并使用它呢?接下来就让我们学习使用dockerfile 创建属于自己的镜像吧. dockerfi ...