如何捕获网址并重定向到静态页面?

时间:2012-01-21 17:39:59

标签: google-app-engine jsp

我想捕获一个特定的url模式并转发到一个静态页面。因此,如果我看到以下任何内容:

http://www.example.com/students?name=bob
http://www.example.com/students?name=mary
...

然后我想转发到静态页面,如:

http://www.example.com/studentsTemporaryPage.jsp

我可以添加到我的web.xml文件中,以将上述任何模式(更改中的参数名称可能会有所不同)重定向到我的静态页面吗?

我正在使用谷歌应用引擎(java),但认为对于任何基于servlet的服务器可能都是一样的吗?

谢谢

2 个答案:

答案 0 :(得分:1)

创建转发servlet:

public class ForwardServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String name = request.getParameter("name");
        // you can do some manupulations based on 'name' here
        String target = "/studentsTemporaryPage.jsp";
        RequestDispatcher dispatcher = getServletContext()
            .getRequestDispatcher(target);
        dispatcher.forward(request, response);
     }
}

然后将其映射到/students

<servlet>
    <servlet-name>ForwardServlet</servlet-name>
    <servlet-class>com.packagename.ForwardServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ForwardServlet</servlet-name>
    <url-pattern>/students</url-pattern>
</servlet-mapping>

答案 1 :(得分:0)

将servlet或过滤器映射到/students,并使用response.sendRedirect()(如果需要重定向)将此servlet或过滤器重定向到静态页面,或使用请求调度程序转发到JSP (如果你想要前锋)。

前进和重定向是两个非常不同的东西。决定你想要哪一个。