Java EE中filter(过滤器)的使用
来源:互联网 发布:淘宝二加一正品 编辑:程序博客网 时间:2024/04/29 12:16
过滤器的使用:
Servlet过滤器可以当做一个只需要在web.xml文件中配置就可以灵活使用,可以重用的模块化组件,它能够对jsp、HTML、Servlet进行过滤,而实现一个过滤器需要实现两个步骤:
1、实现接口
2、实现3个方法
下面就让我们来实现这一过程:
1、实现接口
导入包 javax.servlet.Filter;
2、实现3个方法
初始化方法:表示的是过滤器初始化时的动作
public void init(FilterConfig config);
消亡方法:表示的是过滤器消亡消亡时候的动作
public void destroy();
过滤函数:表示的是过滤器过滤时的动作
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException;
首先,我们测试一下没有过滤器的表单提交数据,创建filterForm.jsp文件,其代码如下:
<%@page contentType="text/html" pageEncoding="UTF-8" language="java" import="java.util.*"%><!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <form action="DealWithServlet" method="post"> 请输入学生信息的资料: <input type="text" name="stuname"> <input type="submit" value="查询"> </form> </body></html>
之后单击提交给Servlet进行处理,由于我们要提交给DealWithFilter,所以我们在这里再创建一个DealWithFilter过滤器文件,,其代码如下:
import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DealWithServlet extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String stuname=request.getParameter("stuname"); System.out.println("学生姓名:"+stuname); }}
当然在创建Servlet时也是需要对web.xml进行配置,其代码为:
<servlet> <servlet-name>DealWithServlet</servlet-name> <servlet-class>com.lutsoft.filter.DealWithServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DealWithServlet</servlet-name> <url-pattern>/DealWithServlet</url-pattern> </servlet-mapping>
好了,让我们进行测试,结果是乱码的:如下图所示
现在我们进行对Filter编码进行设置,创建新过滤器文件EncodingFilter,代码如下:
package com.lutsoft.filter;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 EncodingFilter implements Filter { public void init(FilterConfig config) throws ServletException{} public void destroy(){} public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("utf-8"); chain.doFilter(request, response); }}
对于以后的更改,我们只需要对request.setCharacterEncoding("utf-8");进行更改就可以实现对所有界面的更改,如将编码格式改为gb2312,其代码为request.setCharacterEncoding("gb2312");。
然后在web.xml中进行配置此过滤器,代码如下所示:
<filter> <filter-name>EncodingFilter</filter-name> <filter-class>com.lutsoft.filter.EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
现在重新提交就能够正常显示了
好了,以上就是Filter的使用方法,谢谢
- Java EE中filter(过滤器)的使用
- JAVA-EE过滤器Filter的简单使用
- Java Web中使用filter(过滤器)的原因
- Java Web Filter(过滤器的使用)
- Java过滤器-Filter过滤器的使用
- JAVA过滤器的使用(Filter)
- Java Filter过滤器使用
- angularJS中filter(过滤器)的使用
- [filter] Java web 中过滤器的配置
- Java中常用的Filter过滤器
- 使用java的过滤器filter备忘(get和post)
- 使用java的过滤器filter备忘(HttpServletResponseWrapper)
- Java中的Filter过滤器的使用
- Filter过滤器的使用
- filter过滤器的使用
- filter过滤器的使用
- filter过滤器的使用
- Filter过滤器的使用
- Cydia app为何收不到APNs?
- 农村姑娘误加了一个博士群,结果...
- 通过 js 设置点击查看原图
- Android实现智能家居
- Cocosd2d-js 实现序列化Json文件
- Java EE中filter(过滤器)的使用
- Tomcat源码分析--Connector(连接器)
- Python字符串操作
- Zookeeper web工具总结
- Python数据分析学习笔记三
- kdmctvyz
- spring boot 使用application.properties 进行外部配置
- 初步认识redis
- js原型继承机制实例详解