Servlet-转发和重定向的区别】的更多相关文章

附上视频教学的一张图: 区别: 1.转发产生一次请求,一次响应: 重定向产生2次请求 两次响应 2.转发客户端不可见的: 重定向客户端是可以察觉的. 3.转发时候url不变: 重定向URL会改变 案例:A与B两个Servlet的转发与重定向 转发:getRequestDispatcher(); ServletContext context= getServletContext(); RequestDispatcher dis = context.getRequestDispathcer("/b&…
Servlet中页面的跳转有两种方式:转发和重定向. 1.转发和重定向的区别 ①转发是服务器行为,重定向是客户端行为. ②转发是浏览器发生了一次请求,重定向至少是两次请求. ③转发地址栏中的url不会发生改变,重定向地址栏中的url会发生改变. ④转发因为是一次请求,两次跳转之间传输信息不会丢失,而重定向两次跳转会丢失传输信息. ⑤转发只能将请求跳转到同一个web应用中的页面,重定向可以指向任何页面,包括同一个web应用中的页面,同一个站点中的页面,其他站点的页面. 2.传递给HttpServl…
servlet转发与重定向   HttpServletRequest: 表示浏览器向服务器发送的请求报文,由Tomcat创建然后作为参数传递给我们doget,dopost方法. 功能:getParameter()获取请求参数 getContextPath()获取当前项目名 request..getRequestDispatcher("1.html").forward(request, response);可以实现转发功能 HttpServletResponse: 表示服务器响应给浏览器…
SERVLET API中转发与重定向的区别? 1.转发(forward方法) 转发仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址. 转发是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址. 2.重定向(sendRedirect方法) 重定向是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接.这样,从浏览器的地址栏中可以看到跳转后的链…
转发(服务器端跳转):  一次请求 <jsp:forward> request.getRequestDispatcher("new.jsp").forward(request, response); 重定向(客户端跳转):  两次请求 response.sendRedirect("new.jsp"); <a href="new.jsp">new.jsp</a> 转发重定向: 1.转发是在服务器端完成,因此称为服…
    转发与重定向的区别 转发是服务器行为,重定向是客户端行为 1.转发在服务器端完成的:重定向是在客户端完成的2.转发的速度快:重定向速度慢3.转发的是同一次请求:重定向是两次不同请求4.转发不会执行转发后的代码:重定向会执行重定向之后的代码5.转发地址栏没有变化:重定向地址栏有变化6.转发必须是在同一台服务器下完成:重定向可以在不同的服务器下完成 在servlet中调用转发.重定向的语句如下: request.getRequestDispatcher("new.jsp").for…
jsp 内置对象  转发与重定向的比较 重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程. 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求.因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变.重定向的速度比转发慢,因为浏览器还得发出一个新的请求.同时,由于重定向方式产生了一个新的请求,所以经过一次重 定向后,request内的…
三大作用域以及转发和重定向 学习总结 1. 转发和重定向 转发 重定向 转发和重定向的区别: 什么时候用转发什么时候用重定向 三大作用域 作用域类型 作用域方法 如何选择作用域 总结 学习总结 1. 转发和重定向 转发 转发原理图 转发方法 1)request对象与转发相关方法 request.getRequestDispatcher("/要跳转的地址").forward(request,response); 重定向 重定向原理图 重定向方法 1)response对象与重定向相关方法…
前言 前面其实已经把Servlet中所有的内容都介绍完了,这篇讲补充一点乱码和重定向与转发之间的区别! 一.request请求参数出现乱码问题 1.1.get请求 1)乱码示例 get请求的参数是在url后面提交过来的,也就是在请求行中. 结果: Servlet_demo_0040是一个普通的Servlet,浏览器访问它时,使用get请求方式提交了一个username=小明的参数值,在doGet中获取该参数值,并且打印到控制台,发现出现乱码 2)出现乱码原因 前期知识: 码表:是一种规则,用来让…
一.调用方式 我们知道,在servlet中调用转发.重定向的语句如下:request.getRequestDispatcher("new.jsp").forward(request, response);//转发到new.jspresponse.sendRedirect("new.jsp");//重定向到new.jsp 在jsp页面中你也会看到通过下面的方式实现转发:<jsp:forward page="apage.jsp" /> 当…
导读:类似于response.sendRedirect(request.getContextPath()+"/servlet/item/SearchItemServlet");和request.getRequestDispatcher("/basedata/item_add.jsp").forward(request, response);的用法,在drp的项目中,或者说在之前的项目中,用的都很多.一个是重定向,一个是转发,那么它们之间到底有什么区别呢?现在根据项目…
HttpServletRequest: 表示浏览器向服务器发送的请求报文,由Tomcat创建然后作为参数传递给我们doget,dopost方法. 功能:getParameter()获取请求参数 getContextPath()获取当前项目名 request..getRequestDispatcher("1.html").forward(request, response);可以实现转发功能 HttpServletResponse: 表示服务器响应给浏览器的响应报文,由服务器创建然后作为…
1 转发 RequestDispatcher getRequestDispatcher(java.lang.String path) 1)地址栏不会改变 2)转发只能转发到当前web应用内的资源 3)可以在转发过程中,可以把数据保存到request域对象中 2 重定向 1)地址栏会改变,变成重定向到地址. 2)重定向可以跳转到当前web应用,或其他web应用,甚至是外部域名网站. 3)不能再重定向的过程,把数据保存到request中. 转发和重定向区别示意图,黑色线代表转发,绿色线代表重定向:…
转发是服务器行为,重定向是客户端行为 1.转发在服务器端完成的;重定向是在客户端完成的 2.转发的速度快;重定向速度慢 3.转发的是同一次请求;重定向是两次不同请求 4.转发不会执行转发后的代码;重定向会执行重定向之后的代码 5.转发地址栏没有变化;重定向地址栏有变化 6.转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成 在servlet中调用转发.重定向的语句如下: request.getRequestDispatcher("index.jsp").forward(re…
本文转载自:http://blog.csdn.net/kobejayandy/article/details/13762043 转发 转发的原理,可以通过下图展示: 浏览器的请求发送给组件 1,组件 1 经过一些处理之后,将 request 和 response 对象 “传递” 给组件 2,由组件 2 继续处理,然后输出响应(当然,也可以继续向其他组件 “传递”),这个传递的过程称之为 “转发”.整个过程只涉及一次浏览器和服务器之间的 “请求-响应” ,转发过程中的组件共享同一个请求 (requ…
 注:如需转载,请附上原文链接,如有建议或意见,欢迎批评指正! 需求说明: // index.jsp页面 1 <% 2 String basePath = request.getScheme()+":"+"//"+request.getServerName()+":"+request.getServerPort()+"/" 3 +request.getServletContext().getContextPath()+&…
Servlet跳转到另一个Servlet中: request.getRequestDispatcher().forward();代表默认的是post方法,即在被跳转的Servlet的doPost()方法中接收或写代码 response.sendRedirector()代表默认的是get方法.//因为重定向,又重新从页面发送请求到服务端…
重定向: response.sendRedirect("地址");         a. 页面地址显示最终页面         b. 不可向后传递参数         c. 跳到外部站点 转发:    request.getRequestDispatcher("地址").forward(request, response);         a. 页面地址显示请求页面         b. 可以向后传递参数         c. 不可以跳到外部站点 造成区别的原因以…
1.转发     作用:在多个页面交互过程中实现请求数据的共享.     过程:Web服务器内部将一个request请求的处理权交给另外一个资源,属于同一个访问请求和响应过程,所以request对象的信息不会丢失. 2.重定向  重定向就是通过各种方法将各种网络请求重新定个方向转到其他位置(如:网页重定向,域名重定向,路由选择的变化也是对数据报文经有路由的一种重定向.)  重定向使用的是response对象的sendRedirect()方法.  过程:Web服务器向浏览器返回的一个响应,浏览器接…
在设计Web应用程序的时候,经常需要把一个系统进行结构化设计,即按照模块进行划分,让不同的Servlet来实现不同的功能,例如可以让其中一个Servlet接收用户的请求,另外一个Servlet来处理用户的请求.为了实现这种程序的模块化,就需要保证在不同的Servlet之间可以相互跳转,而Servlet中主要有两种实现跳转的方式:forward方式与redirect方式. forward是服务器内部的重定向,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,而客户端并不知道,因此,在…
1.转发的实现其实很简单,使用request的getRequestDispatch()方法得到RequestDispatch对象,然后在括号里放转发的地址,然后用这个对象调用forward()方法,里面放request,response两个参数,将请求传递给服务器的另外一个jsp页面. 2.重定向的话就是直接从跳转到另一个jsp页面,但是不把值传过去…
转发:服务器接收到客户端的请求后,在服务器内部传递的过程.最后回复结果给客户端. 重定向:服务器接收到客户端的请求后,回复一个新url给客户端,客户端跳转新url.…
转发是在服务器端完成的:而重定向是在客户端完成的. 转发的速度快:而重定向的速度慢. 转发的是同一次请求:而重定向是两次不同的请求. 转发不会执行转发后的代码:而重定向会执行重定向后的代码. 转发地址栏没有变化:而重定向地址栏有变化. 转发必须是在同一台服务器下完成:而重定向可以在不同的服务器下完成.…
1.重定向是浏览器行为,浏览器地址有变化:转发是后台服务器完成, url地址不变化. 2.kohana获取URL 当前url是http://soyoung.kohana.com/blog/add?id=3 var_dump(Url::site('blog/add', NULL, FALSE) ):               打印string '/blog/add' (length=9) var_dump(URL::query());                              …
Sevlet 的转发与重定向都可以使得浏览器指向另一个资源文件,但它们的运行机制不相同. 一.Servlet的转发 有两种方式获得转发对象(RequestDispathcer): HttpServletRequest.getRequestDispathcer(); ServletContext.getRequestDispathcer(); request.getRequestDispathcer(“test.jsp”).forward(request,response); //转发到test.…
转发请求 当一个servlet接收到请求后,如果需要将请求转发给另外一个servlet或者jsp文件,可使用下面这种方法: package cn.ganlixin.servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import j…
jsp中与属性相关的方法: 方法: void setAttribute(String name, Object o): 设置属性 Object getAttribute(String name):获取指定的属性Enumeration getAttributeNames(): 获取所有的属性的名字组成的 Enumeration 对象 removeAttribute(String name): 移除指定的属性 2). pageContext,request, session, application…
上篇文章我们讲了servlet的基本原理,这章将讲一下剩余的部分. HttpServletRequest 接口 该接口是 ServletRequest 接口的子接口,封装了 HTTP 请求的相关信息,由 Servlet 容器创建其实现类对象并传入 service(ServletRequest req, ServletResponse res)方法中.我们请求的详细信息都可以通过 HttpServletRequest 接口的实现类对象获取.这个实现类对象一般都是容器创建的,我们不需要管理. Htt…
HttpServletRequest简介 Web服务器收到客户端的http请求,会针对每一次请求,创建一个用于代表请求的HttpServletRequest类型的request对象,并将"HTTP请求协议"的完整内容封装到该对象中.开发者获拿到request对象后就可以获取客户端发送给服务器的请求数据了. HttpServletRequest的生命周期 当客户端浏览器向服务器发送请求后,服务器会根据HTTP请求协议的格式对请求进行解析.同时,服务器会创建 HttpServletRequ…
实际发生位置不同,地址栏不同 转发是发生在服务器上的 转发是由服务器进行跳转的,细心的朋友会发现,在转发的时候,浏览器的地址栏是没有发生变化的,在我访问Servlet111的时候,即使跳转到了Servlet222的页面,浏览器的地址还是Servlet111的.也就是说浏览器是不知道该跳转的动作,转发是对浏览器透明的.通过上面的转发时序图我们也可以发现,实现转发只是一次http请求,一次转发中request和response对象都是同一个.这也解释了,为什么可以使用request作为域对象进行Se…