在使用Java Servlets时,我有一个关于缩短URL地址的问题。我需要缩短地址,例如 www.IPaddress.com:8181/JSP/Index.jsp 只是 www.IPaddress.com 没有端口号(8181)和.jsp扩展名。甚至可以做这样的事情吗?我在Eclipse IDE中开发了这个Servlet应用程序,我正在使用Apache Tomcat 8.
答案 0 :(得分:1)
通常这种映射可以通过在某些Web服务器(如apache)中创建虚拟主机来实现,并根据需要将其映射为重定向不同的主机。
仅使用tomcat我尝试了以下步骤并达到了您的要求。
修改tomcat的server.xml以删除主机的上下文路径,如下所示
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="PATH_OF_YOUR_TOMCAT/webapps/YOU_APPLICATION_NAME"/>
您必须使用端口80运行tomcat以从URL中删除端口。因此,您可以将server.xml中的现有端口更改为80,或者在tomcat的server.xml中使用端口80添加一个连接器。即,在这种情况下,您的tomcat将同时监听8181和80.确保使用tomcat重新启动tomcat admin as port 80是一个特权端口。
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8181" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
完成上述2个步骤之后您应该可以使用以下方式访问您的应用程序 http://localhost/index.jsp
现在您可以使用UrlRewriteFilter在请求和响应中隐藏JSP扩展,或者可以使用如下所示的servlet映射
<servlet>
<servlet-name>ServletName</servlet-name>
<jsp-file>some.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>ServletName</servlet-name>
<url-pattern>/somelink</url-pattern>
</servlet-mapping>
您还可以将index.jsp作为欢迎文件列表放在web.xml中,如下所示
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
现在您应该可以使用以下方式访问您的应用程序了 您的要求http://localhost