在网址中隐藏servlet名称

时间:2014-03-12 15:18:19

标签: java jsp servlets url-mapping

在网站上,我在这样的导航栏中有一些链接

<li><a href="?page=pagename">PAGE</a></li>

然后我在JSP页面中用JAVA加载链接页面,然后我通过GET提交表单,之后我的URL变为

www.sitename.com/Servlet

然后我无法通过

加载页面
?page=pagename 

因为我在URL中有Servlet名称。

如何隐藏或删除servlet名称?

2 个答案:

答案 0 :(得分:0)

web.xml

中使用servlet-mapping
<servlet-mapping>
  <servlet-name>Servlet</servlet-name>
  <url-pattern>/*</url-pattern> 
</servlet-mapping>

答案 1 :(得分:0)

如果所有这些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