1. 利用cookie对象

Cookie是服务器保存在客户端中的一小段数据信息。使用Cookie有一个前提,就是客户端浏览器允许使用Cookie并对此做出相应的设置。一般不赞成使用Cookie。

后台代码

Cookie cookie=new Cookie("name", "hello");
response.addCookie(cookie);

前台代码

Cookie[] cookies=request.getCookies();
for(int i=0;i<cookies.length;i++){ if(cookies[i].getName().toString().equals("name")){ out.print(cookies[i].getValue()); }
}
  1. 利用session对象
    session对象表示特定会话session的用户数据。客户第一次访问支持session的JSP网页,服务器会创建一个session对象记录客户的信息。当客户访问同一网站的不同网页时,仍处于同一个session中。

后台代码

request.getSession().setAttribute("name", name);
request.getSession().setMaxInactiveInterval(2);
response.sendRedirect("welcome.jsp");

前台代码

Object user=request.getSession().getAttribute("name");
  1. 利用request转发,设置setAttribute

后台代码

request.setAttribute("name", "cute");
request.getRequestDispatcher("welcome.jsp").forward(request, response);  //网址不会改变

PS:如果后台使用的重定向代码为 response.sendRedirect("welcome.jsp"); //网址变为welcome.jsp

则request设置的参数无效,因为已经切换到另一个请求了,request参数的有效期为本次请求。

前台代码

String name=request.getAttribute("name").toString();
  1. 利用Ajax进行异步数据请求(得到的数据可以以json或xml格式返回,便于处理)

后台代码案例(运用servlet传输数据)

public class TestServlet extends HttpServlet { /*** Constructor of the object.*/ public TestServlet() { super(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String data="[{\"name\":\"apple\",\"price\":23},{\"name\":\"banana\",\"price\":12},{\"name\":\"orange\",\"price\":8}]"; out.write(data); out.flush(); out.close(); } /*** Initialization of the servlet. <br>** @throws ServletException if an error occurs*/ public void init() throws ServletException { // Put your code here } }

前台js请求处理数据代码

function createXMLHttpRequest(){ var xmlrequest; if(window.XMLHttpRequest){ xmlrequest=new XMLHttpRequest(); }else if(window.ActiveXObject){ try{ xmlrequest=new ActiveXObject("Msxm12.XMLHTTP"); }catch(e){ try{ xmlrequest=new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){ xmlrequest=""; } } } return xmlrequest;
}
//获取数据的函数
function change(){ var xmlrequest=createXMLHttpRequest(); xmlrequest.open("POST","TestServlet",true); xmlrequest.onreadystatechange=function(){ if(xmlrequest.readyState==4&&xmlrequest.status==200){ var data=JSON.parse(xmlrequest.responseText); var content="<table border=1>"; for(var i=0;i<data.length;i++){ content+="<tr>"; for(o in data[i]){ content+="<td>"+data[i][o]+"</td>"; } content+="</tr>"; } content+="</table>"; document.getElementById("test").innerHTML=content; } }; xmlrequest.send();
}

总结:在用户访问网站整个生命周期中都会用到的数据用session来存储,例如用户名,登录状态,购物车信息
显示在网页上的信息数据大多通过 request或Ajax方式获取

web前后台数据交互的四种方式相关推荐

  1. web实现数据交互的几种常见方式

    前言 在当今社会,作为一名前端程序猿,并不是一昧的去制作静态页面就可以满足滴:你说你会制作网页,好吧,只能说你算是一个前端程序猿.但这是你作为一个程序猿最基本的能力,并不会为你进行加分: 我们都明白, ...

  2. linux数据同步技术比较,linux下实现web数据同步的四种方式(性能比较)教程.docx

    linux下实现web数据同步的四种方式(性能比较)教程 实现web数据同步的四种方式=======================================1.nfs实现web数据共享2.rs ...

  3. (转)基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式...

    http://www.cnblogs.com/wuhuacong/p/4085682.html 在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交, ...

  4. linux下实现web数据同步的四种方式(性能比较)

    实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享 2.rsync +inotify实现web数据同步 3.rs ...

  5. 实现web数据同步的四种方式

    实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享 2.rsync +inotify实现web数据同步 3.rs ...

  6. 实现Web端即时通讯的四种方式

    Web端即时通讯技术:即时通讯技术简单的说就是实现这样一种功能:服务器端可以即时地将数据的更新或变化反应到客户端,例如消息即时推送等功能都是通过这种技术实现的.但是在Web中,由于浏览器的限制,实现即 ...

  7. 解决存储过程中数据安全问题的四种方式

    随着科技的不断发展,数据量也正在呈指数倍的增加.在这样一个大背景下,存储产品成为了时下市场中最热的产品.而数据的安全性也变得尤为重要.后端存储已经逐渐成为企业业务系统的核心和关键. 一般而言,我们有四 ...

  8. web 前后台数据交互的方式

    做web开发,很重要的一个环节就是前后台的数据的交互,数据从页面提交到contoller层,数据从controler层传送到jsp页面来显示.这2个过程中数据具体是如何来传送的,是本节讲解的内容. 首 ...

  9. 前端数据交互的五种方式

    数据交互的主要五种方式:xhr .$.ajax .fetch.axios .vue-resource. 1.XMLHttpRequest是原生js基于浏览器所提供的一种可以数据交互的方式. 优点:1. ...

最新文章

  1. HDU2020 绝对值排序
  2. 【原】关于AdaBoost的一些再思考
  3. linux教程 sed命令的用法,Linux基础教程之文件三剑客sed命令用法详解
  4. 2019年前端开发10大战略性技术蓝图
  5. SAP License:O2O模式的衡量标准是什么?
  6. 吴恩达神经网络和深度学习-学习笔记-14-学习率衰减
  7. 利用linux内核代码玩转c链表
  8. 防毒技巧 从硬盘及内存中检测潜存病毒
  9. 计算机 最后 一次 开机时间 win 7,Win7如何每次开机都显示上次登录时间?开机显示上次开机时间方法...
  10. 2021年一战南大AI上岸经验贴
  11. 【Skynet】开始创建服务的代码流程
  12. 拼团不中返利模式开发(拼团商城返现系统源码设计)
  13. BZOJ 1933 [Shoi2007]Bookcase 书柜的尺寸 动态规划
  14. 每天学一点flash(50) 反余切的应用
  15. 如何开发一款网游?(一)——数据结构设计
  16. apr协议的使用粗解和练习
  17. 关于保留小数点后几位数字“
  18. 宝塔Linux面板部署flask(详细步骤)
  19. mysql 插入数据中文乱码问题解决办法
  20. 计算机应用个人标签,对口升学计算机应用——HTML基本标签练习.doc

热门文章

  1. B00012 C++算法库的sort()函数
  2. java 中的静态(static)代码块
  3. 经典卷积神经网络的学习(二)—— VGGNet
  4. 经济学的概念、术语与常识
  5. C Tricks(十)—— str2int vs int2str
  6. CentOS 下的包管理工具RPM
  7. python编程案例教程-quot;怎样编写一个教学案例quot;python编程案例教程电子教案...
  8. python基础教程是什么-Python基础教程_Python入门知识
  9. python是什么 自学-怎么自学python,大概要多久?
  10. python小程序100题-python 练习题:流量套餐订购小程序