servlet(jsp)中的重定向和转发

由一个servlet(jsp)从内部转向还有一个servlet(jsp)有两种方式:转发和重定向。

转发:是由一个web组件(servlet)将未完毕的处理交给下一个web组件处理,转发的组件会共享request对象和response对象,从而实
   现数据的共享。

能够使用下面方式进行转发:request.getRequestDispatcher("新资源").forward(req,resp);

注意:

1.转发之前不能运行response.getWriter().close()或者flush(),由于一次浏览器请求仅仅能做出一次响应,运行这个,会直接响应给浏览器,也就不会做后面的转发或其它动作。

2.转发之前,假设response对象中有缓存,转发之后会清空,也就是说你在ServletA页面种有运行输出到浏览器的语句,可是你转发ServletB,你仅仅会看到servletB在浏览器中的输出。

--转发的特点:

1)转发的资源路径必须在web应用范围内

2)转发携带数据

3)地址栏地址没有变化

重定向:一个web组件的功能运行完成,须要立即运行下一个web组件,这时可使用重定向.

原理:

server向浏览器发送一个状态码302及Location.浏览器收到后,马上向Location所指向的地址发送请求.

response.sendRedirect("资源路径");

等价于以下两句话:

response.setStatus(302);

response.setHeader("Location", "/servletPro/Servlet2");

重定向特点:

1)能訪问随意资源

resp.sendRedirect("http://www.baidu.com");

2)重定向之后地址栏有变化

3)重定向不会携带数据

注意:

1)重定向之前,不能运行out.close()或out.flush();

2)重定向之前,假设response对象中有缓存,转发之后会清空.






servlet(jsp)中的重定向和转发的更多相关文章

  1. Servlet&JSP中的知识点

    先sun提出的是Servlet体系,这个体系使得使用JAVA的程序员也能开发基于B/S架构的WEB应用程序,使用Servlet类将HTTP请求和响应封装在标准JAVA类中来实现各种WEB应用方案.随着 ...

  2. 24SpringMvc中的重定向和转发-解释return "redirect:/cargo/contractproduct/tocreate.action";

    我在做JK项目时发现:我们在增加一个货物时.会先根据提交的Action()进入到一个新增页面 //跳转到新增的页面 @RequestMapping("/cargo/contractprodu ...

  3. Servlet(处理乱码,重定向与转发的区别)

    //处理请求乱码 req.setCharacterEncoding("utf-8"); //处理响应乱码 resp.setContentType("text/html;c ...

  4. web中的重定向与转发

    Redirect:重定向(客户端重定向) 是HTTP协议规定的一种机制:当client向server发送一个请求,要求获取一个资源时,在server接收到这个请求后发现请求的这个资源实际存放在另一个位 ...

  5. SpringMVC中的重定向和转发的实现

    1.请求转发和重定向的区别 请求重定向和请求转发都是web开发中资源跳转的方式. 请求转发是服务器内部的跳转 地址栏比发生变化 只有一个请求相应 可以通过request域对跳转目标的请求 请求重定向是 ...

  6. Servlet/jsp 中 获取页面所有传递参数

    Enumeration en = request.getParameterNames(); while(en.hasMoreElements()){ String el = en.nextElemen ...

  7. java/servlet/jsp 中String与int相互转换

    String ---> int //方式一:Integer(String s) //demo: Integer i = int a = i.intValue() //方式二:static int ...

  8. Servlet中的request对象、重定向和转发的差别(6)

    1.这里所说的request对象指的是HttpServletRequest对象,它代表client的请求,当client通过HTTP协议訪问server时.HTTP请求头中的全部信息都封装在这个对象中 ...

  9. JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(下)(各种乱码、验证码、重定向和转发)

    HttpServletRequest获取请求头信息  (1)获取客户机请求头 String getHeader(String name) Enumeration<String> getHe ...

随机推荐

  1. c++ stl algorithm: std::fill, std::fill_n

    std::fill 在[first, last)范围内填充值 #include <iostream> #include <vector> #include <algori ...

  2. UVA 11237 - Halloween treats(鸽笼原理)

    11237 - Halloween treats option=com_onlinejudge&Itemid=8&page=show_problem&category=516& ...

  3. 浅谈Storm流式处理框架(转)

    Hadoop的高吞吐,海量数据处理的能力使得人们可以方便地处理海量数据.但是,Hadoop的缺点也和它的优点同样鲜明——延迟大,响应缓慢,运维复杂. 有需求也就有创造,在Hadoop基本奠定了大数据霸 ...

  4. Linux进程间通信(九)---综合实验之有名管道通信实验

    实验目的 通过编写有名管道多路通信实验,进一步掌握管道的创建.读写等操作,同时复习使用select()函数实现管道的通信. 实验内容 这里采用管道函数创建有名管道(不是在控制台下输入命令mknod), ...

  5. 【leetcode】Candy(python)

    题目要求的比它的邻居比自己奖励,因此,我们有最少一个多的.所有我们可以找到所有的坑,凹坑例如,存在以下三种情况. 找到全部的凹点后,我们就能够从凹点处開始向左右两个方向依次查找递增序列.当中每一个高的 ...

  6. css实现自适应屏幕高度

    body,html{ margin:0px; height:100%; }

  7. 基于VLC的视频播放器

    原文:基于VLC的视频播放器 最近在研究视频播放的功能,之前是使用VideoView.在网上看了一下,感觉不是很好,支持的格式比较少,现在网络视频的格式各种各样,感觉用VideoView播放起来局限性 ...

  8. 染色法判断是否是二分图 hdu2444

    用染色法判断二分图是这样进行的,随便选择一个点, 1.把它染成黑色,然后将它相邻的点染成白色,然后入队列 2.出队列,与这个点相邻的点染成相反的颜色 根据二分图的特性,相同集合内的点颜色是相同的,即 ...

  9. freemarker 里 ?? 和 ? 都是什么意思

    ??是推断对象是否为空,比如:<#if object??>object对象不为空(即object存在)</#if> ?后面要加keyword,比如:<#if object ...

  10. Hdu 5073 Galaxy 精度问题

    思路: 其实求解很简单直接说解法,移动K个后 上下的角动量最小,能肯定是相连的(n-k)个,至于为什么 你自己好好想想(easy): 对于一些等质量的质点中心在 所在位置和除以点的个数 average ...