Filter过滤器的使用!!!

  • 什么是过滤器

当浏览器向服务器发送请求的时候,过滤器可以将请求拦截下来,完成一些特殊的功能,比如:编码设置、权限校验、日志记录等。

  • 过滤器执行流程

Filter过滤器的使用!!!_第1张图片

过滤器的使用:

/*
 * Copyright (c) 2020, 2023,  All rights reserved.
 *
 */
package com.by.servlet;

import javax.servlet.*;
import java.io.IOException;

/**
 * 

Project: JavaWeb-Servlet - FilterDome

*

Powered by scl On 2023-12-27 14:45:18

*

描述:

* * @author 孙臣龙 [[email protected]] * @version 1.0 * @since 17 */ public class FilterDome implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { servletRequest.setCharacterEncoding("utf-8");//设置请求的编码格式 servletResponse.setContentType("text/html;charset=utf-8");//设置相应的编码格式 System.out.println("---------come in----------"); filterChain.doFilter(servletRequest,servletResponse);//过滤器放行 System.out.println("------------good by------------"); } @Override public void destroy() { } }

测试代码:

/*
 * Copyright (c) 2020, 2023,  All rights reserved.
 *
 */
package com.by.servlet;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 

Project: JavaWeb-Servlet - FileterTest

*

Powered by scl On 2023-12-27 14:48:04

*

描述:

* * @author 孙臣龙 [[email protected]] * @version 1.0 * @since 17 */ public class FilterTest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username = req.getParameter("username"); String password = req.getParameter("password"); resp.getWriter().write(username+password); } }

 表单代码:

<%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2023/12/25
  Time: 15:28
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

  
    $Title$
  
  
  

配置文件web.xml:


    
        FilterDome
        com.by.servlet.FilterDome
    
    
        FilterDome
        /*
    
    
    
        filterTest
        com.by.servlet.FilterTest
    
    
        filterTest
        /filter
    

 

  • 使用过滤器需要注意的事项:

1.过滤器必须实现Filter接口。

2.过滤器拦截的请求执行完毕之后,必须要放行,否则我们的请求就不会被执行。

 filterChain.doFilter(request,response); //过滤器放行

3.我们可以使用@WebFilter来配置过滤器要拦截的资源,当然我们也可以通过xml的方式配置过滤器。

  
        filter
        com.by.servlet.FilterDemo
    
    
        filter
        /*
    
  • Filter的拦截路径的配置

1.拦截具体的资源路径:/index.jsp,只有访问index.jsp的时候才会被拦截

2.目录拦截:/user/*,访问/user下的所有资源,都会被拦截

3.后缀名拦截:*.jsp 访问后缀名为jsp的资源,都会被拦截

4.拦截所有:/* 访问所有的资源,都会被拦截

你可能感兴趣的:(hive,hadoop,数据仓库)