webservice服务器端获取request对象的三种方式
生活随笔
收集整理的这篇文章主要介绍了
webservice服务器端获取request对象的三种方式
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
有的时候在webservice里我们需要获取request对象和response对象,比如想要获得客户端的访问ip的时候就需要这么做,下面说三种方式,当然三种方式可能是针对不同方式部署webservice获取request对象的方法。
第一种:先配置注入:
@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;}转载于:https://www.cnblogs.com/soul-wonder/p/8889108.html
总结
以上是生活随笔为你收集整理的webservice服务器端获取request对象的三种方式的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【sping揭秘】9、容器内部事件发布(
- 下一篇: k8s nodeport下访问请求未被分