zoukankan      html  css  js  c++  java
  • Servlet 04: 什么是重定向

    以RegisterServlet.java为例:

      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        int age = Integer.parseInt(request.getParameter("age"));
        String gender = request.getParameter("gender");

        gender = new String(gender.getBytes("iso-8859-1"), "utf-8");

        boolean isSuccess = DBUtil.addUser(username, password, age, gender);
        if(isSuccess){
          request.setAttribute("message","你注册成功了,请登录!");

          // 请求转发 (至login.jsp)
          // request.getRequestDispatcher("login.jsp").forward(request,response);

          // 重定向 (也可以跳转至login.jsp页面)

          response.sendRedirect("login.jsp");
        }else{
          request.setAttribute("message","很遗憾, 由于用户名重复, 注册失败了, 请你重新注册!");
          request.getRequestDispatcher("register.jsp").forward(request,response);
        }
    }

    效果:

     

    重定向和转发的区别:

    <1>  首先, 界面上没有提示信息 (注册成功,请登录!)

    <2>  其次, URL发生了变化 (login.jsp vs. register_do)

    图解

     在重定向中, 不能通过request对象来传递数据。

    类比

      类似于打10086, 请求转发类似于转接服务

      而重定向相当于打了10086后, 又打了12315

  • 相关阅读:
    metasploit--multi/samba/usermap_script
    msfcli 不能使用,在新版metasploit不再有效,推荐使用msfconsole
    test.fire渗透测试
    metasploit服务扫描与查点
    Synchronized底层实现
    正在使用的IDEA插件
    JavaWeb
    设计模式
    MySQL
    计算机网络
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/13498554.html
Copyright © 2011-2022 走看看