luqinghui 2008-12-31 16:03
浏览 429
已采纳

请教:Filter 中进行sendRedirect页面跳转 URL方式传递参数 怎么取不到啊! 似

  

    
    public void doFilter(ServletRequest request, ServletResponse response,
                    FilterChain filterChain) throws IOException,
                    ServletException
    {
        HttpServletRequest httpRequest = (HttpServletRequest)request;
        HttpServletResponse httpResponse = (HttpServletResponse)response;
        String uri = httpRequest.getRequestURI();      
        HttpSession session = ((HttpServletRequest)httpRequest).getSession();
        EmployeeData user = (EmployeeData)session.getAttribute("user");
        
        if(user == null)
        {
            session.setAttribute("key") = "value";
            ((HttpServletResponse)response).sendRedirect("/login.jsp?key=value");
        }
                          
        filterChain.doFilter(request, response);
    }

login.jsp :

 

 <%    
    String Parametermessger = (String)request.getParameter("key");
    System.out.println("Parameter: "+Parametermessger);
    
    String Sessionmessger = (String)request.getSession().getAttribute("key");
    System.out.println("Session: "+Sessionmessger);     
 %>

   结果:

           NULL

           NULL

   

   ????????????????????????????????何解

 

 

 


问题补充:
这个地方笔误

session.setAttribute("key") = "value"; 

纠正为

session.setAttribute("key","value"); 




问题补充:
这个问题也许我没能描述的很明白,很抱歉!应用是这样的:

登陆Frame框架请求多个页面,导致doFilter过程执行多次,也就是执行了多次的sendRedirect("/login.jsp?key=value")过程,从login.jsp中打印信息来看,URL的参数前几次打印出参数是value,对的,但在最后一次变成了NULL,为什么??? 地址显示为:.../login.jsp,为什么啊???? 是否与Filter有关???



sendRedirect是重定向,作用域已经发生了改变,

re:但URL参数应该是在的吧???



RequestDispatcher rd = request.getRequestDispatcher();

re:这个我当时试过,并不能将页面从系统框架页面返回到login.jsp页面,不能满足业务需求







  • 写回答

6条回答 默认 最新

  • 不良校长 2008-12-31 18:20
    关注
    1. sendRedirect belong to http status 301/302.
    2. 301/302 已经跃出了 request scope.
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 android报错 brut.common.BrutException: could not exec (exit code = 1)
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥15 复杂网络,变滞后传递熵,FDA
  • ¥20 csv格式数据集预处理及模型选择
  • ¥15 部分网页页面无法显示!