您的位置:首页 > 编程语言 > Java开发

过滤器Filter(17/4/8)

2017-04-08 20:44 190 查看
1:是JavaWeb三大组件之一:Servlet、Lisener(2个感知监听器不需要配置)、Filter:2:过滤器它会在一组资源(jsp、servlet、css、html等等)的前面执行!它可以让请求达到目标资源,也可以不让请求达到!*过滤器有拦截请求的能力!相当于小区中的保安3:过滤器的写法写一个类实现Filter接口在web.xml中进行配置4:Filter 接口void init(FilterConfig)创建后马上执行;Filter在服务器启动时就创建void destory()销毁之前执行!在关闭服务器之前销毁void doFilter(ServletRequest,ServletResponse,FilterChain)每次过滤时都会执行Filter是单例的!即只能实例化一次5:web.xml中的配置
<filter>
<filter-name>AFilter</filter-name>
<filter-class>filter.AFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AFilter</filter-name>
//这里可以是/web/*;或者是/AServlet
<url-pattern>/AServlet</url-pattern>
</filter-mapping>
6:代码
1)servlet
package servlet;import java.io.IOException;/*** Created by YuWenHui on 2017/4/8 0008.*/public class AServlet extends javax.servlet.http.HttpServlet {protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {}protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {System.out.println("AServlet.....");}}
2)filter
package filter;import javax.servlet.*;import java.io.IOException;/*** Created by YuWenHui on 2017/4/8 0008.*/public class AFilter implements Filter {public void destroy() {System.out.println("destroy。。。");}public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {System.out.println("doFilter。。。");
//这里将请求传递下去,如果不符合条件这另作处理chain.doFilter(req, resp);}public void init(FilterConfig config) throws ServletException {System.out.println("init。。。");}}
3)配置文件
<?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"><filter><filter-name>AFilter</filter-name><filter-class>filter.AFilter</filter-class></filter><filter-mapping><filter-name>AFilter</filter-name><url-pattern>/AServlet</url-pattern></filter-mapping><servlet><servlet-name>AServlet</servlet-name><servlet-class>servlet.AServlet</servlet-class></servlet><servlet-mapping><servlet-name>AServlet</servlet-name><url-pattern>/AServlet</url-pattern></servlet-mapping></web-app>

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息