`

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.

 

 

分享到:
评论

相关推荐

    Jsp利用response.sendRedirect、cookie传参

    Jsp利用response.sendRedirect、cookie传参

    jsp response.sendRedirect不跳转的原因分析及解决.docx

    jsp response.sendRedirect不跳转的原因分析及解决.docx

    jsp response.sendRedirect()用法详解.docx

    jsp response.sendRedirect()用法详解.docx

    jsp response.sendRedirect不跳转的原因分析及解决

    最近做项目时遇到一个问题,明明加了response.sendRedirect() ,系统也执行了,但是它就是不跳转,具体的原因如下,感兴趣的各位可以参考下哈,希望对大家有所帮助

    数据库测试test.sql

    response.sendRedirect(request.getContextPath()+"/admin/login.jsp"); } public void register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //...

    关于java应用cookie

    if ("xjg".equals(userName) && "xjg".equals(password)) { ... Cookie cookieUserName = new Cookie("userName", ... response.sendRedirect("success.jsp"); }else { response.sendRedirect("fail.jsp"); }

    sendRedirect()和forward()

    sendRedirect()和forward()的区别,我是个新手,觉得很受用,呵呵,大家学习

    用户管理系统(ums)

    用户管理系统。语言JAVA public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, ... response.sendRedirect(request.getContextPath()+"/manager.jsp"); }

    jsp跳转的五种方式

     2.response.sendRedirect()  是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它可以重定向至不同的主机上,sendRedirect()可以重定向有frame.的jsp文件.  ...

    java小项目

    response.sendRedirect("jspPages/login.jsp"); }else{ HttpSession session = request.getSession(); session.setAttribute("userName", name); session.setAttribute("pwd", pwd); session.setAttribute(...

    两种跳转的区别.txt

    2.response跳转: response.sendRedirect("跳转页面地址"); 两种跳转的区别如下: 1.forward跳转: a.服务器端跳转,地址栏不改变; b.执行到跳转语句后马上无条件跳转,之后的代码不再执行(跳转之前一定要释放...

    spring-security-core-2.0.5.RELEASE.jar修改使得满足ajax登录需求

    response.sendRedirect(response.encodeRedirectURL(finalUrl)); 改为了 StringBuffer str = new StringBuffer(); str.append("{"); str.append("status: \"true\","); str.append("url: \""); str.append...

    forward PK sendredirect

    转的页面"> 与 response.sendredirect("转的页面")的区别 sendredirect:

    北大青鸟U2项目完全版

    response.sendRedirect("ProviderAdminServlet?canshu=all"); }else if(canshu.equals("xiugai")){ int gysid=Integer.parseInt(request.getParameter("gysid")); Gongyingshang gys=yhs.findone...

    Ajax请求session超时处理流程

    response.sendRedirect(response.encodeRedirectURL(this.loginUrl + java.net.URLEncoder.encode(backToUrl, "UTF-8"))); } ajaxDone.jsp页面 ;charset=UTF-8" pageEncoding="UTF-8"%> { statusCode:${status...

    天鼎网上订餐系统

    response.sendRedirect("tiresponse.sendRedirect("tienting_standar.action"); enting_standar.action");

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

    //response.sendRedirect("index.jsp"); } else { //建立数据库连接,判断用户名和密码是否在数据库user表中存在 Connection conn = DB1.getConn(); System.out.println(conn); Statement stmt = DB1....

    javaEE j2ee 大学考试题库,j2ee开发面试题库-1

    String str=(String)session.getAttribute("name"); D. 无法取出 4. 在 JSP 页面中定义一个 int 型的全局变量 myInt,定义的方法是( )。 A. <% int myInt %> B. ! int myInt !%> C. !%> D. ! int myInt %>

    java拦截器

    response.sendRedirect(serverConfig.SERVER + "admin/user/goLogin"); return false; } else { return true; } }catch (Exception e){ response.sendRedirect(serverConfig.SERVER + "admin/user/goLogin");...

Global site tag (gtag.js) - Google Analytics