`

response.sendRedirect() 的session丢失问题

阅读更多

使用时response.sendRedirect(),如果是跨域跳转,则session会丢失,否则不会。

 

例如:在本地机上有项目名问web1和web2的两个项目同时运行,从web1跳转到web2当然是跨域跳转,session丢失。但如果是从地址http://localhost:8080/web1跳转到http://127.0.0.1:8080/web2也同样会丢失session。

 

在web1的servlet中执行response.sendRedirect("/web1/page2.jsp")是域内跳转,session不会丢失,但保存在request中的属性值在page2.jsp中无法取到,也就是说在page2.jsp中通过request.getAttribute()的方法无法取得值,所以只能通过把参数写到url中的方式传递参数,例如:response.sendRedirect("/web1/page2.jsp?action=select").

 

因为forward()就是转发。sendRedirect就是重定向。两者最大的区别就是一个是:

forward()执行后还是在同一个requestrequest范围,而sendRedirect执行之后就不在同一个request范围里面。

 

RequestDispatcher.forward()是在服务器端起作用,当使用forward()时,Servletengine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递.

 

response.sendRedirect()是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它可以重定向至不同的主机上,且在浏览器地址栏上会出现重定向页面的URL.

 

 

分享到:
评论

相关推荐

    解决[removed].href之后session丢失的问题

    然而,在使用JavaScript的`window.location.href`进行页面跳转时,有时会出现Session丢失的问题,这可能导致用户在跳转后无法访问之前存储在Session中的数据。本文将探讨这个问题的原因及解决方案。 首先,我们需要...

    forward-sendRedirect

    在Java Web开发中,"forward-sendRedirect"是一个关键的概念,主要涉及到Servlet和JSP之间的页面跳转技术。这里我们将深入探讨这两个方法的工作原理及其在实际应用中的差异。 首先,我们来了解一下`forward()`方法...

    JSP三种跳转方式 超级好的范例

    - 由于客户端浏览器会重新发起请求,所以服务器端的request对象和session对象中的数据可能会丢失。 **异常处理示例:** 当调用`sendRedirect()`之前已经有输出时,会出现以下异常: ```java java.lang....

    IE的cookie机制导致的session问题及解决办法.doc

    标题与描述概述的知识点主要集中在Internet Explorer(IE)的Cookie机制如何引发Session丢失的问题,并探讨了解决方案。本文将深入解析这一现象的原因、影响以及如何有效应对。 ### 一、IE Cookie机制与Session关联...

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

    - **response.sendRedirect**:这是一种服务器端的重定向方法,用于将客户端请求重定向到另一个资源。当调用此方法时,服务器会发送一个302状态码给客户端,客户端浏览器会根据响应中的Location头信息发起一个新的...

    2021年jspservlet题库附答案.docx

    4. 在J2EE中,重定向到另一种页面可以使用response.sendRedirect()方法。该方法将客户端请求重定向到指定的URL。 5. EL表达式是指在jsp页面中使用的表达式语言。${10 mod 3}的执行结果为1。 6. 自定义标签的作用是...

    jsp cookie+session实现简易自动登录.docx

    response.sendRedirect("main.jsp"); } %> <a href="login.jsp">重新登录 ``` ### Step 3: 实现自动登录功能 (main.jsp) 在此页面中,我们将检查用户的Cookie和Session,以实现自动登录。 ```jsp ;charset=...

    java面试题

    Session ID丢失会导致会话失效,因为Session ID是唯一标识每个用户的会话的。 - C. 使用URL重写可以在不支持Cookie的情况下传递Session ID。 - D. Session不会过期,这个说法是错误的,因为Session确实会有过期...

    JSP_重复提交_解决方法

    response.sendRedirect("success.jsp"); ``` ##### 方法4:禁用提交按钮 在前端代码中,可以通过JavaScript禁用提交按钮,防止用户多次点击: ```html 提交" onclick="this.disabled=true; this.form.submit();"> `...

    JSP和Servlet面试题

    常考面试题 1.讲下servlet的执行流程。 Servlet的执行流程也就是servlet的生命周期,当服务器启动的时候生命周期开始,然后通过init()《启动顺序根据... 重定向的url会改变,response.getRedirect().sendRedirect();

    jsp开发中遇到的问题及解决方案.rar

    6. **转发与重定向**:`RequestDispatcher.forward()`和`Response.sendRedirect()`的区别在于,前者在服务器端完成,后者会在客户端完成,这决定了它们在处理URL和资源共享上的不同。 7. **异常处理**:JSP的`error...

    JSP内置对象和作用域[收集].pdf

    例如,`response.sendRedirect("newPage.jsp")`用于重定向客户端到新的页面。 3. **session**:管理用户的会话。每个会话对应于浏览器的一次访问过程。HttpSession接口允许开发者存储和检索特定于用户会话的数据。...

    JSP100选择题 JSP100选择题 适合考前练习

    解析:当使用response.sendRedirect()进行重定向时,请求属性不会被传递。因此,在MyServlet中无法通过getAttribute()方法直接获取到在原始请求中设置的属性"nam 3. 在Servlet里,能实现重定向的方法有(选择两项...

    Java Web开发之基于Session的购物商店实现方法

    6. 重定向到显示购物车的页面:`response.sendRedirect(url)`。 `ListBookServlet` 是用于显示用户购物车中的商品列表,其主要任务是: 1. 设置字符编码和内容类型:确保响应内容的正确编码。 2. 从Session中获取...

    jsp课堂笔记2

    这意味着URL在浏览器中改变,且之前的请求状态丢失,例如`response.sendRedirect("req2.jsp")`。重定向可用于防止恶意注册,因为它可以跳转到任意网址。 - **转发**是服务器端跳转,服务器内部完成请求的传递,...

    Java Web_原题

    ` 设置了一个名为`name`的属性,然后`response.sendRedirect("http://localhost:8080/servlet/MyServlet")`发起重定向。在`MyServlet`中,可以通过`getAttribute`方法来获取这个属性,但因为请求被重定向,所以新的...

    JSP学习笔记

    - 客户端跳转(`response.sendRedirect`):生成新的HTTP请求,原request和session范围内的数据可能丢失。 ##### 1.5 cookie的基本操作 Cookie是存储在客户端的小型文本文件,用于跟踪用户状态。基本操作包括创建...

    jsp等一些java编程的东西

    - **重定向** (`Response.sendRedirect()`):发生在客户端,浏览器收到重定向指令,发起新的HTTP请求,地址栏URL改变,请求范围内的数据丢失。 4. **作用域对象**:JSP中有四个作用域,用来管理数据: - **...

    JSP购物车。(适合初学者使用)

    例如,`request.getParameter()`用于获取请求参数,`response.sendRedirect()`用于重定向页面。 6. **HTML/CSS/JavaScript**:在JSP页面中,HTML负责结构,CSS负责样式,JavaScript负责前端交互。购物车系统可能...

Global site tag (gtag.js) - Google Analytics