zoukankan      html  css  js  c++  java
  • 重定向和转向的写法,重定向以post方式提交


    重转向保留跳转过来的Referer,路径不会变
    1
    request.getRequestDispatcher("/eventweb/index.sp?loginId=" + loginId).forward(request, response);

    重定向的 第一种方式         

    PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<script>"); out.println("window.open ('" + request.getContextPath() + "/eventweb/declare.sp?loginId=" + loginId + "','_top')"); out.println("</script>"); out.println("</html>")



    重定向的 第二种方式,跳转时以post方式提交(如果get会展示携带的参数,不安全)

    1
    RedirectWithPost redirectWithPost = new RedirectWithPost(response); 2 String redirectUrl = request.getContextPath() + "/eventweb/declare.sp"; 3 redirectWithPost.setParameter("loginId", loginId); 4 redirectWithPost.sendByPost(redirectUrl);

    /**
     * 用POST方式 重定向
     *
     * @author royFly
     */
    public class RedirectWithPost {
        Map<String, String> parameter = new HashMap<String, String>();
        HttpServletResponse response;
    
        public RedirectWithPost(HttpServletResponse response) {
            this.response = response;
        }
    
        public void setParameter(String key, String value) {
            this.parameter.put(key, value);
        }
    
        public void sendByPost(String url) throws IOException {
            this.response.setContentType("text/html");
            PrintWriter out = this.response.getWriter();
            out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");
            out.println("<HTML>");
            out.println(" <HEAD>");
            out.println(" <meta http-equiv=Content-Type content="text/html; charset=utf-8">");
            out.println(" <TITLE>loading</TITLE>");
            out.println(" <meta http-equiv="Content-Type" content="text/html charset=GBK">
    ");
            out.println(" </HEAD>");
            out.println(" <BODY>");
            out.println("<form name="submitForm" action="" + url + "" method="post">");
            Iterator<String> it = this.parameter.keySet().iterator();
            while (it.hasNext()) {
                String key = it.next();
                out.println("<input type="hidden" name="" + key + "" value="" + this.parameter.get(key) + ""/>");
            }
            out.println("</from>");
            out.println("<script>window.document.submitForm.submit();</script> ");
            out.println(" </BODY>");
            out.println("</HTML>");
            out.flush();
            out.close();
        }
    }

    重定向的 第三种方式

    sendRedirect(request, response, url, true);
  • 相关阅读:
    STM32寄存器的简介、地址查找,与直接操作寄存器
    SPI初始化寄存器配置
    docker 命令
    SpringBoot接口格式和规范
    算法
    RabbitMQ
    UML概念
    activeMQ和JMS
    设计模式七大原则
    redis缓存
  • 原文地址:https://www.cnblogs.com/MSNS-MTT/p/11057819.html
Copyright © 2011-2022 走看看