java - 如何在 J2EE Web 应用程序中创建类似 "http://username.example.com"的域?

标签 java tomcat jakarta-ee

我是一名 Web 应用程序开发人员,只是一个初学者。 我正在设计一个小型 J2EE Web 应用程序(例如,服务名称类似于 http://www.example.com )。它使用 Apache Tomcat。 规范:当用户注册到 Web 应用程序时,他将获得一个自定义域,例如

http://username.example.com

如何在我的网络应用程序中完成此操作。我仍在开发该应用程序。我还没有托管它。

最佳答案

您需要为 Apache 配置中的每个子域创建一个虚拟主机,例如:

<VirtualHost *:80>
ServerAdmin webmaster@subdomain1.example.com
DocumentRoot /www/subdomain1.example.com
ServerName subdomain1.example.com
ErrorLog logs/subdomain1.example.com-host.example.com-error_log
CustomLog logs/subdomain1.example.com-access_log common
</VirtualHost>

不过有一个问题。如果您的解决方案需要创建文件夹、添加虚拟主机和重新启动 apache,这对我来说不太好。我将如何处理这个问题:

  1. 为“*.example.com”创建一个通配符虚拟主机,以便所有对子域的请求都转到该虚拟主机。
  2. 为其设置重写规则,将所有请求重定向到一个页面,比如 index.jsp
  3. 编写一个 JSP 页面,获取用户访问的主机名,通过它在存储中搜索重定向 URL,即 mysql 数据库,然后重定向到它。此脚本将是通配符主机上的 index.jsp 脚本。

如果您使用这种方式,您只需要设置一次上述内容,然后将子域添加到存储中,这似乎是比创建子文件夹和修改 Apache 配置更灵活的解决方案。

关于java - 如何在 J2EE Web 应用程序中创建类似 "http://username.example.com"的域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2212240/

相关文章:

java - DBUnit:在目录 'MYCOL' 中找不到 <schema.table> 'MYSCHEMA .MYTABLE' 的列 'MYDB',因为名称不完全匹配

java - 这个函数实际上返回了什么?

java - 通过自定义 Tomcat Webapp Loader 访问嵌入式资源

java - 注入(inject)的 EJB 引用在 ViewScoped JSF Bean 中丢失

java - Mbean 中的某些方法在 Jconsole 中不显示?

java - 尝试编译基于 Maven 的应用程序时出错

java - 使用 save 的 Spring Boot 永远不会在 Postgresql 表中插入行

java - 如何使用 jcommander 打印帮助?

linux - 监视linux服务器套接字或文件

java - 随着项目的增加,连接数增加