web.xml中过滤器实现总结
2018-02-23 11:03
204 查看
在web开发过程中,往往需要在web.xml中进行过滤配置,对用户的请求以及服务器的响应进行过滤。
过滤器的实现总结:
1、定义一个类实现Filter接口
2、在init()初始化方法中获取web.xml中配置的参数值
3、在doFilter方法中实现过滤逻辑
Filter接口提供了三个方法:
init():初始化,读取web.xml中配置的参数
doFilter():实现过滤逻辑
destory():注销该过滤器
public interface Filter {
default void init(FilterConfig filterConfig) throws ServletException {
}
void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) throws IOException, ServletException;
default void destroy() {
}
}下面举例说明过滤器的用法:该过滤器禁止某些IP访问应用
定义类实现Filter接口:
package Filter;
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 java.io.IOException;
import java.io.PrintWriter;
public class IpFilter implements Filter {
protected FilterConfig filterConfig ;
protected String ip;
//过滤器初始化的时候调用,在过滤器初始化过程中从web配置文件读取参数的内容
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.ip = this.filterConfig.getInitParameter("ip");
}
//实现过滤操作
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
String remoteIp = servletRequest.getRemoteAddr();
if (remoteIp.equals(ip)) {
servletResponse.setCharacterEncoding("GBK");
PrintWriter out = servletResponse.getWriter();
out.println("<b>你的IP地址被禁止访问.</b>");
} else {
filterChain.doFilter(servletRequest, servletResponse);
}
}
@Override
public void destroy() {
}
}web.xml中过滤器的配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<!--IP过滤的过滤器配置-->
<filter>
<filter-name>IpFilter</filter-name>
<filter-class>Filter.IpFilter</filter-class>
<!--在初始化的时候加载的参数-->
<init-param>
<param-name>ip</param-name>
<param-value>127.0.0.1</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>IpFilter</filter-name>
<url-pattern>/*</url-pa
4000
ttern>
</filter-mapping>
<!--编码过滤器的配置-->
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>
Filter.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
<init-param>
<param-name>enable</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--Servlet配置-->
<servlet>
<servlet-name>HelloWorlds</servlet-name>
<servlet-class>HelloWorld.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorlds</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AcceptForm</servlet-name>
<servlet-class>servlets.AcceptForm</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AcceptForm</servlet-name>
<url-pattern>/AcceptForm</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AcceptLink</servlet-name>
<servlet-class>servlets.AcceptLink</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AcceptLink</servlet-name>
<url-pattern>/AcceptLink</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>FileReader</servlet-name>
<servlet-class>servlets.FileReader</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileReader</servlet-name>
<url-pattern>/FileReader</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>FileWriter</servlet-name>
<servlet-class>servlets.FileWriter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileWriter</servlet-name>
<url-pattern>/FileWriter</url-pattern>
</servlet-mapping>
</web-app>
过滤器的实现总结:
1、定义一个类实现Filter接口
2、在init()初始化方法中获取web.xml中配置的参数值
3、在doFilter方法中实现过滤逻辑
Filter接口提供了三个方法:
init():初始化,读取web.xml中配置的参数
doFilter():实现过滤逻辑
destory():注销该过滤器
public interface Filter {
default void init(FilterConfig filterConfig) throws ServletException {
}
void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) throws IOException, ServletException;
default void destroy() {
}
}下面举例说明过滤器的用法:该过滤器禁止某些IP访问应用
定义类实现Filter接口:
package Filter;
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 java.io.IOException;
import java.io.PrintWriter;
public class IpFilter implements Filter {
protected FilterConfig filterConfig ;
protected String ip;
//过滤器初始化的时候调用,在过滤器初始化过程中从web配置文件读取参数的内容
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.ip = this.filterConfig.getInitParameter("ip");
}
//实现过滤操作
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
String remoteIp = servletRequest.getRemoteAddr();
if (remoteIp.equals(ip)) {
servletResponse.setCharacterEncoding("GBK");
PrintWriter out = servletResponse.getWriter();
out.println("<b>你的IP地址被禁止访问.</b>");
} else {
filterChain.doFilter(servletRequest, servletResponse);
}
}
@Override
public void destroy() {
}
}web.xml中过滤器的配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<!--IP过滤的过滤器配置-->
<filter>
<filter-name>IpFilter</filter-name>
<filter-class>Filter.IpFilter</filter-class>
<!--在初始化的时候加载的参数-->
<init-param>
<param-name>ip</param-name>
<param-value>127.0.0.1</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>IpFilter</filter-name>
<url-pattern>/*</url-pa
4000
ttern>
</filter-mapping>
<!--编码过滤器的配置-->
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>
Filter.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
<init-param>
<param-name>enable</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--Servlet配置-->
<servlet>
<servlet-name>HelloWorlds</servlet-name>
<servlet-class>HelloWorld.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorlds</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AcceptForm</servlet-name>
<servlet-class>servlets.AcceptForm</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AcceptForm</servlet-name>
<url-pattern>/AcceptForm</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AcceptLink</servlet-name>
<servlet-class>servlets.AcceptLink</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AcceptLink</servlet-name>
<url-pattern>/AcceptLink</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>FileReader</servlet-name>
<servlet-class>servlets.FileReader</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileReader</servlet-name>
<url-pattern>/FileReader</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>FileWriter</servlet-name>
<servlet-class>servlets.FileWriter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileWriter</servlet-name>
<url-pattern>/FileWriter</url-pattern>
</servlet-mapping>
</web-app>
相关文章推荐
- 5.3.2 实现与设置过滤器 使用@WebFilter标注或在web.xml中定义过滤器
- 解析通过web.xml文件控制利用过滤器实现编码格式步骤
- java网络编程--解析通过web.xml文件控制利用过滤器实现编码格式步骤
- XML+RDF——实现Web数据基于语义的描述
- web.xml规则经过整理总结如下:
- Struts2.0里权限验证过滤器的设置(web.xml)
- Tomcat(二) Tomcat实现:Servlet与web.xml介绍 以及 源码分析Tomcat实现细节
- ApplicationContext的三种实现方式以及在web.xml配置的两种方式
- 续:利用XML实现通用WEB报表打印(实现篇)
- 关于编码过滤的问题,这里使用在web.xml中添加过滤器的方法!
- web前端,jquery实现瀑布流总结6,jQuery 事件 - scroll() 方法 滚动
- (转)基于MVC4+EasyUI的Web开发框架经验总结(7)--实现省份、城市、行政区三者联动
- 基于MVC+EasyUI的Web开发框架经验总结(9)--在Datagrid里面实现外键字段的转义操作
- springmvc配置文件web.xml详解各方总结。
- SSH项目web.xml文件的常用配置【struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器】
- 关于web.xml和server.xml中编码过滤器的区别
- 基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作
- C#.NET示例读写xml所有节点的代码实现方法和读取xml节点的数据总结
- web.xml被文件加载过程,各节点加载顺序总结
- web.xml中listener作用及使用--实现记录网站的客户登录日志, 统计在线人数