我使用.htaccess文件进行 url 重写。要启用 .htaccess 文件,我将urlrewritefilter-4.0.3.jar文件放在 WEB-INF\lib\ 和 web.xml 中,我添加了以下代码。
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
默认为假。使用 mod_rewrite 风格的配置文件(如果这是 true 且未指定 confPath 则 confPath 将设置为 /WEB-INF/.htaccess)
<init-param>
<param-name>modRewriteConf</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>`
我的 .htacces 文件代码是
RewriteRule ^/()$ index.jsp [NC,L]
RewriteRule ^/login/?$ login.jsp [NC,L] #Handle requests for "login"
RewriteRule ^/logout/?$ login.jsp [NC,L] #Handle requests for "login"
RewriteRule ^/contact_us/?$ contact.jsp [NC,L] #Handle requests for "contactus"
RewriteRule ^([/A-Za-z0-9_]+)$ user.jsp [NC,L]
RewriteRule ^([/A-Za-z0-9_]+)/$ user.jsp [NC,L]
我有一个 user.jsp 文件。我使用正则表达式进行 url 映射,这样无论我在 url 中输入什么,它都会打开 user.jsp 文件。我想访问在 user.jsp 文件中输入的实际 url。假设我输入http://localhost:8080/project/abhiramgiri
. 我用了
<%
String getURL=request.getRequestURI();
out.print(getURL);
%>
它显示了http://localhost:8080/project/user.jsp
我实际需要的文件路径http://localhost:8080/project/abhiramgiri
。它不显示实际键入的 url。它检索原始路径。请帮我解决这个问题。