zoukankan      html  css  js  c++  java
  • 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 {
    		
    	}
    
    }
    

      

  • 相关阅读:
    MySQL字符串相加函数如何运行?似曾相识还是记一笔吧
    JQuery使用getJSON跨域调用数据
    匹配中文字符的正则表达式
    php中删除超链接的正则表达式
    win2003系统+IIS6下,经常出现w3wp.exe和sqlserver.exe的内存占用居高不下
    如何添加修改uchome创始人
    JS中Null与Undefined的区别
    错误分析及解决办法MySQL server has gone away
    更改表自动递增值的sql
    mysql如何修改导入数据库文件大小限制
  • 原文地址:https://www.cnblogs.com/therunningfish/p/6558190.html
Copyright © 2011-2022 走看看