Java 如何从Servlet重定向到JSP文件
我是一名初学者,正在尝试理解如何从Servlet重新定向到JSP文件。我的Servlet在接收到来自当前JSP文件的回复后“生成”一个结果,我希望将该结果传递给另一个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
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的相关部分(因为它们都有共同的前缀和后缀)