gpt4 book ai didi

java - 是否可以从 Servlet 重定向到同一个 JSP 页面?

转载 作者:行者123 更新时间:2023-12-02 06:13:58 27 4
gpt4 key购买 nike

名为 Test.jsp 的 JSP 页面映射到以下 Servlet。

@WebServlet(name = "TestServlet", urlPatterns = {"/TestServlet"})
public final class TestServlet extends HttpServlet
{
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
//request.getRequestDispatcher("/WEB-INF/admin_side/Test.jsp").forward(request, response);
response.sendRedirect("TestServlet");
}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}

@Override
public String getServletInfo() {
return "Short description";
}
}

此 Servlet 映射到 JSP 页面 Test.jsp。当在地址栏中输入像 http://localhost:8080/Assignment/TestServlet 这样的 URL 时,就会调用 doGet() 方法。

请求可以转发到注释掉的给定 URL。是否可以重定向到同一个 JSP 页面 Test.jsp

如果有人尝试这样做,Google Chrome 会提示,

This webpage has a redirect loop

但是,它可以重定向到 WEB-INF/admin_side 下的其他页面。

最佳答案

POST-REDIRECT-GET 模式的工作原理如下:客户端发送 POST 请求,您的服务器处理该请求并以重定向进行响应,即。带有 302 状态代码和相应 URI 的 Location header 的响应。客户端向该 URI 发出 GET 请求。

当前,您的服务器正在对 GET 和 POSTS 请求进行重定向。更糟糕的是,您的 GET 重定向到它正在处理的同一 URI,从而创建了您所看到的重定向循环。

更改 Servlet 实现,以便 POST 发送重定向,但 GET 实际上通过 HTML、AJAX 等提供正常的 200 响应。

关于java - 是否可以从 Servlet 重定向到同一个 JSP 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21647785/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com