`
tristan_wang
  • 浏览: 166215 次
  • 性别: 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...

    JSP中5种跳转foward,request等等的详细区别

    JSP 中有五种跳转方式,包括 RequestDispatcher.forward()、response.sendRedirect()、jsp:forward、RequestDispatcher.include() 和 HttpServletResponse.sendRedirect()。下面我们将详细介绍这五种跳转方式的区别...

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

    String id = request.getParameter("id"); response.setContentType("text/html; charset=gb2312"); ServletContext sc = getServletContext(); RequestDispatcher rd = sc.getRequestDispatcher("/test/test2....

    很经典的登录回选。

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

    Servlet跳转方式sendReDirect

    - 调用`request.getRequestDispatcher(path).forward(request, response)`,其中`path`参数是一个相对于当前Servlet上下文的路径,用于指定要跳转的目标资源。 - 当使用`forward()`时,请求和响应对象会被传递到...

    北大青鸟U2项目完全版

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

    servlet跳转的几种情况

    * 传值可以使用三种方法:URL 参数、Session 和 request.setAttribute。 JSP 跳转 JSP 跳转是指在 JSP 页面中使用的跳转方式。JSP 跳转可以分为三种: * `response.sendRedirect()`: 与 Servlet 的 sendRedirect...

    JSP页面的五种跳转方法

    这里主要介绍五种常见的JSP页面跳转方法,包括RequestDispatcher.forward()、response.sendRedirect()、<jsp:forward page="" / >、Meta标签以及JavaScript的location对象。 1. RequestDispatcher.forward() 这种...

    JSP跳转方式总结.doc

    本文将重点讨论两种主要的JSP跳转方式:`RequestDispatcher.forward()` 和 `response.sendRedirect()`,以及JSP标签 `<jsp:forward page="">`。 1. `RequestDispatcher.forward()` `RequestDispatcher.forward()` ...

    response 对象:页面跳转.pptx

    使用 `request.getRequestDispatcher(path).forward(request, response)` 方法可以实现转发。例如: ```java RequestDispatcher dispatcher = request.getRequestDispatcher("nextPage.jsp"); dispatcher.forward...

    jsp跳转的五种方式

    与 `RequestDispatcher.forward()` 不同,`response.sendRedirect()` 是一种客户端的跳转方式。这意味着它可以在用户的浏览器端完成跳转操作,并且可以携带参数进行传递。例如,从一个页面传递参数到另一个页面。 *...

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

    - 示例代码:`request.getRequestDispatcher("/a/a.jsp").forward(request, response);` 2. 重定向(Redirect): - 使用`Response.sendRedirect()`方法实现。 - 重定向会导致浏览器发起一个新的HTTP请求,所以...

    JSP与Servlet传值技术总结

    4. 使用request.setAttribute()和request.getAttribute()方法:使用setAttribute()方法来设置request属性,然后使用getAttribute()方法来获取该属性,例如:request.setAttribute("a", 00); request.getAttribute("a...

    JSP页面跳转的五种方法

    request.setAttribute("name", "frank"); rd.forward(request, response); } ``` 注意:`forward()`方法不能转发到不同的Web应用或者外部站点。此外,如果当前页面包含`<frameset>`标签,则无法使用此方法进行...

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

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

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

    request.getRequestDispatcher("result.jsp").forward(request, response); } } ``` 2. **使用sendRedirect()示例**: ```java import java.io.IOException; import javax.servlet.ServletException; ...

    response设置的实例源码

    RequestDispatcher dispatcher = request.getRequestDispatcher("/newResource"); dispatcher.forward(request, response); ``` 六、写入响应体 `PrintWriter`或`OutputStream`可以用来写入响应体。通常,我们使用`...

    小结jsp页面跳转问题

    `<jsp:forward>`和`request.getRequestDispatcher().forward()`则适用于需要在服务器内部进行页面跳转且希望保持原有请求数据的情形。此外,还需注意在使用`<jsp:forward>`时避免缓冲区溢出等问题。

    jsp跳转详情

    本文将详细介绍JSP(Java Server Pages)中实现页面跳转的五种常见方法:`RequestDispatcher.forward()`、`response.sendRedirect()`、`jsp:forward`标签、通过修改HTTP Header `Location`来跳转以及利用`<meta>`...

Global site tag (gtag.js) - Google Analytics