• HTTP相关


    CXF实现类中获取HttpServletRequest:

    public class BaseWebService {
    
        @Context
        private MessageContext messageContext;
    
        protected String getIpAddr() {
            Message message = PhaseInterceptorChain.getCurrentMessage();
            if(message==null)
                return "0.0.0.0.1";
            // 获取HttpServletRequest
            HttpServletRequest request = (HttpServletRequest)message.get(AbstractHTTPDestination.HTTP_REQUEST);
            //获取response
             HttpServletResponse response = (HttpServletResponse)message.get(AbstractHTTPDestination.HTTP_RESPONSE);
            //获取ServletContext
             ServletContext servletContext = (ServletContext)message.get(AbstractHTTPDestination.HTTP_CONTEXT);
            String ip = request.getHeader("x-forwarded-for");
            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
                ip = request.getHeader("Proxy-Client-IP");
            }
            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
                ip = request.getHeader("WL-Proxy-Client-IP");
            }
            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
                ip = request.getRemoteAddr();
            }
            return ip;
        }
    }
    

    Filter中获取HttpServletRequest:

    public class LoginTokenFilter implements Filter{
    
    	private static final Logger log = Logger.getLogger(LoginTokenFilter.class);
    
    	@Override
    	public void destroy() {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
    			throws IOException, ServletException {
    		try{
    			// 获取HttpServletRequest
    			HttpServletRequest request = (HttpServletRequest) req;
    			// 获取HttpServletResponse
    			HttpServletResponse response = (HttpServletResponse) res;
    			boolean isOptions = StringUtils.equals("OPTIONS", request.getMethod());
    			ThreadlocalUtil.setIsOptions(isOptions);
    			ThreadlocalUtil.setNewVersion(false);
    			//跨域设置
    			AppConfig appConfig = (AppConfig) SpringContextUtil.getBean("appConfig");
    			if(StringUtils.equals("1", appConfig.getCrossDomainFlag())){
    				response.setHeader("Access-Control-Allow-Origin", "*");
    				response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
    				response.setHeader("Access-Control-Max-Age", "3600");
    				response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
    				response.setHeader("Access-Control-Allow-Headers", "Content-Type,Authorization,Accept,X-Requested-With,POWERED-BY-MENGXIANHUI,logintoken,userID");
    			}
    			
    			System.out.println("getAuthType============"+request.getAuthType());
    			System.out.println("getContextPath============"+request.getContextPath());
    			System.out.println("getMethod============"+request.getMethod());
    			System.out.println("getPathInfo============"+request.getPathInfo());
    			System.out.println("getPathTranslated============"+request.getPathTranslated());
    			System.out.println("getRemoteUser============"+request.getRemoteUser());
    			System.out.println("getRequestedSessionId============"+request.getRequestedSessionId());
    			System.out.println("getRequestURI============"+request.getRequestURI());
    			System.out.println("getRequestURL============"+request.getRequestURL());
    			System.out.println("getServletPath============"+request.getServletPath());
    			System.out.println("getRemoteAddr============"+request.getRemoteAddr());
       
    			chain.doFilter(request, res);
    			
    		} catch (Exception e){
    			log.error("LoginTokenFilter is error!",e);
    			throw e;
    		}
    	}
    
    	@Override
    	public void init(FilterConfig arg0) throws ServletException {
    		
    	}
    
    }
    

      

  • 相关阅读:
    图像滤波与OpenCV中的图像平滑处理
    OpenCV创建轨迹条,图片像素的访问
    模板类和友元的总结和实例验证
    C++中运算符重载
    C++之Stack模板类
    C++中explicit关键字的作用
    #ifdef-#endif的作用及其使用技巧
    ZOJ 3170 Friends
    ZOJ 3713 In 7-bit
    HDU 1421 搬寝室
  • 原文地址:https://www.cnblogs.com/therunningfish/p/6558190.html
Copyright © 2020-2023  润新知