|
首先我们要明白用response.sendRedirect做转向的原理,他其实是向浏览器发送一个特别的Header,然后由浏览器来做转向,转到指定的页面,所以用sendRedirect时,浏览器的地址栏上能够看到地址的变化。 用<jsp:forward page=""/>则不同,他是直接在server做的,浏览器并不知道,也不和浏览器打交道,这从浏览器的地址并不变化能够看出。 所以使用response.sendRedirect时就需要注意以下两点: 1,在使用response.sendRedirect时,前面不能有HTML输出。 这并不是绝对的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制,一般在8K(我是说JSP SERVER),这就意味着,除非您关闭了cache,或您使用了out.flush()强制刷新,那么在使用sendRedirect之前,有少量的HTML输出也是允许的。 假如报错说,“一些信息已被submitted”(原文忘了),那么,您就要注意看了,前面是不是有过多的HTML输出了。
2,在response.sendRedirect之后,应该紧跟一句return; 我们已知道response.sendRedirect是通过浏览器来做转向的,所以只有在页面处理完成后,才会有实际的动作。既然您已要做转向了,那么后的输出更有什么意义呢?而且有可能会因为后面的输出导致转向失败。 |
|
相关推荐
### jsp response.sendRedirect不跳转的原因分析及解决 #### 一、问题背景 在进行Web应用开发的过程中,经常需要使用到服务器端重定向的技术。在Java Server Pages (JSP) 技术中,`response.sendRedirect()` 是一...
### JSP中利用`response.sendRedirect`与Cookie进行参数传递 #### 概述 在Web开发中,特别是使用Java Server Pages(JSP)进行网站构建时,数据的传递是至关重要的。其中,`response.sendRedirect`方法和Cookie...
jsp response.sendRedirect()用法详解 jsp response.sendRedirect()函数是JSP中一种常用的重定向方法,它可以将用户重定向到指定的页面。下面我们将详细介绍jsp response.sendRedirect()函数的用法和实现原理。 ...
对于如何进行页面跳转以及如何解决跳转中出现的问题,response.sendRedirect()是其中一种常用的方法。然而,在实际使用时,开发者可能会遇到response.sendRedirect()不跳转的情况。以下是对这个问题的原因分析及解决...
response.sendRedirect(request.getContextPath()+"/admin/login.jsp"); } public void register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //...
sendRedirect()和forward()方法的区别 sendRedirect()和forward()方法都是Servlet编程中常用的方法,它们可以将客户端的请求重定向或转发到其他的资源,如Servlet、JSP页面或HTML文件中。但是,这两个方法之间存在...
JSP 中有五种跳转方式,包括 RequestDispatcher.forward()、response.sendRedirect()、jsp:forward、RequestDispatcher.include() 和 HttpServletResponse.sendRedirect()。下面我们将详细介绍这五种跳转方式的区别...
* 不能在 response.sendRedirect() 之前使用 out.flush(),否则将抛出 java.lang.IllegalStateException 异常。 * 跳转后,浏览器地址栏将发生变化。 * 如果跳转到不同主机下,response.sendRedirect() 之后的语句将...
与客户端跳转不同,服务器端跳转使用`<jsp:forward>`标签或`response.sendRedirect()`方法(但参数不同)。服务器端跳转不会在浏览器的地址栏显示新的URL,而且可以携带请求属性。`<jsp:forward>`是立即跳转,而`...
本文将详细介绍几种实现这一功能的方法,并针对`response.sendRedirect()`在使用过程中遇到的一些常见问题给出解决方案。 #### 一、问题背景 在使用`response.sendRedirect()`进行页面跳转时,需要注意该方法调用...
用户管理系统。语言JAVA public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, ... response.sendRedirect(request.getContextPath()+"/manager.jsp"); }
使用 response.sendRedirect 方法可以将请求重定向到另一个 JSP 页面。例如: ```jsp response.sendRedirect("test2.jsp"); %> ``` 3. 使用 forward 标签 使用 forward 标签可以将请求转发到另一个 JSP 页面。...
response.sendRedirect("http://example.com/new-page"); ``` #### 四、构建Excel电子表格 当需要通过Web应用生成并发送Excel电子表格时,可以设置合适的`Content-Type`报头,并通过`OutputStream`将Excel文件的...
response.sendRedirect("jspPages/login.jsp"); }else{ HttpSession session = request.getSession(); session.setAttribute("userName", name); session.setAttribute("pwd", pwd); session.setAttribute(...
在Servlet中,有两种主要的跳转方式:`RequestDispatcher.forward()`和`ServletResponse.sendRedirect()`。这两种方法在处理客户端请求时有不同的行为和应用场景。 1. `RequestDispatcher.forward()` - `forward()...
与 `RequestDispatcher.forward()` 不同,`response.sendRedirect()` 是一种客户端的跳转方式。这意味着它可以在用户的浏览器端完成跳转操作,并且可以携带参数进行传递。例如,从一个页面传递参数到另一个页面。 *...
response.sendRedirect("/newLocation"); ``` 2. 转发:`RequestDispatcher`的`forward(ServletRequest request, ServletResponse response)`方法可以在服务器端将请求转发到另一个资源。这不会改变客户端的URL。 ``...
response.sendRedirect(response.encodeRedirectURL(finalUrl)); 改为了 StringBuffer str = new StringBuffer(); str.append("{"); str.append("status: \"true\","); str.append("url: \""); str.append...
这里主要介绍五种常见的JSP页面跳转方法,包括RequestDispatcher.forward()、response.sendRedirect()、、Meta标签以及JavaScript的location对象。 1. RequestDispatcher.forward() 这种方法在服务器端执行,它允许...