开发者

Forward page using Servlet Controller

servlet is like :

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); 

in 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>

now call forward using servlet controller

<a href="/page/common/Welcome.jsp">click here</a>

please suggest convenient way to call this..


I'd suggest:

<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>

for your mapping, and

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(req.getPathInfo());

    dispatcher.forward(req,resp);
}

and then create the folder common and put Welcome.jsp in it.

Question wasn't the clearest: does that do what you want?

EDIT: Also, you should probably do some path verification on req.getPathInfo() to avoid people trying to directory hop using .. characters, though for all I know the newer Java app servers catch that sort of badness automatically.


Based om what your servlet is doing:

<a href="/page/common/Welcome.jsp">click here</a>

should be

<a href="/page?pageName=common/Welcome.jsp">click here</a>

Which will look for Welcome.jsp in WEB-INF/jsp/common folder.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜