在一个网站的导航栏中有一些链接,像这样
<li><a href="?page=pagename">PAGE</a></li>
我用JAVA在JSP页面中加载链接页面,然后我通过GET表单提交数据,之后我的URL变成了
www.sitename.com/Servlet
则无法通过
加载页面?page=pagename
,因为URL中有Servlet名称。
如何隐藏或删除servlet名称?
在您的web.xml
中使用servlet-mapping
:
<servlet-mapping>
<servlet-name>Servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
如果所有这些jsp都在公共路径中,则更容易。例如/app/* .
<servlet>
<servlet-name>app</servlet-name>
<servlet-class>com.example.FriendlyURLServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
request.getRequestDispatcher("/WEB-INF" + request.getPathInfo() + ".jsp").forward(request, response);
这里假设jsp位于/WEB-INF文件夹中,因此不能直接请求它们。这将在http://example.com/app/search上显示/WEB-INF/search.jsp
。