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

    写在最后

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

     相关推荐:

  • 相关阅读:
    Net Remoting(应用程序域)
    C# 方便的复制/比较物件内数据的方法(Object Copy / Compare)
    c# 序列化
    Windows Phone 7 开发日志(初试一、随便研究)
    关于Windows Phone 7推广策略的失误
    vb 托盘图标
    vb code中调用exe文件,当关闭的时候直接关闭文件.
    调用INI文件
    使用SQL的JOB调用DTS定制任务!
    给Word设置目录
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/11482088.html
Copyright © 2020-2023  润新知