`
tristan_wang
  • 浏览: 163454 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

回顾下response.sendRedirect(url)和request.getRequestDispatcher(url).forward(request

阅读更多
http://blog.csdn.net/lihan6415151528/archive/2009/02/17/3898307.aspx

基础的东西,还是要打牢固的
response.sendRedirect(url)和request.getRequestDispatcher(url).forward(request,response)

response.sendRedirect(url) -- 重定向到指定URL 
request.getRequestDispatcher(url).forward(request,response) -- 请求转发到指定URL 


比如说有人打电话给公司前台找小王,这时候,公司的前台会有两种选择
一:通过转接的方式把电话转到小王那里(forward)
二:通过告诉对方小王的电话号码的方式让对方打给小王(sendRedirect)

涉及到电话挂断不挂断的问题
就像程序里面一样,请求是否有中断,决定参数是否能传递

response.sendRedirect(url)跳转到指定的URL地址,产生一个新的request,所以要传递参数只有在url后加参数,如:
url?id=1.
request.getRequestDispatcher(url).forward(request,response)是直接将请求转发到指定URL,所以该请求能够直接获得上一个请求的数据,也就是说采用请求转发,request对象始终存在,不会重新创建。而sendRedirect()会新建request对象,所以上一个request中的数据会丢失。
2....

   redirect 会首先发一个response给浏览器, 然后浏览器收到这个response后再发一个requeset给服务器, 然后服务器发新的response给浏览器. 这时页面收到的request是一个新从浏览器发来的.

forward 发生在服务器内部, 在浏览器完全不知情的情况下发给了浏览器另外一个页面的response. 这时页面收到的request不是从浏览器直接发来了,可能己经放了数据.
分享到:
评论

相关推荐

    数据库测试test.sql

    request.getRequestDispatcher("/admin/register.jsp").forward(request,response); return; } //2.调用业务层完成注册操作并返回结果 User user = new User(userId,realName,pwd,age, Arrays.toString...

    response_sendRedirect和request_getRequestDispatcher()_forward的区别.

    而sendRedirect方法可以让你重定向到任何URL。 表单form的action="/uu";sendRedirect("/uu");表示相对于服务器根路径。如http://localhost:8080/Test应用(则提交至http://localhost:8080/uu); Forward代码中的"/uu...

    转发和重定向的区别 forward和redirect的区别

    转发和重定向的区别 forward和redirect的区别 request.getRequestDispatcher()..forward(request,response);和 response.sendRedirect();的区别详解

    很经典的登录回选。

    if (session.getAttribute("person") == null) { if (null != request.getQueryString()){ // session.setAttribute("redirectUrl", ... request.getRequestDispatcher("fall.jsp").forward(request, response); }

    jsp跳转的五种方式

     rd.forward(request, response); }  通常在servlet中使用,不在jsp中使用。  2.response.sendRedirect()  是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它...

    北大青鸟U2项目完全版

    request.getRequestDispatcher("providerAddxiugai.jsp").forward(request, response); }else if(canshu.equals("xiugaiok")){ int gysid=Integer.parseInt(request.getParameter("gysid")); String ...

    计算机基础课程教学平台+毕业设计+源代码

    //request.getRequestDispatcher("student.jsp").forward(request, response); response.sendRedirect("student.jsp"); } else if (uc == 2) { //request.getRequestDispatcher("teacher.jsp").forward(request,...

    JSP面试容易问到的问题

    RequestDispatcher rd = request.getRequestDispatcher("userlist.jsp"); rd.forward(request,response); sendRedirect方式使用response对象的方法sendRedirect方法完成,代码如下: response.sendRedirect(...

    jsp跳转getRequestDispatcher()和sendRedirect()的区别

    1.request.getRequestDispatcher()是请求转发,前后页面共享一个request ;response.sendRedirect()是重新定向,前后页面不是一个request。 2.RequestDispatcher.forward()是在服务器端运行;HttpServletResponse....

    jsp servlet

    request.getRequestDispatcher("list").forward(request,response); //参数传递 J2EE1.4以下就是将引用直接拷贝过去 J2EE拷贝的是副本 //如果在doPost方法中写转发就会进入对方的doPost() 方法 包含转发的方法是...

    jsp基础精华详解

    request.getRequestDispatcher("index.jsp").forward(request, resposne); 外部跳转: response.sendRedirect("index.jsp"); 内部跳转是一次请求和一次响应 外部跳转是两次请求和两次响应 ServletContext:Servlet上...

    jsp和servlet中实现页面跳转的方式实例总结

    本文实例总结了jsp和servlet中实现页面跳转的方式。分享给大家供大家参考,具体如下: ... rd.forward(request, response); %> 2. response.sendRedirect 重定向 <% response.sendRedire

    上传文件_java_

    转载在Servlet中进行服务端跳转的方式:request.getRequestDispatcher("success.html").forward(request response);在Servlet中进行客户端跳转的方式: response.sendRedirect("fail.html");

    简单的servlet增,删,改,查

    request.getRequestDispatcher("/listUser.jsp") .forward(request, response); } } import="java.util.*,java.util.*,com.sshmvc.*,com.sshmvc.ljl.pojo.*" pageEncoding="utf-8"%> String path = ...

    用Ajax实现一个新的用户注册

    response_sendRedirect和request_getRequestDispatcher()_forward的区别.

    servlet2.4doc

    Encodes the specified URL for use in the sendRedirect method or, if encoding is not needed, returns the URL unchanged. encodeUrl(String) - Method in class javax.servlet....

    jsp中页面之间的跳转forward与sendRedirect的区别

    页面之间的跳转可以通过两种方式实现:forward和sendRedirect。 forward:可以在JSP页面中使用,可以在Servlet中实现。 在JSP页面中使用”目标文件”/>,例如要跳转到userlist.jsp,可以写: 代码如下: ”userlist...

    学生信息管理系统

    protected void doPost HttpServletRequest request HttpServletResponse response throws ServletException IOException { String action request getParameter "action" ; Teacher t new Teacher ; ...

    jsp内置对象的用法

    11 URL getResource(String path) 返回指定资源(文件及目录)的URL路径 12 InputStream getResourceAsStream(String path) 返回指定资源的输入流 13 RequestDispatcher getRequestDispatcher(String uripath) ...

Global site tag (gtag.js) - Google Analytics