欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

CorsFilter 過濾器解決跨域的處理

 更新時間:2021年06月07日 11:15:33   作者:侯賽雷  
這篇文章主要介紹了CorsFilter 過濾器解決跨域的處理操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

CorsFilter 過濾器如何解決跨域

不多逼逼,直接貼代碼,前端所有請求頭都放在headers里面就行

@Component
public class CorsFilter {
    //這里是前端請求頭,那個跨域就添加到這里就行了
    private static final String headers = "User-Agent,Cache-Control,Content-type,Date,Server,withCredentials," +
            "appversion";
    @Override
    public void init(FilterConfig filterConfig)
            throws ServletException {
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        HttpServletResponse httpServletResponse = (HttpServletResponse) response;
        httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
        httpServletResponse.setHeader("Access-Control-Allow-Headers", headers);
        httpServletResponse.setHeader("Access-Control-Allow-Credentials", "true");
        httpServletResponse.setHeader("Access-Control-Allow-Methods",
                "GET, POST, PUT, DELETE, OPTIONS, HEAD");
        httpServletResponse.setHeader("Access-Control-Max-Age", "3600");
        httpServletResponse.setHeader("Access-Control-Expose-Headers", "usertoken");
        httpServletResponse.setHeader("Access-Control-Request-Headers", "usertoken");
        httpServletResponse.setHeader("Expires", "-1");
        httpServletResponse.setHeader("Cache-Control", "no-cache");
        httpServletResponse.setHeader("pragma", "no-cache");
        ServletRequest requestWrapper = null;
        if (request instanceof HttpServletRequest) {
            requestWrapper = new RequestWrapper((HttpServletRequest) request);
        }
        if (null == requestWrapper) {
            chain.doFilter(request, response);
        } else {
            chain.doFilter(requestWrapper, response);
        }
    }
    @Override
    public void destroy() {
    }
}

一個CORS實現(xiàn)跨域的過濾器

package com.grain.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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CORSFilter implements Filter {
 @Override
 public void init(FilterConfig arg0) throws ServletException {
  // TODO Auto-generated method stub
  
 }
 @Override
 public void destroy() {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain)
   throws IOException, ServletException {
  HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;
  response.addHeader("Access-Control-Allow-Origin", "*");
        response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
        response.addHeader("Access-Control-Allow-Headers", "Content-Type");
        response.addHeader("Access-Control-Max-Age", "1800");//30 min
        filterChain.doFilter(request, response); 
 }
}

web.xml配置

<filter>
   <filter-name>CORSFilter</filter-name>
   <filter-class>com.grain.filter.CORSFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>CORSFilter</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring session整合到Redis過程解析

    Spring session整合到Redis過程解析

    這篇文章主要介紹了Spring session整合到Redis過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • java通過證書訪問etcd的實現(xiàn)步驟

    java通過證書訪問etcd的實現(xiàn)步驟

    Etcd提供了多種語言的客戶端庫,本文主要介紹了java通過證書訪問etcd的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • 解決java連接虛擬機Hbase無反應(yīng)的問題

    解決java連接虛擬機Hbase無反應(yīng)的問題

    這篇文章主要介紹了解決java連接虛擬機Hbase無反應(yīng)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java輸入流Scanner/BufferedReader使用方法示例

    Java輸入流Scanner/BufferedReader使用方法示例

    這篇文章主要介紹了Java輸入流Scanner/BufferedReader使用方法,大家看示例吧
    2013-11-11
  • Java基于正則表達式獲取指定HTML標簽指定屬性值的方法

    Java基于正則表達式獲取指定HTML標簽指定屬性值的方法

    這篇文章主要介紹了Java基于正則表達式獲取指定HTML標簽指定屬性值的方法,涉及java基于正則的HTML元素匹配相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • RSA加密的方式和解密方式實現(xiàn)方法(推薦)

    RSA加密的方式和解密方式實現(xiàn)方法(推薦)

    下面小編就為大家?guī)硪黄猂SA加密的方式和解密方式實現(xiàn)方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 你必須得會的SpringBoot全局統(tǒng)一處理異常詳解

    你必須得會的SpringBoot全局統(tǒng)一處理異常詳解

    程序在運行的過程中,不可避免會產(chǎn)生各種各樣的錯誤,這個時候就需要進行異常處理,本文主要為大家介紹了SpringBoot實現(xiàn)全局統(tǒng)一處理異常的方法,需要的可以參考一下
    2023-06-06
  • java如何實現(xiàn)socket連接方法封裝

    java如何實現(xiàn)socket連接方法封裝

    這篇文章主要介紹了java實現(xiàn)socket連接方法封裝教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java之Spring整合Junit

    Java之Spring整合Junit

    Java Spring框架是一個輕量級的開源框架,具有很高的凝聚力和吸引力,本篇文章帶你了解如何配置數(shù)據(jù)源、注解開發(fā)以及整合Junit
    2023-04-04
  • Java8通過Function獲取字段名的步驟

    Java8通過Function獲取字段名的步驟

    這篇文章主要介紹了Java8通過Function獲取字段名,需要的朋友可以參考下
    2020-04-04

最新評論