`
wuhui
  • 浏览: 52343 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java配合tomcat实现动态2级域名效果

    博客分类:
  • java
阅读更多
开始之前,首先来认识下什么是2级域名?

一般我们注册一个域名,比如 www.iteye.com (以下内容均以iteye.com域名为例子,当然这只是example,该域名早已被注册了!),那么这个就是你的1级域名(顶级域名),是固定的并且只有1个,而像 robin.iteye.com,stephen830.iteye.com等等就是你这个1级域名下的2级域名了。因此,每个1级域名下面可以拥有无数个2级域名,只要你的名字符合国际域名名称定义规则。

现在越来越多的网站提供2级域名的功能,就如JavaEye,只要您注册成为用户,您就可以当场得到一个属于自己的2级域名。可能,或许您觉得这其中很神秘,以为这个功能实现会比较复杂,其实不然,看完了本篇文章,相信您也可以轻而易举打造自己的动态2级域名效果了。

下面就让我们一步步来看看如何实现的吧!

第1步 您要准备一个1级域名(国际域名,国内域名都可以),并且您域名所在的dns服务器要支持域名泛解析功能,拿iteye.com来说,泛解析就是a.iteye.com/b.iteye.com/c.iteye.com/...,所有这些都指向iteye.com设置的同一个ip地址,有了这个功能,域名才能够实现动态2级域名。一般域名服务商的dns服务器都有这个功能。如下图(图1):

(图1)

您只需要在域名的配置中增加一条*.开头的记录,就可以实现泛解析了。配置完后,你可以用ping命令测试下,假设你的域名是iteye.com,你可以运行 ping a.iteye.com,如果通的话就表示支持泛解析了。(当然,要注意有的主机服务器屏蔽ping回显!)

第2步 准备好你的WEB应用,这里使用了tomcat,可以在tomcat的server.xml配置文件中进行配置:

Xml代码
<Host name="localhost" debug="0" appBase="/www/doc" unpackWARs="true" autoDeploy="true"> 
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="www." suffix=".txt" timestamp="true"/> 
</Host> 

<Host name="localhost" debug="0" appBase="/www/doc" unpackWARs="true" autoDeploy="true">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="www." suffix=".txt" timestamp="true"/>
</Host>

其中的appBase配置自己WEB应用的位置,name="localhost",表示根目录,所有访问本主机的将自动转到appBase配置的应用上。假设您的域名主机地址为 202.109.xx.xx,那么直接在浏览器中输入http://202.109.xx.xx 就会默认打开您在上面配置的那个web应用,这个在你的主机上有多个WEB应用的时候要小心。您在增加其他独立的WEB应用(假设还有个WEB应用是 www.xxx.com)时需要像下面这样的配置:
Xml代码
<Host name="www.xxx.com" debug="0" appBase="/www/doc/xxx" unpackWARs="true" autoDeploy="true"> 
        <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="www.xxx.com." suffix=".txt" timestamp="true"/> 
</Host> 

<Host name="www.xxx.com" debug="0" appBase="/www/doc/xxx" unpackWARs="true" autoDeploy="true">
        <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="www.xxx.com." suffix=".txt" timestamp="true"/>
</Host>


这个独立的www.xxx.com则必须使用域名来访问,不能使用网站ip地址来访问。



第3步 为了更好的展现动态2级域名效果,使用一个frame作为WEB应用的index.html,这个index.html将作为你的WEB应用的首页面。(备注:这个index.html不是必须的,只是为了让浏览器的地址栏显的更加好看而已)

index.html

Html代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>-</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<head> 
<frameset framespacing="0" border="0" rows="0,*" frameborder="0"> 
  <frame name="" noresize scrolling="no" target="_self" src="" frameborder="0" marginheight="0" marginwidth="0"> 
  <frame name="" scrolling="auto" target="_self" src="index.jsp" frameborder="0" marginheight="0" marginwidth="0"> 
  <noframes> 
    <body> 
    <p>您的浏览器版本太低,需要升级后才能使用本系统!</p> 
</body> 
  </noframes> 
</frameset> 
</html> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>-</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<frameset framespacing="0" border="0" rows="0,*" frameborder="0">
  <frame name="" noresize scrolling="no" target="_self" src="" frameborder="0" marginheight="0" marginwidth="0">
  <frame name="" scrolling="auto" target="_self" src="index.jsp" frameborder="0" marginheight="0" marginwidth="0">
  <noframes>
    <body>
    <p>您的浏览器版本太低,需要升级后才能使用本系统!</p>
</body>
  </noframes>
</frameset>
</html>

第4步 实现动态的2级域名。

假设用户在网站(www.iteye.com)上注册一个用户后,用户名比如为 test,那么只要在浏览器中输入 test.iteye.com后,就会进行如下的处理。

输入 test.iteye.com , 首先会解析 test.iteye.com 这个2级域名的ip地址,这样就像输入 http://202.109.xx.xxx/ 一样的效果 (假设 iteye.com的ip为202.109.xx.xxx);然后就会去访问这个域名对应WEB应用的首页面,也就是上面配置的index.html,然后会调用下面的index.jsp

这个jsp才是真正负责进行动态2级域名解析并处理的 index.jsp

Html代码
<%@ page contentType="text/html;charset=UTF-8"%> 
<%  
    String host = request.getHeader("Host").trim();//获得来访者的域名信息,这里如果是2级域名,就会得到例如 test.iteye.com, test就是注册用户名  
    String[] hosthosts = host.split("[.]");  
    if(hosts.length==3){//只处理长度为3的信息  
        if("javaeye".equals(hosts[1])&&"com".equals(hosts[2])){//判断是否是iteye.com的2级域名  
            String name = hosts[0].trim();  
            if(!"www".equals(name)){//www是域名本身用的,不能用于表示2级域名,所以在用户注册的时候像www,ftp,mail,smtp,pop等关键词不要被用户注册到。  
                //在这个位置还需要用个方法来校验下name是否合法,比如name必须是网站的注册用户,将name与网站的用户表数据进行校验  
                //校验通过后,转到对应的处理页面               response.sendRedirect("self.jsp?name="+name);//2级域名转向到指定的一个处理文件,如这里是self.jsp  
                return;  
            }  
        }  
    }  
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>--</title> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
</head> 
<body bgcolor="#ffffff" topmargin="80px" leftmargin="20px" rightmargin="20px"> 
<!--网站首页面内容--> 
</body> 
</html> 



转载 http://stephen830.iteye.com/blog/277522
分享到:
评论

相关推荐

    dns+nginx+tomcat实现https

    Tomcat是一款开源的Servlet容器,通常用于部署Java Web应用程序。在本案例中,Tomcat作为后端应用服务器,接收来自Nginx的请求并处理业务逻辑。 ##### Tomcat环境配置 在提供的部分Tomcat配置中,我们看到了`/etc/...

    tomcat8.0.36linux版zip

    Tomcat是一个实现了Java Servlet和JavaServer Pages(JSP)规范的开源服务器,允许开发者用Java语言来编写动态网页和Web应用程序。Tomcat是轻量级的,相对于其他完整的应用服务器(如JBoss、WebLogic),它的安装、...

    tomcat7.0.rar

    作为轻量级应用服务器,Tomcat在处理动态Web内容方面表现优秀,尤其对于小型到中型的项目,它简洁而高效的特性使其成为开发者首选。 一、Tomcat7.0的基础架构 Tomcat7.0基于Servlet 3.0和JSP 2.2规范,这使得它在...

    apache-tomcat-7.0.79.rar

    在Java Web开发中,Tomcat扮演着服务器的角色,支持JSP、Servlet等技术,是许多开发者和企业的首选轻量级应用服务器。 Apache Tomcat 7.0.79是7.x系列的一个稳定版本,它修复了前一版本中的多个安全漏洞和性能问题...

    《深入剖析 Tomcat》PDF版本下载.txt

    Tomcat因其轻量级、易于配置和使用等特点,在Java Web开发领域内广受欢迎。此外,Tomcat还支持HTTP、HTTPS等多种协议,并能够作为独立的应用服务器运行,也可以与Apache等其他Web服务器配合使用。 ### 二、Tomcat...

    tomcat架构

    Tomcat实现了Java Servlet和JavaServer Pages (JSP) 规范,提供了Java的服务器端支持,使Java代码能够在服务器上运行,因此成为了许多Java Web应用的运行平台。 Tomcat架构主要由以下几个核心组件构成: 1. 连接器...

    详解实现Nginx+Tomcat实现单IP、多域名、多站点的访问

    具体到本篇讲解,我们将聚焦于如何使用Nginx配合Tomcat实现这一功能,并通过实例配置来展示具体的实现方式。 首先,Nginx是一款高性能的HTTP和反向代理服务器,同时也支持IMAP/POP3/SMTP代理服务器。它在处理静态...

    Jakarta-Tomcat简明中文版用户指南

    Tomcat本身就是一个轻量级的应用服务器,但在处理静态资源方面的能力相对较弱,因此在实际应用中往往与Apache HTTP Server等Web服务器配合使用。 #### 二、Tomcat的工作模式 Tomcat可以根据不同的应用场景和需求...

    apache tomcat集成

    Apache Tomcat是一款广泛应用的开源Java Servlet容器,它实现了Java EE的Web应用服务器规范,特别是Servlet和JSP。这篇博文可能是关于如何将Apache Tomcat与其他工具或服务进行集成的教程。由于描述部分为空,并且...

    tomcat集群

    在Java Web应用服务器领域,Apache Tomcat是一个广泛使用的轻量级服务器,尤其在处理Servlet和JSP应用方面表现出色。然而,随着业务的增长,单个Tomcat实例可能无法满足高并发和高可用性的需求。这时,我们就需要...

    Tomcat_系统架构与设计模式

    Apache Tomcat作为一款流行的开源Web服务器软件,在Java Web应用领域占据了重要地位。它不仅免费,而且提供了高效稳定的运行环境。本文旨在深入探讨Tomcat的系统架构与设计模式,为读者揭示其内部机制的秘密。 ####...

    配置好的可以共用80的tomcat和nginx

    Tomcat主要负责运行Java Web应用程序,如Servlet和JSP,而Nginx则作为一个前端代理,处理静态资源请求,同时将动态请求转发到Tomcat进行处理。通过这种方式,Nginx可以减轻Tomcat的负担,提高整体性能。 共享80端口...

    6.5: Tomcat服务器 、 Tomcat应用案例 、 Varnish代理服务器 、 总结和.docx

    Tomcat服务器是部署Java Web应用的关键组件,其与JDK的配合使得开发和部署过程更为便捷。通过配置虚拟主机,可以高效地在同一台服务器上托管多个独立的Web应用程序。同时,结合Varnish这样的代理服务器,可以优化...

    Apache与Tomcat集成,资源是已经集成好的,可以参考

    6. **测试集成**:现在,你可以通过Apache的域名或IP访问网站,动态内容应由Tomcat处理。如果出现404错误,检查配置文件中的路径是否正确,或者查看Apache和Tomcat的日志文件以获取更详细的错误信息。 集成后的...

    nginx+tomcat集群所需软件

    这种组合利用了Nginx的高性能和轻量级特性以及Tomcat对Java EE应用的良好支持。 Nginx是一款开源的HTTP服务器,它以其高性能、低内存占用和强大的负载均衡能力而著名。在与Tomcat配合时,Nginx主要扮演以下角色: ...

    Tomcat生产环境配置与应用 (1)1

    在IT领域,Tomcat是一个广泛使用的Java Web应用程序服务器,它实现了Servlet和JSP规范。本篇主要介绍Tomcat的核心组件认知、`server.xml`配置详解以及自动部署脚本的编写,帮助读者理解和优化生产环境中的Tomcat配置...

    Java课程设计_校园BBS系统_附详细报告

    9. **前端技术**:前端可能使用HTML、CSS和JavaScript,配合jQuery或其他库实现交互效果。也可能使用Bootstrap等框架提升界面美观度和响应式设计。 10. **部署与运行**:项目最终需要在服务器上部署,可能涉及...

    Java利用WebSocket实现聊天系统源码

    本项目以"Java利用WebSocket实现聊天系统源码"为主题,提供了一套完整的前后端解决方案,包括Java后端服务和前端界面。 后端部分主要涉及以下知识点: 1. **WebSocket API**: WebSocket是HTML5引入的新特性,通过...

    tomcat 虚拟目录

    9. **URL重写**:通过Apache的mod_proxy或其他反向代理软件与Tomcat配合,还可以实现URL重写,进一步优化虚拟目录的使用体验。 总的来说,理解和熟练配置Tomcat的虚拟目录是每个Java Web开发者必备的技能之一,它有...

    tomcat6.0.32

    Tomcat作为一个轻量级应用服务器,它实现了Java EE的Web部分,尤其是Servlet和JSP规范。以下是关于Tomcat 6.0.32及其使用的一些关键知识点: 1. **版本信息**:Tomcat 6.0.32是在2011年发布的,虽然这个版本现在...

Global site tag (gtag.js) - Google Analytics