lxw
2021-03-13 48080b4a3b0c124752899870d8d0cdeafd3b8734
跨域
1个文件已删除
3个文件已添加
1个文件已修改
13481 ■■■■■ 已修改文件
Dev_FastAcquisition/WebRoot/WEB-INF/web.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dev_FastAcquisition/WebRoot/WEB-INF/电压2020_03_04_10_00_dgls.csv 13313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dev_FastAcquisition/src/com/fgkj/Filters/CrossDomainLimitFilter.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dev_FastAcquisition/src/com/fgkj/Filters/Encroding.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dev_FastAcquisition/src/com/fgkj/Filters/MyRequestWrapper.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dev_FastAcquisition/WebRoot/WEB-INF/web.xml
@@ -5,7 +5,22 @@
    <session-timeout>30</session-timeout>
  </session-config>
  
  <filter>
      <filter-name>CrossDomainLimitFilter</filter-name>
      <filter-class>com.fgkj.Filters.CrossDomainLimitFilter</filter-class>
  </filter>
  <filter-mapping>
      <filter-name>CrossDomainLimitFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter>
    <filter-name>Encroding</filter-name>
    <filter-class>com.fgkj.Filters.Encroding</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>Encroding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <filter>
    <filter-name>struts2</filter-name>
Dev_FastAcquisition/WebRoot/WEB-INF/µçѹ2020_03_04_10_00_dgls.csv
File was deleted
Dev_FastAcquisition/src/com/fgkj/Filters/CrossDomainLimitFilter.java
New file
@@ -0,0 +1,81 @@
package com.fgkj.Filters;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
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;
import org.omg.CORBA.Request;
public class CrossDomainLimitFilter implements Filter{
    public static final int max_connect_count = 10;
    public final static String CROSS_DOMAIN_KEY    = "44c4a294cb66d13727c14b065dbe8548";        //跨域请求 key
    public void doFilter(ServletRequest req, ServletResponse resp,
            FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request=(HttpServletRequest)req;
        HttpServletResponse response =(HttpServletResponse)resp;
        String URL=request.getRequestURI();
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        //非跨域请求
        isAlowCrossDomain(response,request);
        chain.doFilter(request, response);
    }
    public void init(FilterConfig arg0) throws ServletException {
    }
    public void destroy() {
    }
    /**
     * å…è®¸è·¨åŸŸè®¿é—®
     * @param response
     */
    public void isAlowCrossDomain(HttpServletResponse response,HttpServletRequest request){
         // è®¾ç½®å…è®¸å¤šä¸ªåŸŸåè¯·æ±‚
        String[] allowDomains = {"http://localhost:8919","http://localhost:8080","http://localhost:8081"};
        Set allowOrigins = new HashSet(Arrays.asList(allowDomains));
       // if (Arrays.asList(Constants.ALLOW_DOMAIN).contains(originHeader)) {
        String originHeads = request.getHeader("Origin");
        if(allowOrigins.contains(originHeads)){
            //设置允许跨域的配置
            // è¿™é‡Œå¡«å†™ä½ å…è®¸è¿›è¡Œè·¨åŸŸçš„主机ip(正式上线时可以动态配置具体允许的域名和IP)
            response.setHeader("Access-Control-Allow-Origin", originHeads);
        }
         /*String ip=request.getRemoteAddr();
         //String originHeads = request.getHeader("Host");
         String originHeads =ip+":8080";
         System.out.println(originHeads);*/
         response.setHeader("Access-Control-Allow-Origin", originHeads);
        //response.setHeader("Access-Control-Allow-Origin", "*");                //允许跨域访问
        response.setHeader("Access-Control-Allow-Headers", "X-Requested-With,content-type,token");
        response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");
        response.setHeader("Access-Control-Allow-Credentials", "true");
    }
    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf.format(new Date()));
    }
}
Dev_FastAcquisition/src/com/fgkj/Filters/Encroding.java
New file
@@ -0,0 +1,31 @@
package com.fgkj.Filters;
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 Encroding implements Filter{
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        //System.out.println("编码修改成功");
        chain.doFilter(request, response);
    }
    public void init(FilterConfig arg0) throws ServletException {
    }
    public void destroy() {
    }
}
Dev_FastAcquisition/src/com/fgkj/Filters/MyRequestWrapper.java
New file
@@ -0,0 +1,39 @@
package com.fgkj.Filters;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpSession;
public class MyRequestWrapper extends HttpServletRequestWrapper{
    private Locale locale = null;
    public MyRequestWrapper(HttpServletRequest request) {
        super(request);
        HttpSession session = request.getSession();
        locale = (Locale) session.getAttribute("WW_TRANS_I18N_LOCALE");
    }
    /**
     * struts2的BUG,如果重定向的话,国际化默认取HTTP请求头中的参数 æ›¿æ¢HTTP请求参数
     **/
    @Override
    public String getHeader(String name) {
        String value = super.getHeader(name);
        System.out.println(value);
        if ("Accept-Language".equals(name) && locale != null) {
            value = locale.getLanguage() + "_" + locale.getCountry()
                    + value.substring(6, value.length());
        }
        return value;
    }
    @Override
    public Locale getLocale() {
        if (locale != null) {
            return locale;
        }
        return super.getLocale();
    }
}