servlet就像:
String rootJspPath = "/WEB-INF/jsp"
String page = request.getParameter("pageName")!=null?request.getParameter("pageName").toString();
String forwardPage = rootJspPath + "/" + page ;
request.getRequestDispatcher(forwardPage).forward(request, response);
在Web.xml中
<servlet>
<servlet-name>ForwardServlet</servlet-name>
<display-name>ForwardServlet</display-name>
<servlet-class>common.ForwardServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ForwardServlet</servlet-name>
<url-pattern>/page</url-pattern>
</servlet-mapping>
现在使用servlet控制器调用
<a href="/page/common/Welcome.jsp">click here</a>
请建议方便的方式来打电话..
答案 0 :(得分:0)
我建议:
<servlet>
<servlet-name>ForwardServlet</servlet-name>
<display-name>ForwardServlet</display-name>
<servlet-class>common.ForwardServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ForwardServlet</servlet-name>
<url-pattern>/page/*</url-pattern>
</servlet-mapping>
用于您的映射,
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(req.getPathInfo());
dispatcher.forward(req,resp);
}
然后创建文件夹common
并将Welcome.jsp
放入其中。
问题不是最清楚的:这样做你想要的吗?
编辑:此外,你应该对req.getPathInfo()进行一些路径验证,以避免人们尝试使用..
字符跳转目录,尽管我知道新的Java应用服务器会遇到这种不良情况自动。
答案 1 :(得分:0)
基于你的servlet正在做什么:
<a href="/page/common/Welcome.jsp">click here</a>
应该是
<a href="/page?pageName=common/Welcome.jsp">click here</a>
将在WEB-INF/jsp/common
文件夹中查找Welcome.jsp。