是什么

过滤器javaweb的一个重要组件,一种规范,可以对发送到serlvet的请求进行拦截和响应进行过滤。实际开发中可以使用过滤器来对访问服务器的请求进行过滤,以提高安全性

过滤器的原理

可以配置过滤器对指定的请求进行过滤,就相当于在服务器和客户端之间增加了一层过滤膜,对一些请求必须经过过滤膜的过滤才能到达服务器,在过滤的过程中,可以对请求信息进行操作,其基本原理如图,及其简单:

JAVA_WEB中实现过滤器

在java web开发中如果想创建一个过滤器及其简单,每一个实现了Filter接口的java类都是一个过滤器,不过不能直接使用,需要在web项目的核心配置文件web.xml中进行配置以使得过滤器可以生效,可用于拦截请求和相应,实现步骤如下:

1、创建一个java类,实现Filter接口

package servlet_app;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class MyFilter implements Filter{private String encoding;/*** 初始化方法*/@Overridepublic void init(FilterConfig filterConfig) throws ServletException {//获取其初始化资源encoding = filterConfig.getInitParameter("encoding");}/*** 过滤请求和相应*/@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {HttpServletRequest httpServletRequest = (HttpServletRequest)request;//设置编码方式httpServletRequest.setCharacterEncoding(encoding);HttpServletResponse httpServletResponse = (HttpServletResponse)response;//这个地方表示如果还有其他过滤器则继续下一层过滤chain.doFilter(httpServletRequest, httpServletResponse);}/*** 销毁方法*/@Overridepublic void destroy() {}}

2、在web.xml文件中配置并映射对应过滤器

<!-- 默认一个编码方式 --><context-param><param-name>encoding</param-name><param-value>utf-8</param-value></context-param><!-- 注册filter -->
<filter><filter-name>myFilter</filter-name><filter-class>servlet_app.MyFilter</filter-class>
</filter>
<!-- 映射filter -->
<filter-mapping><filter-name>myFilter</filter-name><!--要拦截的资源--><url-pattern>/userContrller</url-pattern>
</filter-mapping>

这样就创建了一个过滤器,其作用是对访问/userContrller.路径的请求进行过滤和处理其编码方式

这就是过滤器的基本介绍

35、JAVA_WEB开发基础之过滤器相关推荐

  1. 36、JAVA_WEB开发基础之监听器

    是什么 顾名思义就是监听器就是监听器,在开发中指的是一种机制,通过这种机制可以对应用中组件的创建.销毁.更改等动作进行监视,根据具体监听信息作出相应的处理 工作原理 就是预先给组件添加一个事件,当这个 ...

  2. 30、JAVA_WEB开发基础之servlet(1)

    servlet是什么 Servlet 是一种独立的 web 开发标准,用来接受.处理.返回浏览器的访问请求,它不应和服务器耦合在一起,servlet和servlet容器之间相互独立又相互依存,自我感觉 ...

  3. 31、JAVA_WEB开发基础之servlet(2)

    使用servlet需要依赖jar包:servlet-api.jar,下边介绍一下关于servlet的一些api Servlet接口 package javax.servlet;import java. ...

  4. 39、JAVA_WEB开发基础之ajax和json

    ajax是什么 首先要知道ajax并不是一种新的技术,而是几种技术的强强联合,全称是Asynchronous Javascript and xml,其精髓在于异步加载资源,因此可以实现局部加载效果(因 ...

  5. 38、JAVA_WEB开发基础之下载功能

    是什么 下载指的是将服务器端的文件保存到客户端的磁盘中 基本实现原理 根据对应的要下载的文件在服务器端找到对应的文件,然后获取到文件流对象,将流对象发送到客户端,然后客户端通过对返回结果中文件流的解析 ...

  6. 37、JAVA_WEB开发基础之上传功能

    是什么 上传指的是将客户端的文件保存到服务器的磁盘中 基本实现原理 读取客户端的文件信息,将文件信息以流的形式发送到服务器,然后服务器将流中的信息保存到本地,以实现文件的上传 实例 注意:提交的表单类 ...

  7. 34、JAVA_WEB开发基础之EL表达式和标签

    EL表达式是什么 一种从域对象中获取数值的简化写法,el表达式语法格式为:${域对象.参数名} 使用方式 取出request范围内的参数:{pageContext.request.username} ...

  8. 33、JAVA_WEB开发基础之会话机制

    会话是什么 一个客户端浏览器与web服务器之间连续发生的一系列请求和响应过程就是会话,这些过程中产生的一系列信息就是会话信息,会话机制就是用于维护这些信息一致性的一种技术.通俗的说就是,一个A账号访问 ...

  9. 32、JAVA_WEB开发基础之jsp

    是什么 是简化servlet的一种技术,将html语句和java代码混合在一个文件中进行编写,只对网页中动态产生的内容用java代码编写,静 态内容仍用html语句编写 运行原理 jsp本质上是一个s ...

最新文章

  1. CSS中浮动布局float(小米布局案例、导航栏案例、overflow)
  2. 人工智能工程师学习路线及具备的5项基本技能
  3. JavaScript类型判断
  4. linux删掉文件怎么恢复,linux系统误删除文件怎么恢复
  5. 工程制图 (组合体的视图与尺寸注法)
  6. java 解压到内存,Java GZip 基于内存实现压缩和解压的方法
  7. javamailsender注入失败_springboot拦截异常信息发送邮件提醒
  8. Android 实现 欢迎界面 自动跳转 到 主界面
  9. cocos2d-x 移动MM平台SDK接入
  10. Floyd最短路径算法(来自微信公众号“算法爱好者”改编)
  11. ubuntu 18.04下解决网易云音乐打不开的问题
  12. html5-canvas常用的api介绍
  13. 学习笔记(3):海量数据的交互式分析工具-Dremel
  14. MWeb for Mac 3.2.0 专业级的markdown编辑器
  15. CString 彻底解析
  16. OSGEarth解决南北极空洞问题
  17. 参会记录|2022 人工智能安全学术研讨会参会总结
  18. 软件界面交互设计体验
  19. 龙套生涯:《鬼马双星》——许冠杰大战洪金宝
  20. ninja 编译系统

热门文章

  1. mac 上mysql怎么卸载不了_mac的mysql怎么卸载?
  2. dataset的去重计数 g2_ExcelExcel去重、计数一步到位,这个方法简单到哭
  3. 鼠标右键 移动选定的文件夹到指定位置_iRightMouse:一款免费Mac鼠标右键增强神器...
  4. org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the
  5. 7-8 最优服务次序问题 (10 分)
  6. [C++11]独占的智能指针unique_ptr的初始化和使用
  7. 递归函数中局部变量和全局变量
  8. mysql 磁盘i o 优化_经典案例:磁盘I/O巨高排查全过程
  9. python schedule运行了一遍说没有任务_python-schedule模块(定时任务)基于官方文档总结...
  10. python实现辗转相除法求最大公约数和最小公倍数