`
san_yun
  • 浏览: 2676833 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

java 获取url的根域名的bug

 
阅读更多

最近需要把一个url的根域名找出来,看着挺简单的需求,结果写出来的代码 却有bug:

public String getSourceDomain(String sourceLink) {
		if (sourceLink == null) {
			return null;
		}
		try {
			URI url = new URI(sourceLink);
			String host = url.getHost();
			int split = host.indexOf('.');
			return "www" + host.substring(split, host.length());
		} catch (URISyntaxException e) {
			return null;
		}
}

 

这段代码的问题在于,如果只能处理movie.douban.com这种情况,如果是douban.com,或者test.movie.douban.com则无法处理,正确的做法

	public String getSourceDomain() {
		if (sourceLink == null) {
			return null;
		}
		try {
			URI url = new URI(sourceLink);
			String host = url.getHost();
			String[] hostStr = host.split("\\.");
			int length = hostStr.length;
			if (hostStr.length >= 2) {
				return "www." + hostStr[length - 2] + "." + hostStr[length - 1];
			} else {
				return host;
			}
		} catch (URISyntaxException e) {
			return null;
		}
	}

 

 

分享到:
评论

相关推荐

    uditor自定义图片存储路径和图片读取域名2

    【uditor自定义图片存储路径和图片读取域名2】是一个关于优化和扩展富文本编辑器uditor的实践,主要涉及两个核心知识点:自定义图片存储路径和设置图片读取域名。uditor是一款广泛使用的JavaScript富文本编辑器,...

    程序员需要知道的16件事

    可以参考MobiForge等资源获取更多关于移动端设计的知识。 3. **版本控制系统**:熟悉版本控制系统(如CVS、Subversion、Git等)对于管理代码变更至关重要,同时备份数据也是一项重要的实践。 4. **用户引导**:...

    SpringMVC-Mybatis-Shiro-redis-master 权限集成缓存中实例

    和上面配置是一样的道理,可以在相同 一级域名 下的所有域名都可以获取到登录的信息。 四、简单实现了单个帐号只能在一处登录。 我们在其他的系统中可以看到,单个帐号只允许一人使用,在A处登录了,B处再登录,那A...

    2021-2022计算机二级等级考试试题及答案No.13597.docx

    24. URL 结构:Http://www.panda.com.cn 中,cn 代表顶级域名,表示中国。 25. Access 数据库:Access 是 Microsoft 提供的关系型数据库管理系统,用于存储、管理和检索数据。 以上就是这些试题所涵盖的主要知识点...

    nginx-1.15.5

    虽然具体的变更日志没有提供,但通常新版本会包含性能优化、安全修复、bug修复和对新特性的支持。对于1.15.5,可以预期它在稳定性和安全性上有所提升。 总结,Nginx 1.15.5作为一款强大的Web服务器,其性能、灵活性...

Global site tag (gtag.js) - Google Analytics