码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • WebUtils


    1. import javax.servlet.http.HttpServletRequest;
    2. import javax.servlet.http.HttpServletResponse;
    3. import java.io.IOException;
    4. public class WebUtils {
    5. /**
    6. * 将字符串渲染到客户端
    7. *
    8. * @param response 渲染对象
    9. * @param string 待渲染的字符串
    10. */
    11. public static void renderString(HttpServletResponse response, String string) {
    12. try {
    13. response.setStatus(200);
    14. response.setContentType("application/json");
    15. response.setCharacterEncoding("utf-8");
    16. response.getWriter().print(string);
    17. } catch (IOException e) {
    18. e.printStackTrace();
    19. }
    20. }
    21. /**
    22. * 获取IP地址
    23. *
    24. * @param request
    25. * @return
    26. */
    27. public static String getIpAddr(HttpServletRequest request) {
    28. String ip = request.getHeader("x-forwarded-for");
    29. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    30. ip = request.getHeader("X-Real-IP");
    31. }
    32. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    33. ip = request.getHeader("Proxy-Client-IP");
    34. }
    35. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    36. ip = request.getHeader("WL-Proxy-Client-IP");
    37. }
    38. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    39. ip = request.getRemoteAddr();
    40. }
    41. if ("0:0:0:0:0:0:0:1".equals(ip)) {
    42. ip = "127.0.0.1";
    43. }
    44. if (ip.split(",").length > 1) {
    45. ip = ip.split(",")[0];
    46. }
    47. return ip;
    48. }
    49. }

  • 相关阅读:
    《遥感学报》
    谨以此篇纪念我的csdn创作两周年
    vue实际项目中遇到的问题和解决方式
    图像识别与处理学习笔记(二)图像增强之频率域处理
    使用比值校正法消除信号中正弦信号的干扰
    《钻石王牌》:热血青春·棒球1号位
    年轻人为什么不看百趣代谢组学2022年高分项目文章精选集锦
    微服务架构设计模式
    Kafka基本概念
    java毕业设计iMeli在线彩妆店铺mybatis+源码+调试部署+系统+数据库+lw
  • 原文地址:https://blog.csdn.net/asddasddeedd/article/details/128057147
  • 最新文章
  • 【FHE】我们如何实现同态加密推理(八):SiLU 的密文化——两条路径,和一个 8 字节的开关
    SQLcl 中 c/old/new 替换变量为何失效?先定位再替换
    不让模型写作文,直接从它脑子里读答案:Jev 决策在 .NET 的两条路线
    Halo插件:支持GitHub的图床附件策略
    电视投屏界的“一股清流”!SimpleTVCast 6.0.0-beta 抢先体验:无需TV端App,界面大换血!✨
    华三VXLAN集中式网关实战指南:Spine多活网关 + 双活接入(M-LAG)
    软件更好写之后口碑会更重要
    大 O、大 Omega、大 Theta 的区别,O(n) 复杂度是什么意思
    Java标签跳转:一个鲜为人知但却很实用的小技巧
    多智能体系统论文速读
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号