欢迎来到天天文库
浏览记录
ID:14286524
大小:44.00 KB
页数:15页
时间:2018-07-27
《页面转发和重定向的区别》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、页面转发和重定向的区别全解forward()和sendRedirect昨天在servlet中搞些页面重定向的问题,在处理页面的path时遇到了一些恼人的问题,今天来深究一下:Javax.servlet.RequestDispatcher.forward(ServletRequestrequest,ServletResponseresponse)Javax.servlet.http.HttpServletResponse.sendRedirect(Stringlocation)forward作用于服务器端,重定向后客户端浏览器地址栏的URL不变,无法通过get方式传递参数,不过
2、可以通过HttpServletResponse.setAttribute(key,values)来做:JDK的DOC中的描述:Forwardsarequestfromaservlettoanotherresource(servlet,JSPfile,orHTMLfile)ontheserver.Thismethodallowsoneservlettodopreliminaryprocessingofarequestandanotherresourcetogeneratetheresponse.forwardshouldbecalledbeforetheresponsehasb
3、eencommittedtotheclient(beforeresponsebodyoutputhasbeenflushed).Iftheresponsealreadyhasbeencommitted,thismethodthrowsanIllegalStateException.Uncommittedoutputintheresponsebufferisautomaticallyclearedbeforetheforward.这个方法允许一个servlet对一个请求作完处理后,并使用另一个资源作响应。forward应该在向客户端发出响应之前被调用(response的输出流被
4、刷新之前),如果已经向客户端发出了响应,这个方法将抛出一个“IllegalStateException”的异常。未发出响应response的输出缓冲区在调用forward会被自动的清空。得到RequestDispatcher引用的方法:1、javax.servlet.ServletContext.getRequestDispatcher(Stringpath)JDK的DOC中的描述:Thepathnamemustbeginwitha"/"andisinterpretedasrelativetothecurrentcontextroot.UsegetContexttoobtai
5、naRequestDispatcherforresourcesinforeigncontexts.ThismethodreturnsnulliftheServletContextcannotreturnaRequestDispatcher.用的最多,最容易理解的方法,path必须是以“/”开头,路径是相对于全局上下文路径,对应于web应用的根目录2、javax.servlet.ServletRequest.getRequestDispatcher(Stringpath)JDK的DOC中的描述:Thepathnamespecifiedmayberelative,although
6、itcannotextendoutsidethecurrentservletcontext.Ifthepathbeginswitha"/"itisinterpretedasrelativetothecurrentcontextroot.ThismethodreturnsnulliftheservletcontainercannotreturnaRequestDispatcher.可以是相对地址,以当前资源的根目录,但不能超出当前资源根目录。可以是以“/”开头的地址,当前root作为根目录环境。2、javax.servlet.ServletContext.getNamedDis
7、patcher(Stringname)JDK的DOC中的描述:Servlets(andJSPpagesalso)maybegivennamesviaserveradministrationorviaawebapplicationdeploymentdescriptor.得到名为name的资源。Servlets(也可是JSP页面)可能会有个给定的名字,该名字是服务器或者web应用的部署描述web.xml提供的。sendRedirect工作在客户端,重定向后客户端浏览器地址栏的URL变为新的资源URL,可以
此文档下载收益归作者所有