Struts2中的过滤器
过滤器:
过滤器可以处理用户的请求和程序响应的内容,可用于权限控制、编码转换的场合。过滤器是servlet规范中的一部分,不是只有Struts2有。
使用过滤器之前你得定义一个过滤器(实例化一个对象),也可以根据需求自己写一个类(继承java.Servlet.Filter接口,实现init,doFilter和destory三个方法)然后在这里实例化,以便下面使用。
1 <filter>
2 <filter-name>过滤器名称</filter-name>
3 <filter-class>过滤器对应的类</filter-class>
4 <!-- 初始化参数 -->
5 <init-param>
6 <param-name>参数名称</param-name>
7 <param-value>参数值</param-value>
8 </init-param>
9 </filter>
过滤器必须和特定的URL关联才能发挥作用,关联的方式有3种:(过滤器名就是上面定义的过滤器)
1.与一个URL资源关联(仅仅是在请求xxx.jsp时过滤)
1 <filter-mapping>
2 <filter-name>过滤器名</filter>
3 <url-pattern>xxx.jsp</url-pattern>
4 </filter-mapping>
2.与一个URL目录下的所有资源关联(任何的请求都会过滤)
1 <filter-mapping>
2 <filter-name>过滤器名</filter>
3 <url-pattern>/*</url-pattern>
4 </filter-mapping>
3.与一个Servlet关联(请求指定的Servlet时会过滤)
1 <filter-mapping>
2 <filter-name>过滤器名</filter>
3 <url-pattern>Servlet名称</url-pattern>
4 </filter-mapping>
这样,一个简单的Struts2的过滤器就配置好了(以上的配置都是在web.xml中进行的)。但它的实现流程是怎么样的呢?
假设现在有一个客户端请求(假设该请求已经被关联),这个请求会经过一系列的过滤器(过滤器链),每次经过一个过滤器都会根据当前过滤器对应的类实例化一个对象(调用init方法),并且调用里面的doFilter方法(该方法里面放的是你自己过滤的逻辑),只有通过了当前的过滤器才会到下一个过滤器,直到通过全部过滤器,如果没有通过则调到指定的错误页面。(下面是当一个过滤器通过时执行下一个过滤器的代码,在doFilter方法中)
1 // this is a normal request, let it pass through
2 chain.doFilter(request, response);
然后调用FilterDispatchar,根据用户的不同的请求做不同的处理.....(不是过滤器的内容,就不再阐述)
Struts2中的过滤器的更多相关文章
- 简单理解Struts2中拦截器与过滤器的区别及执行顺序
简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...
- struts2中拦截器与过滤器之间的区别
首先是一张经典的struts2原理图 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标准的过滤器链 c) ...
- 转: Struts2中拦截器与过滤器的区别及执行顺序
当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标准的过滤器链 c) FilterDispatecher会 ...
- struts2 学习记录 过滤器 国际化
struts2接触不是一天两天了,但是一直没有用它做什么项目,但老师确一直说它有很大的学习价值,所以还是把我学习到的东西给记录一下,记录的东西没有规律,只是给自己留个备份, struts2中最关键的是 ...
- Struts2中<jsp:forward page="xxx.action"></jsp:forward>失效
问题:在Struts2中<jsp:forward page="xxx.action"></jsp:forward>失效了,不但调转不过去还报404错误.不知 ...
- 十五、struts2中的拦截器(框架功能核心)
十五.struts2中的拦截器(框架功能核心) 1.过滤器VS拦截器 功能是一回事. 过滤器是Servlet规范中的技术,可以对请求和响应进行过滤. 拦截器是Struts2框架中的技术,实现AOP(面 ...
- 【转】Struts2中的MethodFilterInterceptor(转)
这是一个Struts2.1.8.1应用,代码如下 首先是web.xml文件 view plaincopy to clipboardprint?01.<?xml version="1.0 ...
- 解决struts2中UI标签出现的问题: The Struts dispatcher cannot be found
解决struts2中UI标签出现的问题: The Struts dispatcher cannot be found 异常信息: The Struts dispatcher cannot be fou ...
- Struts2 中添加 Servlet
Struts2中如何添加Servlet 以前Java开发都是Servlet的天下,如今是各种框架横行,遇到一个需要将以前的Servlet加入到现有的Struts2的环境中. Google之后发现Sta ...
随机推荐
- x86-2-保护模式
x86-2-保护模式 操作系统负责计算机上的所有软件和硬件的管理,它可以百分百操作计算机的所有内容.但是,操作系统上编写的用户程序却应当有所限制,只允许用户程序访问属于自己程序的内容,不然整个生态就很 ...
- Eclipse远程调试Java代码的三种方法
Eclipse远程调试Java代码的三种方法, 第1种方法是用来调试已经启动的Java程序,Eclipse可以随时连接到远程Java程序进行调试, 第2种方法可以调试Java程序启动过程,但是Ecli ...
- Sentry 企业级数据安全解决方案 - Relay 运行模式
内容整理自官方开发文档 Relay 可以在几种主要模式之一下运行,如果您正在配置 Relay server 而不是使用默认设置,那么事先了解这些模式至关重要. 模式存储在配置文件中,该文件包含 rel ...
- windows更改pip源(可用)
中国科学技术大学 : https://pypi.mirrors.ustc.edu.cn/simple 清华:https://pypi.tuna.tsinghua.edu.cn/simple 豆瓣:ht ...
- vue实现PC端分辨率适配
lib-flexible + px2rem Loader lib-flexible 阿里伸缩布局方案 px2rem-loader:px转rem: 依赖 首先需要安装 vue-cli 脚手架,这里我安装 ...
- Keil MDK STM32系列(六) 基于抽象外设库HAL的ADC模数转换
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- 都2022年了,你的前端工具集应该有vueuse
摘要:一款基于Vue组合式API的函数工具集. 本文分享自华为云社区<vueuse:我不许身为vuer的前端,你的工具集只有lodash!>,作者: 前端要摸鱼 . vueuse 是什么? ...
- Golang单元测试框架整理
目录 一.单元测试是什么 二.单元测试的意义 三.Golang单元测试框架 3.1 Golang内置testing包 3.1.1 简单的测试 3.1.2 Benchmark 基准测试 3.1.3 运行 ...
- WebGPU 中消失的 VAO
1 VAO 是 OpenGL 技术中提出来的 参考: 外链 其中有一段文字记录了 VAO 是什么: A Vertex Array Object (VAO) is an object which con ...
- update(修改,DML语句) 和 delete(删除数据,DML语句)
7.7.修改update(DML) 语法格式: update 表名 set 字段名1=值1,字段名2=值2,字段名3=值3....where 条件; 注意:没有条件限制会导致所有数据全部更新 upda ...