在一个网站我有一个导航栏这样隐藏servlet名称的URL
<li><a href="?page=pagename">PAGE</a></li>
一些链接,我在JSP页面与JAVA加载链接的页面,然后我通过GET通过表单提交的数据,这是我的网址后成为
www.sitename.com/Servlet
那么我不能够通过
?page=pagename
,因为我在URL中的Servlet的名字来加载页面。
如何隐藏或删除servlet名称?
在一个网站我有一个导航栏这样隐藏servlet名称的URL
<li><a href="?page=pagename">PAGE</a></li>
一些链接,我在JSP页面与JAVA加载链接的页面,然后我通过GET通过表单提交的数据,这是我的网址后成为
www.sitename.com/Servlet
那么我不能够通过
?page=pagename
,因为我在URL中的Servlet的名字来加载页面。
如何隐藏或删除servlet名称?
使用servlet-mapping
在web.xml
:
<servlet-mapping>
<servlet-name>Servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
它更容易,如果所有这些JSP是在一个共同的路径。例如。 /应用/ *。
<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
。
如果你可以提供更多的代码来理解 – Arjit
@Arjit,那么这里就不会有相关的代码显示在这里。 –