如何缩短JSP中的URL地址

时间:2017-11-30 13:57:15

标签: java html jsp tomcat

在使用Java Servlets时,我有一个关于缩短URL地址的问题。我需要缩短地址,例如 www.IPaddress.com:8181/JSP/Index.jsp 只是 www.IPaddress.com 没有端口号(8181)和.jsp扩展名。甚至可以做这样的事情吗?我在Eclipse IDE中开发了这个Servlet应用程序,我正在使用Apache Tomcat 8.

1 个答案:

答案 0 :(得分:1)

通常这种映射可以通过在某些Web服务器(如apache)中创建虚拟主机来实现,并根据需要将其映射为重定向不同的主机。

仅使用tomcat我尝试了以下步骤并达到了您的要求。

  1. 修改tomcat的server.xml以删除主机的上下文路径,如下所示

    <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="PATH_OF_YOUR_TOMCAT/webapps/YOU_APPLICATION_NAME"/>

  2. 您必须使用端口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" />

  3.   

    完成上述2个步骤之后您应该可以使用以下方式访问您的应用程序   http://localhost/index.jsp

    1. 现在您可以使用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>

    2. 您还可以将index.jsp作为欢迎文件列表放在web.xml中,如下所示

      <welcome-file-list>
          <welcome-file>index.jsp</welcome-file>
       </welcome-file-list>
      
        

      现在您应该可以使用以下方式访问您的应用程序了   您的要求http://localhost