Servlet与过滤器
Servlet
Server+Applet,是一种服务器端的Java应用程序 只有当一个服务器端的程序使用了Servlet API的时候,这个服务端的程序才能称之为Servlet
jsp从莫种意义上来说也是一个servlet
创建Servlet
继承HttpServlet类
Servlet中主要方法以及对象
init():Servlet的初始化方法,仅仅会执行一次
service():处理请求和生成响应
destroy():在服务器停止并且程序中的Servlet对象不再使用的时候调用,只执行一次
ServletRequest
封装客户的请求信息
作用相当于JSP内置对象request
ServletResponse
创建响应信息,将处理结果返回给客户端
作用相当于JSP内置对象response
ServletConfig
包含了Servlet的初始化参数信息
Servlet生命周期
生命周期 | 谁来做 | 何时做 |
---|---|---|
实例化 | Servlet 容器 | 当Servlet容器启动或者容器检测到客户端请求时 |
初始化 | Servlet 容器 | 实例化后,容器调用Servlet的init()初始化对象 |
处理请求 | Servlet 容器 | 得到客户端请求并做出处理时 |
销毁 | Servlet 容器 | 当程序中的Servlet对象不再使用的时候,或者Web服务器停止运行的时候 |
部署运行Servlet
修改web.xml(部署描述文件)
添加<servlet>:把Servlet内部名映射到一个Servlet类名
添加<servlet-mapping>:把用户访问的URL映射到Servlet的内部名
<servlet-mapping>与<servlet>中的<servlet-name>必须一致
通过URL访问Servlet
配置
<servlet><servlet-name>myServlet3</servlet-name><servlet-class>demo.web.servlet.MyServlet3</servlet-class>
</servlet>Servlet名称唯一
Servlet类所在路径<servlet-mapping><servlet-name>myServlet3</servlet-name><url-pattern>/myServlet3</url-pattern>
</servlet-mapping>与<servlet>的<servlet-name>设置相同
访问Servlet的URL
初始化参数设置
配置<init-param>元素
<servlet>……
<init-param>
<param-name>charSetContent</param-name>
<param-value>utf-8</param-value>
</init-param>
</servlet>
读取
public void init(ServletConfig config) throws ServletException {String initParam=config.getInitParameter("charSetContent");System.out.println(initParam);
}
相关对象方法
HttpServletRequest
getParameter()
getRequestDispatcher()
HttpServletResponse
sendRedirect()
HttpSession
request.getSession()
过滤器
简述以及作用
是向Web应用程序的请求和响应添加功能的Web服务组件
过滤器可以统一地集中处理请求和响应
使用过滤器技术实现对请求数据的过滤
@WebFilter("/*")代表路径以/开头的都过滤
@WebFilter("/")就是/路径
过滤器的使用步骤
建立实现javax.servlet.Filter接口的类,实现过滤行为
在web.xml中配置过滤器
doFilter(...) {
//过滤请求
chain.doFilter(request, response); //调用下一个过滤器或Web资源
//过滤响应
}<filter><filter-name>过滤器名</filter-name><filter-class>过滤器的完全限定名</filter-class>
</filter>
<filter-mapping><filter-name>过滤器名</filter-name><url-pattern>过滤器映射的Web资源</url-pattern>
</filter-mapping>
过滤器的生命周期
实例化
初始化:init()
过滤:doFilter()
销毁:destroy()
初始化参数
配置
<filter>
<init-param><param-name>Encoding</param-name><param-value>UTF-8</param-value></init-param>
</filter>
读取
init(FilterConfig fConfig) {String encoding=fConfig.getInitParameter("Encoding");
}
新知识点
在servlet-2.3中,Filter会过滤一切请求,包括服务器内部使用forward转发请求和<%@ includefile="/index.jsp"%>的情况。 到了servlet-2.4中Filter默认下只拦截外部提交的请求
但,想过滤其他请求就要这样写
<filter>
<filter-name>TestFilter</filtername>
<filter-class>anni.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TestFilter</filtername>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>EXCEPTION</dispatcher>
</filter-mapping>
如果是注解就要这样写
@WebFilter(urlPatterns = {"/WEB-INF/*"},dispatcherTypes={DispatcherType.ASYNC,DispatcherType.ERROR,DispatcherType.FORWARD,DispatcherType.INCLUDE,DispatcherType.REQUEST,} )servlet2.3还是2.4大概以tomcat8.5为界限
Servlet与过滤器相关推荐
- Servlet中过滤器的实现原理(源码实现)
2019独角兽企业重金招聘Python工程师标准>>> 一 回顾 控制台有如下打印: 过滤器1执行前 过滤器2执行前 过滤器3执行前 过滤器3执行后 过滤器2执行后 过滤器1执行后 ...
- java nodefilter类,Java Servlet Filter过滤器概述
Java Servlet Filter过滤器概述 Filter是Servlet的过滤器,是Servlet 2.3规范中新增加的一个功能,主要用于完成一些通用的操作,如编码的过滤.判断用户的登录状态等. ...
- Servlet之过滤器详解
Servlet分为三种:标准的Servlet----MVC中控制器 .过滤Servlet(过滤器).监听Servlet(监听器). 这篇博客将结合实例来讲解过滤Servlet(过滤器). Servle ...
- SpringBoot定义三大组件Servlet,过滤器Filter,监听器Listener
SpringBoot定义三大组件Servlet,过滤器Filter,监听器Listener 1.定义组件的配置类: com.example.mybatis2018.config.MyServletCo ...
- Servlet WEB过滤器
WEB应用中的过滤器截取从客户端进来的请求,并做出处理的回答.它可以说是外部进入 网站的第一道关.在这个头目里,可以验证客户是否来自枳的网络,可以对客户提交的数据进行 重新编码,可以系统里获得配置的信 ...
- 【Servlet】过滤器技术
过滤器技术 过滤器 过滤器的运行原理 过滤器链 过滤器的核心接口 Filter FilterConfig FilterChain 过滤器的生命周期 过滤器的开发 过滤器的应用 过滤器 过滤器(Filt ...
- Servlet 编写过滤器
Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息. 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet.Servlet 过滤 ...
- 动手学servlet(六) 过滤器和监听器
过滤器(Filter) 过滤器是在客户端和请求资源之间,起一个过滤的作用,举个例子,比如我们要请求admin文件夹下的index.jsp这个页面,那么我们可以用一个过滤器,判断登录用户是不是管理员 ...
- Java Web中的一些概念(JSP、Servlet以及过滤器等)
1.Servlet Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的 ...
- Javaweb核心之servlet规范过滤器-----Filter
2 Servlet规范中的过滤器-Filter 2.1 过滤器入门 2.1.1 过滤器概念及作用 过滤器--Filter,它是JavaWeb三大组件之一.另外两个是Servlet和Listener. ...
最新文章
- exe编辑器_windows下的EXE文件大揭密
- echarts前后端交互数据_SpringBoot2.0实战(26)整合SpringSecurity前后端分离JSON交互...
- 青龙面板修改端口教程避开5700更安全
- 2.1.5 梯度检验
- struts实战--添加功能(重点文件上传)
- 算法题存档20190204
- mingus python_【Python图像特征的音乐序列生成】关于mingus一个bug的修复,兼改进情感模型...
- hdu 4836 The Query on the Tree(线段树or树状数组)
- gulp-uglify《JS压缩》----gulp系列(四)
- win10电脑性能测试软件,win10系统测试计算机性能的图文方法
- 多功能智慧(灯杆)路灯项目建设背景及现实的意义主要体现在哪几个方面?
- 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔 ...
- 白嫖画师原作训练Stable Diffusion引正主不满:未经同意,说用就用?
- 20210429 ---- 浅谈 视口
- 快速寻找研究方向+发文章的方法!!按头安利!
- Qt学习笔记--文件读写(QFile、QDataStream、QTextStream)
- 新零售系统mysql设计(评价表)
- php语言缺点,php语言优缺点分析
- 键盘上一些常用按键的ASCII码值
- java后台判断请求来自移动端访问还是PC端访问
热门文章
- golang 单点登录系统(go-sso)
- 利用 Web Share API 将网页分享到 App(上)
- 使用telnet登录服务器
- VS插件Reshaper使用教程,超级好用
- Spring源码解析三
- java button和jbutton_java – JButton中的组合与继承
- 百度网盘秒传链接生成及提取方法
- Caused by: java.io.IOException: On-disk size without header provided is 6, but block header contains
- seafile 部署_seafile服务端的搭建
- 30岁改行学python_我30岁了,转行学编程可以吗? 排除法告诉你答案