Java 如何从Servlet重定向到JSP文件

Java 如何从Servlet重定向到JSP文件,java,jsp,servlets,Java,Jsp,Servlets,我是一名初学者,正在尝试理解如何从Servlet重新定向到JSP文件。我的Servlet在接收到来自当前JSP文件的回复后“生成”一个结果,我希望将该结果传递给另一个JSP文件。我知道有一行代码: request.getRequestDispatcher("/upload.jsp").forward(request, response); 但是我是否要为此创建一个单独的方法并在doGET中调用它呢?您可以这样做 protected void doGet(HttpServletReques

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

request.getRequestDispatcher("/upload.jsp").forward(request, response);
但是我是否要为此创建一个单独的方法并在doGET中调用它呢?

您可以这样做

   protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      request.getRequestDispatcher("/upload.jsp").forward(request, response);
    } 
即使分别创建了
方法
,也需要
方法
请求
响应
对象

我极力推荐官方文件:

还有你能做的

   protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      request.getRequestDispatcher("/upload.jsp").forward(request, response);
    } 
即使分别创建了
方法
,也需要
方法
请求
响应
对象

我极力推荐官方文件:


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

假设您有一个User类(stringfullname和Username以及setter和getter)和一个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";
    }
}
重定向:/user\u列表将返回更新后的user\u列表(例如,如果您正在插入数据库) 变化将得到反映)

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

看看这些教程:


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

假设您有一个User类(stringfullname和Username以及setter和getter)和一个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";
    }
}
重定向:/user\u列表将返回更新后的user\u列表(例如,如果您正在插入数据库) 变化将得到反映)

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

看看这些教程:


您可以在
doGet/doPost/doPut/etc中直接调用该方法。
将其作为doGet方法的最后一行(更具体地说,是您要重定向的地方)。基本思想是你的控制器的逻辑端,你现在想重定向,把它放在那里;似乎不需要一个没有意外代码的单行函数。这也是一个站点,之后应该返回。请先通过一些Hello World教程来掌握基本概念。您可以在我们的servlets wiki页面中找到一个健全的,您可以通过悬停放置在问题上的
[servlets]
标记找到,直到出现一个黑框,然后单击其中的信息链接。感谢您的帮助!您可以在
doGet/doPost/doPut/etc中直接调用该方法。
将其作为doGet方法的最后一行(更具体地说,是您要重定向的地方)。基本思想是你的控制器的逻辑端,你现在想重定向,把它放在那里;似乎不需要一个没有意外代码的单行函数。这也是一个站点,之后应该返回。请先通过一些Hello World教程来掌握基本概念。您可以在我们的servlets wiki页面中找到一个健全的,您可以通过悬停放置在问题上的
[servlets]
标记找到,直到出现一个黑框,然后单击其中的信息链接。感谢您的帮助!抱歉,不知怎的,我以为我读到你在使用Spring MVC,所以我在回答中使用了它。它不是使用Spring MVC重定向,而是
forward
ing,如果你想使用Spring MVC重新重定向,你应该在你的控制器方法中返回
redirect:url
!它是重定向,url在我在上面的帖子(教程链接)中提到的xml中被缩短。它看起来是这样的:index.prefix=/WEB-INF/jsp/index.suffix=.jsp等等。“用户列表”是url的相关部分(因为它们都有共同的前缀和后缀)。对不起,不知怎的,我以为我读到你在使用Spring MVC,所以我在回答中使用了它。它不是使用Spring MVC重定向,而是
forward
ing,如果您想使用SpringMVC重新重定向,您应该在控制器方法中返回
redirect:url
!它是重定向,url在我在上面的帖子(教程链接)中提到的xml中被缩短。它看起来像这样:index.prefix=/WEB-INF/jsp/index.suffix=.jsp等等。“用户列表”是url的相关部分(因为它们都有共同的前缀和后缀)