- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在为我的应用程序使用 spring 安全登录机制并测试了所有内容。一切正常。我有以下用例
这是用于将用户重定向到其原始位置的 Java 代码
final SavedRequest savedRequest = this.requestCache.getRequest(request, response);
targetUrl = savedRequest.getRedirectUrl();
getRedirectStrategy().sendRedirect(request, response, targetUrl);
这里使用的 RedirectionStrategy 是 DefaultRedirectStrategy ,一切正常。应用程序现在部署在预生产服务器上,现在这似乎不起作用,我收到 404 错误。
当客户被重定向到主页时,targetUrl
显示为“/”,我有一个以此映射命名的 Spring Controller
@RequestMapping("/")
public class HomePageController{ // home page code }
我的应用程序当前的 Pre-Prod urs 是 prepd-www.mysite.com
所以当 sendredirect 开始行动时,网页 URL 正在更改为 prepd-www.mysite.com/prepd-www.mysite.com
我不确定是什么导致了这个问题。是因为代理服务器设置?谁能告诉我这个问题的可能根本原因?
我已经在所有本地机器上试过了,在我们的 QA 上也试过了,但一切都运行良好。
发生这种情况的环境的当前设置是
最佳答案
这只是一个大胆的猜测,因为您无法提供反向代理配置,也无法提供预生产和开发中使用的确切 URL。
你说你正在使用来自 Spring security 的 DefaultRedirectStrategy
。此策略有一个选项 (contextRelative),将 ServletContext 路径添加到 URL。如果在您的开发系统中您正在使用根上下文,也就是说,如果您正在访问主页(例如):http://localhost:8080/
serlet 上下文为空。
但是如果现在在 preprod 中,servlet 上下文不再是 root 而是说 /myApp
一旦被 apache 反向代理翻译,当你重定向时你会得到一个 URL /myApp/myApp
可以转换回您提供的内容。
您可以尝试在 DefaultRedirectStrategy
中控制是否将 contextRelative
设置为 true
如果是,则可以将 if 设置为 false 并控制如果您重定向到绝对或相对 URL。
关于java - 404 与 response.sendRedirect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27057399/
考虑以下层次结构: 当我像这样发送重定向时: response.sendRedirect("error404.jsp"); // no path here !!! 我到达页面 error
我正在创建一个网络界面,用户可以在公式中输入一些内容:但是当我按下“确定”按钮时,我收到以下错误代码: java.lang.IllegalStateException: Cannot call sen
我有这个 Register.jsp 页面,在页面加载时,我想检查用户是否已经登录。所以我有这段代码, 它在用户登录时起作用(如果 usertype 等于 student 则重定向到 studenth
我很好奇 sendRedirect() 在重定向后如何工作。 MaintenanceController.java @RequestMapping(produces = "text/html") pu
我有 2 个 Controller 参与一个相当简单的流程。其中一个进行一些处理并向另一个进行 POSTS,然后重定向到呈现的页面。重定向失败,但没有错误。为了简化我的用例并确定问题,我将其分解为这
这个问题在这里已经有了答案: java.lang.IllegalStateException: Cannot (forward | sendRedirect | create session) af
我的 JSP 的位置是 src/webcontent/WEB-INF/jsp/sessionTimeout.jsp。 在我从过滤器执行如下 sendRedirect 后,找不到它。我已经尝试过这些组合
我无法解释 sendRedirect 函数的这个奇怪问题。我有一个 header page 作为 Header.jsp 作为: Online Exam Portal body{
我在这个论坛上寻找解决方案,但没有找到适合我的问题的解决方案。 我有一个非常简单的代码 一个jsp页面 和一个servlet @WebServlet("/servletName") publ
方法 response.sendRedirect() 在我的程序中不起作用。 代码通过并成功打印out.println("wrong user"); ,但重定向到谷歌分页不起作用。 String id
我有一个应用程序,我必须从登录页面重定向到另一个页面,我在登录页面中输入的用户名和密码将转到另一个 servlet。如果我发现登录值匹配,那么从 servlet将重定向到另一个页面,但是这不起作用..
我创建了两组 servlet: View 和 Controller /处理程序 View :执行简单的读取并将数据转发到 JSP Controller :执行数据库更新或插入并向 JSP 或 View
我只想从 JSP 重定向到另一个页面... 我可以检查 google.com 是否已启动,然后重定向(或写一条消息)... 类似的东西: 或者 它只是一个 JSP 页面,我没有任何可用的库(比如
只是一个简短的问题 - sendRedirect 使用什么方法(例如 GET、POST 等)?它是否从请求中继承它?而且,如果是这样,是否可以将其更改为另一个?谢谢! 最佳答案 sendRedirec
我正在编写一个客户端服务器程序。我正在从 Android 手机发送一个数组列表,并且我也能够接收该列表。之后,我希望 servlet 使用 response.sendRedirect() 重定向到 d
我在 if 语句中有一个 response.sendRedirect(),链接到 string.format 生成的链接: String redirect = String.format("booki
我正在使用带有 JSF2 框架的 Glassfish 4 服务器。 我的问题 当调用response.sendRedirect方法时,我遇到了IllegalStateException。 我不知道为什
只是一个简短的问题 - sendRedirect 使用什么方法(例如 GET、POST 等)?它是否从请求中继承它?而且,如果是这样,是否可以将其更改为另一个?谢谢! 最佳答案 sendRedirec
我正在尝试从我的 servlet 重定向到 jsp 页面。当我将页面直接放在 WebContent 文件夹中时,重定向起作用,但我需要将其放在子文件夹中,即; WebContent/Web-INF/v
在 servlet 中,我希望客户端浏览器重定向到新的 URL,response 对象已通过 lib 将带有 Location 的 header 设置为新的 url,但是我无法在代码中获取重定向网址(
我是一名优秀的程序员,十分优秀!