<jsp:forward> 使用同一个 request ,是在服务器端跳转,浏览器显示的是第一个页面的名字,因为客户端(浏览器)不知道它在服务器端跳转了。
Response.sendRedirect 是两个不同的 request ,是在客户端跳转,浏览器显示的是跳转后的页面的名字。因为它是从客户端跳转到第二个页面的。
使用 forward 时,由于只是发送一次 request 请求, request 设置的属性( setAttribute )依然能保留在下一个页面。
使用 sendRedirect 时,由于发送两次 request 请求,所以在下一个不能获取 request 属性。但可以通过重写 URL 的方式将内容传递过去。
下面举例说明:
tian.jsp
<%request.setAttribute(
"river",
"redwater");
request.setAttribute(
"country",
"daguaiwan");
%>
<jsp:forward page=
"fengshan.jsp" />
donglan.jsp
<%request.setAttribute(
"river",
"redwater");
request.setAttribute(
"country",
"daguaiwan");
%>
<a href=
"fengshan.jsp">fengshan</a>
bama.jsp
<%request.setAttribute(
"river",
"redwater");
request.setAttribute(
"country",
"daguaiwan");
response.sendRedirect(
"fengshan.jsp");
%>
fengshan.jsp
<%=request.getAttribute(
"river")%><br/>
<%=request.getAttribute(
"country")%>
redwater
daguaiwan
null
null
null
null
结果分析:
tiane.jsp是通过forward跳转到fengshan.jsp的,这两个页面享用的是同一个request,故fengshan.jsp可以接收到tiane.jsp通过 request设置的属性。
而donglan.jsp是通过href发送了另外的request请求,bama.jsp是通过sendRedirect跳转,用的也是另外的request请求,故fengshan.jsp不可以接收到这两个页面通过 request设置的属性。
Jsp和Servlet之间的跳转:
从Jsp跳转Servlet可以使用<jsp:forward page=”URL” />或者response.sendRedirect(URL)都可以,它们之间的区别上面已经说明了。
从Servlet跳转Jsp:
² getRequestDispatcher的forward(request, response)方法,这里也只是发送了一次请求,可以在下一个页面接受request设置的属性。
² response.sendRedirect(URL),这里发送了两次请求,不可以在下一个页面接受request设置的属性。
例子如下:
servlettiane.jsp
<%request.setAttribute(
"river",
"redwater");
request.setAttribute(
"country",
"daguaiwan");
%>
<jsp:forward page=
"/tiane" />
servletbama.jsp
<%request.setAttribute(
"river",
"redwater");
request.setAttribute(
"country",
"daguaiwan");
response.sendRedirect(
"/ForwardRedirect/tiane");
%>
Tiane.java
publicclass Tiane extends HttpServlet {
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// response.sendRedirect("/ForwardRedirect/fengshan.jsp");
this.getServletConfig().getServletContext()
.getRequestDispatcher("/fengshan.jsp").forward(request, response);
}
publicvoid doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
再在web.xml中配置servlet:
<servlet>
<servlet-name>tiane</servlet-name>
<servlet-class>com.dvnchina.test.Tiane</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>tiane</servlet-name>
<url-pattern>/tiane</url-pattern>
</servlet-mapping>
分享到:
相关推荐
- **减少网络开销**:由于不涉及页面的再次请求,减少了服务器与客户端之间的数据传输。 - **保持请求上下文**:转发过程中,request和session中的数据会被保留,便于目标页面使用。 **适用场景:** - 当需要根据...
在Java Server Pages (JSP) 技术中,页面之间的跳转是非常常见的操作,对于实现用户交互和数据处理至关重要。本文将详细介绍七种常用的JSP页面跳转方法,并对其进行深入分析。 #### 1. 使用超级链接跳转 通过在HTML...
这里的问题是关于如何使用Ajax提交数据到后台的JSP页面,并在处理完数据后进行页面跳转。我们将详细探讨这个问题以及相关的知识点。 首先,我们看`logincheck.jsp`页面中的代码,它接收通过Ajax传递的参数: ```...
### 关于JSP页面间的传参问题 #### JSP页面间传值方法概述 在进行Web开发时,尤其是在使用Java Server Pages(JSP)技术的过程中,页面间的参数传递是一项非常重要的技能。它不仅涉及到基本的HTML知识,还涉及到...
jsp面试题及答案 JSP(Java Server Pages)是一种服务器端脚本语言,用于创建动态网页。下面是关于JSP的一些知识点: 1.JSP与HTML的关系 JSP与HTML之间的关系是,JSP在服务器端执行,返回给客户端的是一个HTML...
在跨域访问中,JSON通常作为数据传输的载体,因为它可以被JavaScript轻松处理。 jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。在处理跨域请求时,jQuery提供了$.ajax...
在本项目中,"jsp实现同步数据功能java"是核心目标,即通过JSP来实现在前台点击后启动后台的数据同步,并在完成同步后跳转到新的页面展示结果。 首先,我们需要理解"提示"的概念。在用户界面设计中,提示通常指的是...
JSP(JavaServer Pages)页面跳转是Web开发中常见的操作,它涉及到在服务器和客户端之间传输数据以及控制页面流程。以下是针对标题中所提及的五种JSP页面跳转方法的详细知识点解析。 1. RequestDispatcher.forward...
- 在URL中传递参数,适合简单且不敏感的数据传输。 - 示例代码: ```html <form method="get" action="target.jsp"> 提交"> ``` 访问`target.jsp`时URL可能变为:`...
7. **安全性考虑**:在实际开发中,还需要考虑数据安全问题,如防止SQL注入、XSS攻击等。对用户提交的数据进行校验和过滤是必要的,同时确保敏感信息的加密传输。 综上所述,`Ext+JSP`的组合提供了一种有效的方法来...
为了确保数据正确显示,可以使用Unicode编码来存储和传输数据。下面是一个简单的示例,展示如何在JSP中处理Unicode编码: ```jsp String unicodeString = "\u4F60\u597D"; // “你好” in Unicode %> <p>Unicode...
优化可能涉及减少不必要的JSP跳转,使用缓存,优化SQL查询等。安全性方面,需防止SQL注入、XSS攻击,使用HTTPS加密传输,以及对用户输入进行校验。 总之,JSP作为动态网页开发工具,其灵活性和强大的功能使其成为...
【JSP网上购物系统源码】是一个基于JavaServer Pages(JSP)技术...通过深入研究这个源码,开发者可以了解到如何构建一个实际运行的在线购物平台,包括页面跳转、数据传输、用户交互以及数据库操作等一系列关键流程。
创建登录页面时,必须考虑到安全性问题: 1. 数据加密:密码应该在存储和传输过程中进行加密,防止被窃取。 2. SQL注入防护:使用预编译的SQL语句或ORM框架,防止恶意SQL注入攻击。 3. XSRF(跨站请求伪造)防御:...
【基于JSP的学生管理系统】是一个适合初学者的项目,它主要涵盖了使用JSP...通过实际操作,开发者不仅能学习到如何使用JSP创建动态网页,还能掌握数据库交互和数据传输的核心技巧,这些都是构建更复杂Web应用的基础。
#### 五、常见问题及解决办法 - **乱码问题**:如果设置了正确的字符编码后仍然出现乱码,可能是其他地方也涉及到了字符编码的转换,如数据库连接、JSP页面编码等。需要检查整个流程中的所有编码设置是否一致。 - *...
1、有如下一个订单信息页面order.jsp(置于/WEB-INF/jsp目录下),按以下步骤实现一个使用POJO类型完成表单数据传输的SpringMVC数据绑定项目。 (1) 创建一个Order类来封装上述订单信息,其中各个属性的名称和数据类型...
- 适当加密敏感数据,确保数据传输的安全性。 综上所述,通过以上分析可以看出,JSP页面与数据库之间的交互涉及到多个技术点和技术细节。开发者需要具备良好的Java编程基础和一定的Web开发经验才能顺利完成这样的...
- POST 方法可传输大量数据,数据在请求体中,可以提交敏感信息,并可被保存为书签。 2. Web 应用程序打包后扩展名 - 扩展名为 .WAR 的文件是Web应用程序的标准打包格式,代表Web Archive。 3. Servlet - ...