`
ericslegend
  • 浏览: 87034 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jsp 跳转及数据传输问题

    博客分类:
  • Java
阅读更多
<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设置的属性。
 
JspServlet之间的跳转:
Jsp跳转Servlet可以使用<jsp:forward page=”URL” />或者response.sendRedirect(URL)都可以,它们之间的区别上面已经说明了。
 
Servlet跳转Jsp
²        getRequestDispatcherforward(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>
分享到:
评论

相关推荐

    jsp实现页面跳转的方法

    - **减少网络开销**:由于不涉及页面的再次请求,减少了服务器与客户端之间的数据传输。 - **保持请求上下文**:转发过程中,request和session中的数据会被保留,便于目标页面使用。 **适用场景:** - 当需要根据...

    JSP页面的跳转方式汇总

    在Java Server Pages (JSP) 技术中,页面之间的跳转是非常常见的操作,对于实现用户交互和数据处理至关重要。本文将详细介绍七种常用的JSP页面跳转方法,并对其进行深入分析。 #### 1. 使用超级链接跳转 通过在HTML...

    ajax 提交数据到后台jsp页面及页面跳转问题

    这里的问题是关于如何使用Ajax提交数据到后台的JSP页面,并在处理完数据后进行页面跳转。我们将详细探讨这个问题以及相关的知识点。 首先,我们看`logincheck.jsp`页面中的代码,它接收通过Ajax传递的参数: ```...

    关于JSP页面间的传参问题

    ### 关于JSP页面间的传参问题 #### JSP页面间传值方法概述 在进行Web开发时,尤其是在使用Java Server Pages(JSP)技术的过程中,页面间的参数传递是一项非常重要的技能。它不仅涉及到基本的HTML知识,还涉及到...

    jsp面试题及答案

    jsp面试题及答案 JSP(Java Server Pages)是一种服务器端脚本语言,用于创建动态网页。下面是关于JSP的一些知识点: 1.JSP与HTML的关系 JSP与HTML之间的关系是,JSP在服务器端执行,返回给客户端的是一个HTML...

    js+jsp+json+tomcat跨域访问

    在跨域访问中,JSON通常作为数据传输的载体,因为它可以被JavaScript轻松处理。 jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。在处理跨域请求时,jQuery提供了$.ajax...

    jsp实现同步数据功能java

    在本项目中,"jsp实现同步数据功能java"是核心目标,即通过JSP来实现在前台点击后启动后台的数据同步,并在完成同步后跳转到新的页面展示结果。 首先,我们需要理解"提示"的概念。在用户界面设计中,提示通常指的是...

    五种 JSP页面跳转方法详解

    JSP(JavaServer Pages)页面跳转是Web开发中常见的操作,它涉及到在服务器和客户端之间传输数据以及控制页面流程。以下是针对标题中所提及的五种JSP页面跳转方法的详细知识点解析。 1. RequestDispatcher.forward...

    几种JSP页面传值方式.txt

    - 在URL中传递参数,适合简单且不敏感的数据传输。 - 示例代码: ```html &lt;form method="get" action="target.jsp"&gt; 提交"&gt; ``` 访问`target.jsp`时URL可能变为:`...

    Ext+JSP实现数据提交

    7. **安全性考虑**:在实际开发中,还需要考虑数据安全问题,如防止SQL注入、XSS攻击等。对用户提交的数据进行校验和过滤是必要的,同时确保敏感信息的加密传输。 综上所述,`Ext+JSP`的组合提供了一种有效的方法来...

    JSP经典例子教程-100例

    为了确保数据正确显示,可以使用Unicode编码来存储和传输数据。下面是一个简单的示例,展示如何在JSP中处理Unicode编码: ```jsp String unicodeString = "\u4F60\u597D"; // “你好” in Unicode %&gt; &lt;p&gt;Unicode...

    jsp实现-交易平台JSP源码

    优化可能涉及减少不必要的JSP跳转,使用缓存,优化SQL查询等。安全性方面,需防止SQL注入、XSS攻击,使用HTTPS加密传输,以及对用户输入进行校验。 总之,JSP作为动态网页开发工具,其灵活性和强大的功能使其成为...

    JSP网上购物系统源码

    【JSP网上购物系统源码】是一个基于JavaServer Pages(JSP)技术...通过深入研究这个源码,开发者可以了解到如何构建一个实际运行的在线购物平台,包括页面跳转、数据传输、用户交互以及数据库操作等一系列关键流程。

    基于jsp的动态效果的登录页面

    创建登录页面时,必须考虑到安全性问题: 1. 数据加密:密码应该在存储和传输过程中进行加密,防止被窃取。 2. SQL注入防护:使用预编译的SQL语句或ORM框架,防止恶意SQL注入攻击。 3. XSRF(跨站请求伪造)防御:...

    基于JSP的学生管理系统

    【基于JSP的学生管理系统】是一个适合初学者的项目,它主要涵盖了使用JSP...通过实际操作,开发者不仅能学习到如何使用JSP创建动态网页,还能掌握数据库交互和数据传输的核心技巧,这些都是构建更复杂Web应用的基础。

    JSP用户提交页面编码

    #### 五、常见问题及解决办法 - **乱码问题**:如果设置了正确的字符编码后仍然出现乱码,可能是其他地方也涉及到了字符编码的转换,如数据库连接、JSP页面编码等。需要检查整个流程中的所有编码设置是否一致。 - *...

    Spring MVC注解与数据绑定(含源码及结果图)

    1、有如下一个订单信息页面order.jsp(置于/WEB-INF/jsp目录下),按以下步骤实现一个使用POJO类型完成表单数据传输的SpringMVC数据绑定项目。 (1) 创建一个Order类来封装上述订单信息,其中各个属性的名称和数据类型...

    jsp的数据库连接页面

    - 适当加密敏感数据,确保数据传输的安全性。 综上所述,通过以上分析可以看出,JSP页面与数据库之间的交互涉及到多个技术点和技术细节。开发者需要具备良好的Java编程基础和一定的Web开发经验才能顺利完成这样的...

    jsp试题加答案

    - POST 方法可传输大量数据,数据在请求体中,可以提交敏感信息,并可被保存为书签。 2. Web 应用程序打包后扩展名 - 扩展名为 .WAR 的文件是Web应用程序的标准打包格式,代表Web Archive。 3. Servlet - ...

Global site tag (gtag.js) - Google Analytics