java webservice服务器端获取request对象的三种方式
2015-11-22 09:32
357 查看
有的时候在webservice里我们需要获取request对象和response对象,比如想要获得客户端的访问ip的时候就需要这么做,下面说三种方式,当然三种方式可能是针对不同方式部署webservice获取request对象的方法。
第一种:先配置注入:
其次是下面的代码:
第二种:
第三种(附带获取客户端ip地址的方法):
获取ip:
第一种:先配置注入:
@Resource private WebServiceContext webServiceContext;
其次是下面的代码:
MessageContext mc = webServiceContext.getMessageContext(); HttpServletRequest request = (HttpServletRequest) (mc.get(MessageContext.SERVLET_REQUEST));
第二种:
WebServiceContext context = new WebServiceContextImpl(); MessageContext ctx = context.getMessageContext(); HttpServletRequest request = (HttpServletRequest) ctx.get(AbstractHTTPDestination.HTTP_REQUEST);
第三种(附带获取客户端ip地址的方法):
Message message = PhaseInterceptorChain.getCurrentMessage(); HttpServletRequest request = (HttpServletRequest) message.get(AbstractHTTPDestination.HTTP_REQUEST);
获取ip:
public static String getIpAddr(HttpServletRequest request) { 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 || "unknow".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; }
相关文章推荐
- org.hibernate.QueryException: Space is not allowed after parameter prefix ':'
- Ext.QuickTips.init();
- HDU 2767 Proving Equivalences (tarjan scc)
- iOS - UIButton 开发总结
- UiDevice新增API
- HDU 2767 Proving Equivalences(强连通缩点)
- EasyUI常用控件的禁用方法
- request biji
- leetcode笔记:N-Queens II
- Druid监控数据库
- duilib 入门一之界面库基本原理
- 如何解决virtualbox中不能打开一个虚拟任务之uuid不匹配的问题
- 移植opencv到pcDuino
- arduino ide找不到目标文件
- HDU-5568 sequence2(DP+高精度)
- HDU5568/BestCoder Round #63 (div.2) B.sequence2 dp+高精度
- HDU5567/BestCoder Round #63 (div.2) A sequence1 水
- hdoj5567sequence1
- UILabel,UITextField,UIButton三大基础控件总结
- BestCoder Round #63 (div.1) A.sequence2