这里介绍Forward()无法重定向至有Frame JSP文件,可以重定向至有frame的html文件,同时Forward()无法在后面带参数传递。
JSP有许多值得学习的当地,这儿咱们首要介绍JSP跳转,包含介绍Frame JSP文件等方面。
当运用Forward()时,Servlet engine传递HTTP恳求从当时的Servlet or JSP到别的一个Servlet,JSP 或一般HTML文件,也即你的form提交至a.JSP,在a.JSP用到了Forward()重定向至b.JSP,此刻form提交的一切信息在 b.JSP都能够取得,参数主动传递。 但Forward()无法重定向至有Frame JSP文件,能够重定向至有Frame的html文件,一起Forward()无法在后边带参数传递,比方Servlet?name=frank,这样不可,能够程序内经过response.setAttribute("name",name)来传至下一个页面。重定向后浏览器地址栏URL不变。
例:在Servlet中进行重定向
- publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException- {
- response.setContentType("text/html;charset=gb2312");
- ServletContextsc=getServletContext();
- RequestDispatcherrd=null;
- rd=sc.getRequestDispatcher("/index.jsp");//定向的页面
- rd.forward(request,response);
- }
通常在Servlet中运用,不在JSP中运用。
response.sendRedirect()
是在用户的浏览器端作业,sendRedirect()能够带参数传递,比方Servlet?name=frank传至下个页面,一起它能够重定向至不同的主机上,sendRedirect()能够重定向有Frame JSP文件。重定向后在浏览器地址栏上会呈现重定向页面的URL
例:在Servlet中重定向
- publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
- throwsServletException,IOException
- {
- response.setContentType("text/html;charset=gb2312");
- response.sendRedirect("/index.jsp");
- }
由于response是JSP页面中的隐含目标,故在JSP页面中能够用response.sendRedirect()直接完成重定位。
留意:
(1) 运用response。sendRedirect时,前面不能有HTML输出
这并不是肯定的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制,一般在8K(我是说 JSPSERVER),这就意味着,除非你封闭了cache,或许你运用了out.flush()强制改写,那么在运用sendRedirect之前,有少数的HTML输出也是答应的。
(2) response.sendRedirect之后,应该紧跟一句return;
咱们现已知道response.sendRedirect是经过浏览器来做转向的,所以只要在页面处理完成后,才会有实践的动作。已然你现已要做转向了,那么后的输出还有什么含义呢?并且有可能会由于后边的输出导致转向失利。
比较:
(1) Dispatcher.Forward()是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;
(2) response.sendRedirect()则是彻底的跳转,浏览器将会得到跳转的地址,偏重新发送恳求链接。这样,从浏览器的地址栏中能够看到跳转后的链接地址。
前者愈加高效,在前者能够满足需求时,尽量运用RequestDispatcher.Forward()办法。
注:在有些情况下,比方,需求跳转到一个其它服务器上的资源,则有必要运用HttpServletResponse.sendRequest()办法。以上介绍Frame JSP文件。
【修改引荐】
- JSP和BEAN具体分析
- 带参数办法调用JSP EL表达式
- JSP和JavaBean模型具体介绍
- 详解JSP开发环境的装备
- Servlet和JSP经验总结
知优网 » Frame JSP文件简略描绘(frame表达例句)