2

我是一个初学者,正在尝试了解如何从 Servlet 重定向到 JSP 文件。我的 Servlet 在接收到来自当前 JSP 文件的回复后“生成”一个结果,结果我想将它传递给不同的 JSP 文件。我知道有一行代码:

request.getRequestDispatcher("/upload.jsp").forward(request, response);

但是我是否为此创建了一个单独的方法并在 doGET 中调用它?

4

2 回答 2

4

你可以做

   protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      request.getRequestDispatcher("/upload.jsp").forward(request, response);
    } 

即使您method单独创建了一个,您也request需要responsemethod.

我强烈推荐官方文档:

http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html

画报

于 2013-04-23T16:13:28.090 回答
0

如果您使用带有注释的 3.0 版,则重定向非常简单。

假设您有一个 User 类(字符串全名和带有 setter 和 getter 的 Username)和处理数据库操作的 UserDAO 类。假设这是您的控制器:

@RequestMapping(value = "/user_list")
public String users(HttpServletResponse response, HttpServletRequest request)
{
    //some function to verify access
    boolean authorized = client.getAccess(); 
    request.setAttribute("authorized", authorized);

    if (authorized)
    {
        List<User> users = UserDAO.geUsers();

        request.setAttribute("users", users);
        return "user_list";
    }
    else
    {
        return "access_denied";
    }
}

然后您可以使用以下语法从任何位置重定向

@RequestMapping(value = "/create_user", method = RequestMethod.POST)
public String add_user(HttpServletResponse response, HttpServletRequest request)
{

    boolean authorized = client.getAccess();
    if (authorized)
    {
        User user = new User();

            user.setUserName(request.getParameter("username"));
            user.setFullName(request.getParameter("fullname"));

        if (UserDAO.saveUser(user))
        {
            return "redirect:/user_list";
        }
        else
        {
            return "error";
        }
    }
    else
    {
        return "access_denied";
    }
}

redirect:/user_list 将返回更新的 user_list(例如,如果您插入到 db,您的更改将被反映)。

顺便说一句:如果您在 xml 中添加几行,则可以在控制器中删除 .jsp 和路径:

http://www.mkyong.com/spring-mvc/spring-3-mvc-and-xml-example/

看看这些教程:

http://www.javatpoint.com/spring-3-mvc-tutorial

http://www.javatpoint.com/servlet-tutorial

于 2013-04-23T16:37:44.420 回答