使用时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不跳转的原因分析及解决.docx
jsp response.sendRedirect()用法详解.docx
最近做项目时遇到一个问题,明明加了response.sendRedirect() ,系统也执行了,但是它就是不跳转,具体的原因如下,感兴趣的各位可以参考下哈,希望对大家有所帮助
response.sendRedirect(request.getContextPath()+"/admin/login.jsp"); } public void register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //...
if ("xjg".equals(userName) && "xjg".equals(password)) { ... Cookie cookieUserName = new Cookie("userName", ... response.sendRedirect("success.jsp"); }else { response.sendRedirect("fail.jsp"); }
sendRedirect()和forward()的区别,我是个新手,觉得很受用,呵呵,大家学习
用户管理系统。语言JAVA public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, ... response.sendRedirect(request.getContextPath()+"/manager.jsp"); }
2.response.sendRedirect() 是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它可以重定向至不同的主机上,sendRedirect()可以重定向有frame.的jsp文件. ...
response.sendRedirect("jspPages/login.jsp"); }else{ HttpSession session = request.getSession(); session.setAttribute("userName", name); session.setAttribute("pwd", pwd); session.setAttribute(...
2.response跳转: response.sendRedirect("跳转页面地址"); 两种跳转的区别如下: 1.forward跳转: a.服务器端跳转,地址栏不改变; b.执行到跳转语句后马上无条件跳转,之后的代码不再执行(跳转之前一定要释放...
response.sendRedirect(response.encodeRedirectURL(finalUrl)); 改为了 StringBuffer str = new StringBuffer(); str.append("{"); str.append("status: \"true\","); str.append("url: \""); str.append...
转的页面"> 与 response.sendredirect("转的页面")的区别 sendredirect:
response.sendRedirect("ProviderAdminServlet?canshu=all"); }else if(canshu.equals("xiugai")){ int gysid=Integer.parseInt(request.getParameter("gysid")); Gongyingshang gys=yhs.findone...
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....
String str=(String)session.getAttribute("name"); D. 无法取出 4. 在 JSP 页面中定义一个 int 型的全局变量 myInt,定义的方法是( )。 A. <% int myInt %> B. ! int myInt !%> C. !%> D. ! int myInt %>
response.sendRedirect(serverConfig.SERVER + "admin/user/goLogin"); return false; } else { return true; } }catch (Exception e){ response.sendRedirect(serverConfig.SERVER + "admin/user/goLogin");...