网站首页 > 技术文章 正文
摘要:作为JAVA编程基础,servlet入门知识比不可少,本文说明什么是servlet和过滤器,以及相关规范和环境,供学习或者工作中参考。
准备:
了解应用服务器,掌握java语法基础
正文:
(1)Servlet概述
Java Servlet 是运行在 Web Server或应用服务器(例如:Tomcat)上的程序,它是作为来自 Web browser和 Web Server应用程序之间的中间层。Web browser和 Web Server之间传输协议是HTTP,因此Servlet也必须支持HTTP协议。
Servlet收集来自Web网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页,这些功能和 CGI(Common Gateway Interface,公共网关接口)程序相同。
相比于 CGI,Servlet更容易开发,还有如下特点:
- Servlet 在 Web 服务器的地址空间内执行。
- Servlet 用 Java 编写。
- Java 安全管理器能保护Servlet。
- Java 类库能支撑 Servlet。
JAVA Web开发框架大部分都是建立在Servlet基础之上的,比如Structs和Spring MVC,前者的ActionServlet和后者的DispatcherServlet都是Servlet。
(2)过滤器Filter
Servlet是处理web请求的基本单元,而过滤器Filter则是围绕着Servlet,用于在web请求被处理之前或者之后对web请求(Request)和应答(Response)修改,Filter工作机制如下图:
Servlet过滤器Filter 具有如下特点:
- Filter既可以作用于Servlet之前、又可以作用于Servlet之后(而Spring Security作用于Servlet之前)
- Filter在Request到达Servlet之前,可以直接将Response返回,此功能用于诸如在未登录的情况下直接向用户展示登录页面这样的功能
- 在客户端的请求访问后端资源之前,过滤器Filter负责拦截这些请求。在服务器的响应发送回客户端之前,过滤器Filter处理这些响应。
- 多个Filter起作用时有先后顺序。
根据规范,过滤器Filter有如下类型:
- 身份验证过滤器(Authentication Filters)。
- 数据压缩过滤器(Data compression Filters)。
- 加密过滤器(Encryption Filters)。
- 触发资源访问事件过滤器。
- 图像转换过滤器(Image Conversion Filters)。
- 日志记录和审核过滤器(Logging and Auditing Filters)。
- MIME-TYPE 链过滤器(MIME-TYPE Chain Filters)。
- 标记化过滤器(Tokenizing Filters)。
- XSL/T 过滤器(XSL/T Filters),转换 XML 内容。
过滤器Filter通过 Web 部署描述符(web.xml)中的 XML 标签来声明,然后映射到Web应用程序的部署描述符中的 Servlet 名称或 URL 模式。
当启动 Web 应用程序时,Web 容器在部署描述符中为声明的每一个过滤器创建一个实例。
过滤器Filter的执行顺序与在web.xml配置文件中的配置顺序一致,一般把Filter配置在所有的Servlet之前。
(3)Servlet依赖环境
Servlet依赖环境包括Web服务器(应用服务器、容器)、servlet规范、JSP规范。
Java Servlet 运行在带有支持 Java Servlet 规范的Web服务器或者容器上,而Tomcat就是一种支持servlet容器功能的应用服务器。
Servlet需要 javax.servlet 和 javax.servlet.http 包支持。
Servlet必须符合Java Servlet 规范和 JSP 规范,不同容器实现的规范版本不同。
猜你喜欢
- 2024-10-18 MyBatisPlus又在搞事了!发布神器,一个依赖轻松搞定权限问题
- 2024-10-18 史上硬核!Jar 包依赖冲突排查思路和解决方法
- 2024-10-18 小白都能看懂的 Spring 源码揭秘之依赖注入(DI)源码分析
- 2024-10-18 Spring-bean的循环依赖以及解决方式
- 2024-10-18 Maven技术方案最全手册 maven详细教程
- 2024-10-18 JAVA编程规范之二方库依赖 java方法库
- 2024-10-18 Spring依赖注入原理分析 spring依赖注入作用
- 2024-10-18 简单2步实现maven打包java工程并将依赖jar输出到指定目录
- 2024-10-18 怎么进阶学好Java 如何用Spring解决循环依赖
- 2024-10-18 Spring 源码分析之 bean 依赖注入原理(注入属性)
你 发表评论:
欢迎- 11-19零基础学习!数据分析分类模型「支持向量机」
- 11-19机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现
- 11-19我以前一直没有真正理解支持向量机,直到我画了一张图
- 11-19研一小姑娘分享机器学习之SVM支持向量机
- 11-19[机器学习] sklearn支持向量机
- 11-19支持向量机
- 11-19初探支持向量机:用大白话解释、原理详解、Python实现
- 11-19支持向量机的核函数
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)