如何在我的Web服务器URL中隐藏.jsp扩展名

16 java jsp

我有一个JSP Web服务器,页面都以.jsp扩展名结尾.

如何在不借助非Java技巧(例如,apache重写)的情况下将其隐藏在我的Web服务器URL中?

例如: 用户只需键入http://www.sample.com/search?xxx, 而不是键入http://www.sample.com/search.jsp?xxx

kgi*_*kis 10

您可以像这样创建一个servlet映射:

<servlet-mapping>
   <servlet-name>MappingServlet</servlet-name>
   <url-pattern>path/*</url-pattern>
 </servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

必须编辑url-pattern以满足您的需要.当然,您需要创建servlet以将url映射到实际的jsp.大多数MVC框架都使用此技术.


Pet*_*ton 5

UrlRewrite是一个很好的灵活的基于Java的框架独立解决方案.

这比Servlet映射更好web.xml,因为它在您可以做的事情上太有限,并且比基于Apache的解决方案更好,因为它是您的Web应用程序的一部分,因此您不需要将Apache放在应用程序服务器之前.


Meh*_*san 5

web.xml文件中使用此servlet映射。

<servlet>   
  <servlet-name>search</servlet-name>
  <jsp-file>/search.jsp</jsp-file>
</servlet>
<servlet-mapping>
  <servlet-name>search</servlet-name>
  <url-pattern>/search</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)


Log*_*man 0

RewriteEngine On

RewriteRule ^([0-9a-zA-Z]+)$  $1.jsp
Run Code Online (Sandbox Code Playgroud)

在您的 .htaccess 中,应将所有 URL 重写为 .jsp。所以 search.jsp 只是搜索,正如您所描述的。