zoukankan      html  css  js  c++  java
  • javaWeb如何转发数据,jsp页面如何接收?

    1.情景展示

      现在有一个需求就是:请求达到服务器后,服务器需要将请求的数据传给另一个页面,如何实现?   

    2.目标分析

      通过服务器跳转到页面上,有两种实现方式:一种是转发,一种是重定向。

      我们知道转发可以携带数据,而重定向无法携带数据,所以,要想携带数据跳转页面,必须通过转发实现。 

    3.解决方案

      通过request对象的setAttribute()传值给页面;页面通过getAttribute()取值。

      请求地址

      http://localhost:8070/demo2/dispatcher.do?userName=%25E7%2594%25A8%25E6%2588%25B7%25E5%2590%258D&password=pwd

    // 告诉浏览器以utf-8的字符集来解析success.jsp
    response.setCharacterEncoding("utf-8");
    // 用户名
    String userName = request.getParameter("userName");
    // tomcat服务器,会自动解码一次,这里需要再解码一次(userName总共编码了两次)
    userName = URLDecoder.decode(userName,"utf-8");
    // 密码
    String password = request.getParameter("password"); 
    // 转发页面时需要携带的数据
    request.setAttribute("userName", userName);
    request.setAttribute("password", password);
    // 跳转到success.jsp(浏览器的地址栏不会发生变化)
    request.getRequestDispatcher("/success.jsp").forward(request, response);
    

      页面取值的两种方式:

      1.通过EL表达式获取;

    ${属性名}
    

      2.通过小脚本获取。

    <%=request.getAttribute("属性名")%>
    

    4.效果展示

      说明:

      页面通过request对象取值的方法,只能在jsp中实现,因为:jsp的本质是servlet,而servlet属于java语言,所以jsp可以直接使用request对象,进而能够取值。

      相应的,如果你转发的是一个html文件,那么不好意思,你将无法获取到request对象携带的数据。

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    DELPHI版传奇引擎学习菜鸟篇(applem2)04
    DELPHI版传奇引擎学习菜鸟篇(applem2)03
    学习win32API消息处理
    DELPHI版传奇引擎学习菜鸟篇(applem2)02
    DELPHI版传奇引擎学习菜鸟篇(applem2)01
    读写INI的通用函数
    黑马程序员选择语句 SwitchCase 和break 、return 关键字。
    黑马程序员Readonly和Const的区别
    黑马程序员计算每个字符在字符串中出现的次数
    黑马程序员ADO.NET中的五个主要对象
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/11482088.html
Copyright © 2011-2022 走看看