请求转发:

  问题:
    服务器在接收到浏览器的请求后,仅仅使用一个 Servlet进行请求处理,会造成不同的Servlet逻辑代码 冗余,Servlet的职责不明确。

  解决:
    使用请求转发。
  特点:
    一次请求
    地址栏信息不改变。

Request 对象作用域
  问题:

    使用请求转发后,不同的 Servlet 之间怎么进行数据的共享呢?或者说数据怎么从一个 servlet 流转给另外一个 Servlet 呢?
  解决:

    使用 request 对象的作用域
  使用:
    request.setAttribute(objectname,Objectvalue);
    request.getAttribute(Objectobj)
  作用:

    解决了一次请求内的不同 Servlet 的数据(请求数据+其他数据)共享问题。

  作用域:基于请求转发,一次请求中的所有 Servlet 共享。
  注意:
    使用 Request 对象进行数据流转,数据只在一次请求内有效。
  特点:
    服务器创建
    每次请求都会创建
    生命周期一次请求

重定向
  问题:
    如果当前的请求,Servlet 无法进行处理怎么办?
    如果使用请求转发,造成表单数据重复提交怎么办?
  解决:
    使用重定向
  使用:
    response.sendRedirect(“路径”).
    本地路径为:uri
    网络路径为:定向资源的 URL 信息
  特点:
    两次请求
    浏览器地址栏信息改变
    避免表单重复提交

Servlet流程总结:
* 浏览器发起请求到服务器(请求)
* 服务器接受浏览器的请求,进行解析,创建request对象存储请求数据
* 服务器调用对应的servlet进行请求处理,并将request对象作为实参传递给servlet的方法
* servlet的方法执行进行请求处理
* //设置请求编码格式
* //设置响应编码格式
* //获取请求信息
* //处理请求信息
* //创建业务层对象
* //调用业务层对象的方法
* //响应处理结果
*请求转发学习:
* 作用:实现多个servlet联动操作处理请求,这样避免代码冗余,让servlet的职责更加明确。
* 使用:
* req.getRequestDispatcher("要转发的地址").forward(req, resp);
* 地址:相对路径,直接书写servlet的别名即可。
* 特点:
* 一次请求,浏览器地址栏信息不改变。
* 注意:
* 请求转发后直接return结束即可。
*reuqet作用域:
* 解决了一次请求内的servlet的数据共享问题
*重定向:
* 解决了表单重复提交的问题,以及当前servlet无法处理的请求的问题。
* 使用:
* resp.sendRedirect(String uri);
* 示例:
* resp.sendRedirect("/login/main");
* 特点:
* 两次请求,两个request对象。
* 浏览器地址栏信息改变
* 时机:
* 如果请求中有表单数据,而数据又比较重要,不能重复提交,建议使用重定向。
* 如果请求被Servlet接收后,无法进行处理,建议使用重定向定位到可以处理的资源。
*

Servlet(五):请求转发和重定向的更多相关文章

  1. Servlet的请求转发和重定向

    在学习servlet中对于转发和重定向的理解是非常重要的,但是常常把重定向和转发给混了,今天特地花点时间来总结以下. 一.servlet的转发 1.请求原理图如下所示:  2.可以简单理解转发就好比一 ...

  2. idea创建简单web项目分析Servlet的请求转发与重定向的区别

     注:如需转载,请附上原文链接,如有建议或意见,欢迎批评指正! 需求说明: // index.jsp页面 1 <% 2 String basePath = request.getScheme() ...

  3. servlet的请求转发与重定向

    重定向: Spring的重定向 spring的请求转发:

  4. Servlet到Servlet的请求转发与重定向的区别

    Servlet跳转到另一个Servlet中: request.getRequestDispatcher().forward();代表默认的是post方法,即在被跳转的Servlet的doPost()方 ...

  5. jsp servlet 的 请求转发和重定向

    以前对于servlet和servlet/jsp之间的跳转路径问题感到很迷惑,今天亲自动手实验了一把,总结如下: servlet已经是项目根路径下面的资源了,所以servlet跳转的时候,在跳转路径上面 ...

  6. servlet中请求转发(forword)与重定向(sendredirect)的区别

    摘自:http://www.cnblogs.com/CodeGuy/archive/2012/02/13/2349970.html 通俗易懂 servlet请求转发与重定向的区别: request.s ...

  7. Servlet(10)—请求转发和请求重定向

    请求转发与请求重定向 ①区别: 本质区别:请求转发只发出一次请求,请求重定向则发出两次请求. 请求转发:地址栏是初次发出请求的地址在最终的Servlet中,request对象和中转的那个request ...

  8. servlet中请求转发(forword)与重定向(sendredirect)

    请求转发和重定向 request.setAttribute("test","hello"); request.getRequestDispacther(&quo ...

  9. servlet中请求转发(forword)和重定向(redirect)的区别

    servlet请求转发与重定向的区别: request.setAttribute("test","hello"); request.getRequestDisp ...

  10. Spring MVC 3.0 请求转发和重定向

    首先看一下如何获得request对象.session对象: 普通的Controller类,示例代码如下: @Controller @RequestMapping(value = "user& ...

随机推荐

  1. Android短信备份及插入笔记

    实现备份短信到xml文件和像短信中插入一条数据 一.实现短信将备份到xml文件中 在布局文件中定义一个按钮,定义点击事件为copyClick MainActivity.java: package co ...

  2. LOJ #2533. 「CTSC2018」暴力写挂(边分治合并)

    题意 给你两个有 \(n\) 个点的树 \(T, T'\) ,求一对点对 \((x, y)\) 使得 \[ depth(x) + depth(y) - (depth(LCA(x , y)) + dep ...

  3. NetSarang软件中nssock2.dll模块被植入恶意代码技术分析与防护方案

    原文地址:http://blog.nsfocus.net/nssock2-dll-module-malicious-code-analysis-report/ NetSarang是一家提供安全连接解决 ...

  4. IDEA或Webstorm设置Terminal终端字体大小

    File---Settings

  5. 锁(1):spin_lock & mutex_lock的区别? .

    为什么需要内核锁? 多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是可以访问所有内核数据的,因此要对共享数据进行保护,即互斥处理   有哪些内核锁机制? (1)原子操作 atomic ...

  6. mysql My SQL获取某个表的列名

    My SQL获取某个表的列名 DESC TableName SHOW COLUMNS FROM TableName SELECT COLUMN_NAME  FROM information_schem ...

  7. JVM调优命令-jhat

    jhat JVM Heap Analysis Tool命令是与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器 ...

  8. Hadoop记录-queue mysql

    #!/bin/sh ip=10.116.100.11 port=8088 export HADOOP_HOME=/app/hadoop/bin rmstate1=$($HADOOP_HOME/yarn ...

  9. 2018-2019-2 《Java程序设计》第5周学习总结

    20175319 2018-2019-2 <Java程序设计>第5周学习总结 教材学习内容总结 本周学习<Java程序设计>第六章: 接口 实现接口 接口的UML图 接口回调 ...

  10. ES6 数组遍历方法的实战用法总结(forEach,every,some,map,filter,reduce,reduceRight,indexOf,lastIndexOf)

    目录 forEach every some map filter reduce && reduceRight indexOf lastIndexOf 前言 ES6原生语法中提供了非常多 ...