×

jsp redirect for jsp

jsp redirect(jsp中redirect和forward的区别)

admin admin 发表于2023-04-04 07:12:17 浏览50 评论0

抢沙发发表评论

本文目录

jsp中redirect和forward的区别

1.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
3.从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
4.从效率来说
forward:高.
redirect:低.

jsp 重定向问题

重定项意思是重新进行请求,第一次请求,容器判断你的请求是什么类型的,判断是否是需要重定向~首先说非重定向,即内部跳转,语句是request.getRequestDispartcher(“index.jsp“).Forword(request,response);
这样的内部跳转是在你的容器内完成的,可以完成将请求送到另一个页面去,
而如果不需要2界面传值的时候,就是重定向了 代码是response.SendRedirect(“index.jsp“);
这样的意思是,当语句碰到你的请求后,给你一个响应,响应的内容是让再去一个响应,而这个响应所找的地方就是index.jsp了~ 特别的区别就是前者是一次请求, 而后者是2次请求,
你可以设置断点来看看具体的走向,
我来说一下什么情况下是否是重定向
1上面写的重定向的语句肯定是重定向
2,在地址栏里打网址回车 也是重定向
3超级连接也是重定向
下面的问题:我在api上面找到了这两个方法
encodeURL
public java.lang.String encodeURL(java.lang.String url)Encodes the specified URL by including the session ID in it, or, if encoding is not needed, returns the URL unchanged. The implementation of this method includes the logic to determine whether the session ID needs to be encoded in the URL. For example, if the browser supports cookies, or session tracking is turned off, URL encoding is unnecessary.
For robust session tracking, all URLs emitted by a servlet should be run through this method. Otherwise, URL rewriting cannot be used with browsers which do not support cookies.
encodeRedirectURL
public java.lang.String encodeRedirectURL(java.lang.String url)Encodes the specified URL for use in the sendRedirect method or, if encoding is not needed, returns the URL unchanged. The implementation of this method includes the logic to determine whether the session ID needs to be encoded in the URL. Because the rules for making this determination can differ from those used to decide whether to encode a normal link, this method is seperate from the encodeURL method.
All URLs sent to the HttpServletResponse.sendRedirect method should be run through this method. Otherwise, URL rewriting cannot be used with browsers which do not support cookies.
意思是后者也是有重定向的趋势,那么session的信息就会over掉了
用response.sendRedirect(response.encodeURL(url))的好处就是他能将用户的session追加到网址的末尾,也就是能够保证用户在不同的页面时的session对象是一致的.
这样做的目的是防止某些浏览器不支持或禁用了COOKIE导致session跟踪失败
我只知道这么多了~~
希望对你有用~~

JSP中forward和redirect有什么区别什么时候必须用哪个

forward是转发会将request对象转给下一个地址去,也就是说request对象是同一个对象。
redirect是重定向,就是说相当于从浏览器重新发起一次请求,request是新的。
如果一个请求需要保持多次处理才能完成,需要保持每次处理的信息就必须用forward,这样是同一个request对象,request对象里的参数和状态会一步步的传下去。如果需要抛弃上一个请求的状态(比如说reques的id)就必须redirect,它会创建新的request对象。

jsp中forward和redirect的区别是什么

区别就是forward是使用同一个requst,也就是说用forword传递后可以在页面中获取request中的变量或属性。
redirect是新建一个request用新建的request传递。
比如有三个jsp文件,第一个里面有《input name=“name“》 提交到第二个页面进行处理,若想在第三个页面中获取name的值就要用forword

JSP如何实现网页重定向

jsp实现页面的重定向,使用的是response.sendRedirect(“a.jsp“);实现页面重定向到a.jsp这个页面。
分为两种写法:
1、如果实在jsp页面中写代码的话,将response.sendRedirect(“a.jsp“);放在《%%》里面就行了,即:《%response.sendRedirect(“a.jsp“);%》
2、如果是在java文件(如servlet)中写代码的话,只需写response.sendRedirect(“a.jsp“);就行了。
接下来简单说说页面的转发(forward)与重定向(sendRedirect)的区别:
重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。

jsp与servlet中redirect和forward的区别

这样讲吧,
redirect是客户端的跳转,即浏览器端的跳转,是response调用的,可以这样理解,就是服务器告诉浏览器,你应该跳转到那个url,浏览器收到后,由浏览器发送到这个url的请求,所以浏览器地址栏会改变。
而forward是服务器端的跳转,完全由服务器端完成,是request调用的,也就是在服务器端将request转发给另一个jsp或者servlet处理并返回结果,浏览器并不知道服务器端怎么跳转的,所以这个时候浏览器地址栏不会变。

JSP中forward和redirect的区别

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。

jsp中“forward”和“redirect”的区别是什么

一、调用方式
我们知道,在servlet中调用转发、重定向的语句如下:
request.getRequestDispatcher(“new.jsp“).forward(request, response); //转发到new.jsp
response.sendRedirect(“new.jsp“); //重定向到new.jsp
在jsp页面中你也会看到通过下面的方式实现转发:
《jsp:forward page=“apage.jsp“ /》
当然也可以在jsp页面中实现重定向:
《%response.sendRedirect(“new.jsp“); %》 //重定向到new.jsp
二、本质区别
解释一
一句话,转发是服务器行为,重定向是客户端行为。为什么这样说呢,这就要看两个动作的工作流程:
转发过程:客户浏览器发送