• 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对象携带的数据。

    写在最后

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

     相关推荐:

  • 相关阅读:
    QTP 11.05下载并完成+皴
    ZOJ Monthly, June 2014 月赛BCDEFGH题题解
    Linux makefile 教程 很具体,且易懂
    oracle中imp命令具体解释
    html5实现摇一摇
    AfxMessageBox和MessageBox差别
    Android传感器概述(六)
    线性代数之矩阵与坐标系的转换
    測试新浪微博@小冰 为代码机器人的一些方法
    破解中国电信华为无线猫路由(HG522-C)自己主动拨号+不限电脑数+iTV
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/11482088.html
Copyright © 2020-2023  润新知