一、过滤器定义
过滤:安全、干净
过滤应该是一种后加入的功能
二、过滤器在web中的主要作用
1、过滤器是程序运行后加入的
2、功能
任何网站都需要对用户是否登录进行过滤
网上聊天系统,屏蔽非法文字
对请求内容进行统一编码
以上功能都是自动执行的
三、实现过滤器
1、所在类实现filter接口
注意:如果过滤器要将内容传递到目的地,则需要FilterChain ,将请求继续向下转发
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;
public class LoginFilter implements Filter{
// 初始化方法,是在容器启动时自动初始化的
@Override
public void destroy()
{ }
//处理过滤
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException
{chain.doFilter(arg0, arg1);}
//销毁过滤器
@Override
public void init(FilterConfig arg0) throws ServletException
{}}
2、web.xml中添加过滤器
<!-- 添加过滤器 -->
<filter>
<filter-name>login</filter-name>
<filter-class>类所在包.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>login</filter-name>
<!-- 与servlet中的url-pattern不同,此处表示对哪个页面进行过滤,如果全部过滤,则“/*” -->
<url-pattern>/*</url-pattern>
</filter-mapping>
切记:过滤器是种组件用的时候加上去就可以了
例1---编码转换
建立过滤器设置编码
如:request.setCharacterEncoding("GB2312")
例2---用户是否登录
切记:session属于http范畴,所以ServletRequest对象需要先转换成HttpServletRequest对象
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session =req.getSession;
然后进行session验证
四、总结
1、实现filter接口(javax.servlet.Filter)
2、doFilter方法中必须有chain.doFilter(req, resp)
3、web.xml中添加过滤器
4、过滤器是种组件用的时候加上去就可以了
5、原则:开发时只专注于具体的业务实现,而对于登陆之类的验证,肯定属于组件,想整个程序中单独加入的
分享到:
相关推荐
Servlet过滤器遵循`Filter`接口,通过在web.xml配置文件中声明过滤器,可以指定哪些请求需要经过过滤。当用户发起请求时,过滤器会先于目标Servlet执行,可以用来进行预处理,如认证、编码转换、日志记录等。 2. *...
2. **过滤器(Filter)**: 过滤器是Java Web应用中的另一种重要组件,它允许开发者在请求到达目标资源(如Servlet或JSP页面)之前和之后进行拦截处理。过滤器通过实现`javax.servlet.Filter`接口并配置在web.xml文件...
对于初学者,理解并掌握Servlet过滤器是深入学习Java Web开发的关键步骤。 在Java Servlet规范中,Filter接口提供了三个核心方法:`init()`, `doFilter()`, 和 `destroy()`。下面我们将详细讨论这些方法以及如何...
字符过滤器是Servlet规范中的Filter接口的一种应用,主要负责处理HTTP请求和响应中的字符编码问题。在接收到请求时,过滤器可以确保请求参数的正确解码,避免乱码问题。同样,它也可以在发送响应时设定合适的编码,...
过滤器(Filter)作为Servlet技术中的一项重要特性,为Web开发者提供了强大的工具,用于对Web服务器上托管的各种资源进行拦截处理。这些资源包括但不限于JSP页面、Servlet、静态图片文件以及HTML文件等。通过使用...
在这个"Servlet初学源码"中,我们可以看到一系列与Servlet相关的实践代码,涵盖了各种关键概念和技术。 1. **FilterEncoding**:这部分可能涉及到URL编码和解码的过滤器,Filter在Servlet中扮演着预处理和后处理...
过滤器在Java Web开发中被广泛应用,它们是Servlet规范的一部分,定义在`javax.servlet.Filter`接口中。过滤器的生命周期包括初始化、执行和销毁三个阶段,其中执行阶段又分为“doFilter”方法,用于处理请求和响应...
### Filter过滤器 Servlet规范还定义了Filter接口,允许开发者拦截请求和响应,实现诸如认证、日志、内容编码等功能。Filter可以在Servlet处理请求之前和之后进行操作。 ### Session会话管理 Servlet支持HTTP会话...
过滤器是Java Servlet规范的一部分,通过实现javax.servlet.Filter接口来创建。过滤器在请求到达目标Servlet或JSP之前进行拦截,对请求和响应进行修改,或者完全阻止请求。它们遵循一个预定义的生命周期,包括初始化...
例如,我们可以实现一个登录过滤器,如果用户未登录,则重定向到登录页面。 ```java public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ...
3. **配置过滤器**:在Spring的配置文件(如applicationContext.xml或dispatcher-servlet.xml)中,使用`<filter>`和`<filter-mapping>`元素来注册和映射我们的登录过滤器。这样,Spring就会在处理每个请求前调用...
Filter(过滤器)在Java Web中扮演着重要角色,它们可以拦截请求和响应,进行预处理或后处理。比如,`LoginFilter`可以在用户访问受保护的页面前检查其是否已登录。Filter链可以有多个,按照配置的顺序执行,这在...
过滤器链的处理在Servlet3中得到了优化,现在可以动态添加和删除过滤器,同时还可以在过滤器中决定是否继续执行下一个过滤器或者直接终止链。 9. **MIME类型匹配** Servlet3提供了更灵活的MIME类型匹配规则,...
而Filter则可以看作是Servlet的扩展,允许你在请求到达目标Servlet之前或之后进行拦截和处理,实现过滤、日志记录等功能。 在Web应用中,`web.xml`是部署描述符文件,它定义了应用程序的行为,包括Servlet的映射、...
本项目"Test过滤器"提供了一个具体的过滤器实现示例,其中包含了`src`和`webroot`两个主要文件夹,以及可能的Filter和Servlet类。 `src`文件夹是Java源代码存放的地方,通常包括了应用的业务逻辑、模型、视图和控制...
过滤器(Filter)是Servlet API中的另一个重要概念,它可以拦截请求和响应,进行预处理或后处理。例如,我们可以使用过滤器实现登录检查、URL重写、字符编码转换等功能。`Filter`接口的`doFilter()`方法是核心,它...
8. **过滤器Filter**:Servlet API还提供了Filter机制,允许在请求到达Servlet之前或离开Servlet之后进行拦截处理,如数据转换、安全检查等。Filter通过实现javax.servlet.Filter接口并配置在web.xml中。 9. **监听...
这篇初学者适用的Servlet笔记涵盖了几个关键知识点,包括过滤器、表单处理、表单验证、HTTP请求处理、cookie使用以及EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)表达式。下面是对...
过滤器是Java Servlet规范的一部分,定义在`javax.servlet.Filter`接口中。它的主要任务是在请求被Servlet处理之前或响应被发送到客户端之后进行拦截,执行预处理或后处理操作。这使得我们可以在不修改原有代码的...
过滤器(Filter)是Java Servlet API提供的一种机制,它允许开发者在请求到达目标资源(如Servlet、JSP页面)之前以及响应离开服务器返回到客户端之前进行拦截和处理。这一特性使得过滤器在数据验证、安全控制、日志...