Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java My response.sendRedirect不是';行不通_Java_Filter_Smartgwt_Forwarding - Fatal编程技术网

Java My response.sendRedirect不是';行不通

Java My response.sendRedirect不是';行不通,java,filter,smartgwt,forwarding,Java,Filter,Smartgwt,Forwarding,我有一个SmartGWT应用程序,其中有一个过滤器,我试图在其中找出(登录时)是否应该转发请求(例如,桌面到手机)。代码执行,浏览器发出get请求,但没有得到响应,也没有重定向。我试过了,但效果不太好,所以一定是别的原因 public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws ServletException, IOException { HttpSe

我有一个SmartGWT应用程序,其中有一个过滤器,我试图在其中找出(登录时)是否应该转发请求(例如,桌面到手机)。代码执行,浏览器发出get请求,但没有得到响应,也没有重定向。我试过了,但效果不太好,所以一定是别的原因

public void doFilter(ServletRequest req, ServletResponse res,
        FilterChain chain) throws ServletException, IOException {

    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;
    HttpSession session = request.getSession();

    WURFLHolder wurfl = (WURFLHolder) getFilterConfig().getServletContext().getAttribute(WURFLHolder.class.getName());

    WURFLManager manager = wurfl.getWURFLManager();

    Device device = manager.getDeviceForRequest(request);

    boolean webBrowser = isWebBrowser(device);

    String path = ((HttpServletRequest) request).getRequestURI();

    boolean isBrowserOnMobile = true; // webBrowser && path.contains(MOBILE_REQ_PATH);

    boolean isMobileOnDesktop = !webBrowser && path.contains(DESKTOP_REQ_PATH);

    if (isBrowserOnMobile || isMobileOnDesktop) {
        if (isBrowserOnMobile) {
            path = "http://www.google.com";
        } else {
            path = "/PregledPredmeta/MobileAppEntryPoint.html";
        }
        response.encodeRedirectURL(path);
        response.sendRedirect(path);
        return;

…在使用
response.sendRedirect()之前,您是否向HTTP响应发送了任何内容?要使用HTTP重定向头,您不能向浏览器发送任何响应。即使是空格或换行符/新行也可以停止重定向


如果已检查所有代码并确保未向浏览器发送任何内容,则可以使用JavaScript重定向
location.href='yoururl'。这不是一个很酷的解决方案,但它很有效。

在调用此方法之前是否打印一些内容?如果没有,你会出错吗?你是对的,我确实检查了过滤代码,但没有意识到这不是第一个被调用的东西。