欢迎来到天天文库
浏览记录
ID:35294936
大小:107.00 KB
页数:5页
时间:2019-03-23
《servlet页面跳转方法总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Servlet页面跳转方法简介JSP页面中,实现页面跳转发生在两种情况下。一种是发生在servlet中,这是一种比较常见的跳转页面的方式,它的优点是可以在servlet中做大量业务逻辑处理,通过处理最终返回到相应的显示介面,这种方法隐藏业务逻辑,符合MVC架构设计;另一种方式是在JSP页面中,因为JSP也就是特殊的servlet,不过还是有点差异滴,这里可以请读者自行查阅其相异之处。通过JSP进行页面的跳转一般情况是传递参数比较小,不需要过多的逻辑处理,对安全性要求较低,能够进行简单的数据显示可以了;这种方式操作更加灵活;在简单页面跳转过程中使用较多。下面介绍两种方式的一些常见方法:Ser
2、vlet:在servlet中,一般在doGet(),doPost()等方法里,实现页面的跳转。sendRedirect方式:格式:response.sendRedirect(“index.jsp”);注释:当前页面跳转到index.jsp页页面(可以跳转的相应路径);sendRedirect可以将页面跳转到任何页面,不只局限于当前的web应用中,还可以跳转到其他的网站页面。如:response.sendRedirect("http://www.sohu.com");这种方式跳转后浏览器地址栏发生变化,如果这种方式要传值出去的话,只能在使用QueryString这种方式,在url中带para
3、meter或者放在session中,而无法使用request.setAttribute来传递。forward方式:格式:request.getSession().setAttribute("user","jake");request.getRequestDispatcher("index.jsp").forward(request,response);Servlet中forward方式只能跳转到本web应用中的页面上。在页面跳转后,浏览器地址栏不会发生变化。开发人员在使用这种方式跳转,进行参数传值可以使用三种方法:urlquerystring,Session,request.setAttr
4、ibute();JSP页面跳转方式:sendRedirect();response.sendRedirect();这种方式和servlet的response.sendRedirect()方式用户一样。但是在使用此语句前不允许有out.flush();如果有,系统会有异常:java.lang.IllegalStateException:Can'tsendRedirect()afterdatahascommittedtotheclient.atcom.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpR
5、esponse.java:558)这种方式页面跳转后浏览器地址栏变化;如果要跳转到其他主机下,页面跳转后,session等相呼应操作均已经失效;别人的应用不会知道你的应用的Session和其他属相。response.setHeader();格式:response.setHeader("index.jsp","user.jsp");这条语句前不允许有out.flush(),如果有,页面不会跳转。跳转后浏览器地栏变化此语句后面的语句执行完成后才会跳转。格式:此语句前不允许有out.flush(),如果
6、有,会有异常:java.lang.IllegalStateException:forward()notallowedafterbufferhascommitted.atcom.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:134)atcom.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:101)atcom.caucho.jsp.PageContextImpl.forward
7、(PageContextImpl.java:836)跳转后浏览器地址栏不变,但是只能跳下此语句后面的语句执行完成后才会跳转。跳转效率比较:A、:效率高,速度快1.地址栏不改变跳转-服务器端跳转,服务器之间内部转,相同的request,可传参;2.执行到跳转语句后无条件立刻跳转,之后的代码不再被执行;注意:如果使用forward跳转,则一定要在跳转之前释放掉全部的
此文档下载收益归作者所有