首页 > 其他 > 详细

Servlet 04: 什么是重定向

时间:2020-08-14 01:59:12      阅读:60      评论:0      收藏:0      [点我收藏+]

以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

 

Servlet 04: 什么是重定向

原文:https://www.cnblogs.com/JasperZhao/p/13498554.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!