zoukankan      html  css  js  c++  java
  • Servlet服务器、客户端跳转

    服务期跳转、服务器端转发、服务器端重定向是一个意思
    使用“req.getRequestDispatcher(“跳转路径”).forward(req,resp)”实现服务器端转发

    客户端发送请求后数据传输过程:
    1、客户端发送请求至服务器;
    2、服务器将请求分配给对应的控制器(servlet)处理,并在控制器中调用业务层方法获取数据;
    3、将获取的数据保存至request内置对象;
    4、在跳转页将保存至request内置对象的数据提取并在客户端上显示;
    注:上述过程中“.html”文件无法获取保存request内置对象的数据,需要将html文件替换为动态页面“.jsp”

    总结:
    1、服务器端转发(跳转)的特征
    1.实现的方式是调用RequestDispatcher类的forward()方法;
    2.服务器端转发(跳转)并不会改变浏览器地址栏;
    3.使用服务器端转发后,将在“.jsp”页面中取得保存request内置对象的属性;
    2、使用${参数名}在“.jsp”中取得对应的值,该表达式就是EL表达式

    客户端转发简介:
    实现客户端的转发方式有很多(超链接转发、表单提交以及“JS”中使用的“Windows.location.href”),但是都基于客户端的直接实现。在servlet中实现客户端转发需要使用“sendRedirect("跳转路径")”

    注:在服务器端转发可能在服务器端执行多次,但是对于客户端来说只发送了一次请求,但是客户端的转发每次转发都是客户端的一个新请求

    总结:
    1、客户端转发会改变浏览器的地址栏信息,而不再是表单提交的路径;
    2、一次客户端转发过程至少发送两次请求(一次在提交表单时发送,一次在serlvet中调用sendRediect方法时);
    3、客户端转发之后保存在request内置对象的数据将不存在(request只能保存本次请求的数据,而跳转请求有两个所以无法保存,可以使用setSession().setattribute()方法替代)

  • 相关阅读:
    41、XAML text editing
    使用JavaScript和DOM动态创建和修改表格(转)
    ThinkPHP入门
    PHP字符串
    sicily 6773. 用指针交换两个矩阵
    sicily 6572. partial sum
    sicily 1934. 移动小球
    sicily 1323. Switch text
    sicily 6766. tmp
    sicily 1293. 3n+1数链问题
  • 原文地址:https://www.cnblogs.com/hasagi/p/10758751.html
Copyright © 2011-2022 走看看