web前后台数据交互的几种方式
1.利用cookie对象
Cookie是服务器保存在客户端中的一小段数据信息。使用Cookie有一个前提,就是客户端浏览器允许使用Cookie并对此做出相应的设置。一般不赞成使用Cookie。
(1)后台代码
- Cookie cookie=new Cookie("name", "hello");
- response.addCookie(cookie);
(2)前台代码
- Cookie[] cookies=request.getCookies();
- for(int i=0;i<cookies.length;i++){
- if(cookies[i].getName().toString().equals("name")){
- out.print(cookies[i].getValue());
- }
- }
2.利用session对象
session对象表示特定会话session的用户数据。客户第一次访问支持session的JSP网页,服务器会创建一个session对象记录客户的信息。当客户访问同一网站的不同网页时,仍处于同一个session中。
- request.getSession().setAttribute("name", name);
- request.getSession().setMaxInactiveInterval(2);
- response.sendRedirect("welcome.jsp");
(2)前台代码(jsp页面)
Object user=request.getSession().getAttribute("name");
3.利用request重定向,设置setAttribute
- request.setAttribute("name", "cute");
- request.getRequestDispatcher("welcome.jsp").forward(request, response); //网址不会改变
PS:如果后台使用的转发代码为 response.sendRedirect("welcome.jsp"); //网址变为welcome.jsp
则request设置的参数无效,因为已经切换到另一个请求了,request参数的有效期为本次请求。
(2)前台代码
- String name=request.getAttribute("name").toString();
4.利用Ajax进行异步数据请求(得到的数据可以以json或xml格式返回,便于处理)
(1)后台代码案例(运用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
- }
- }
2.前台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方式获取
注意:移动端前端开发调试 http://yujiangshui.com/multidevice-frontend-debug/
文本大多为摘录或总结,如影响到原创利益问题,请联系我删除!
web前后台数据交互的几种方式的更多相关文章
- web前后台数据交互的四种方式(转)
1.利用cookie对象 Cookie是服务器保存在客户端中的一小段数据信息.使用Cookie有一个前提,就是客户端浏览器允许使用Cookie并对此做出相应的设置.一般不赞成使用Cookie. (1 ...
- web实现数据交互的几种常见方式
前言 在当今社会,作为一名前端程序猿,并不是一昧的去制作静态页面就可以满足滴:你说你会制作网页,好吧,只能说你算是一个前端程序猿.但这是你作为一个程序猿最基本的能力,并不会为你进行加分: 我们都明白, ...
- 基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式
在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括 ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式
http://www.cnblogs.com/wuhuacong/p/4085682.html 在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交, ...
- sj 网页前端与后台数据交互的3种方式
1.ajax 网页访问 2.form 表单 用户名<input class="yonghu" type="text" id="user&quo ...
- 数据存储的两种方式:Cookie 和Web Storage(转)
数据存储的两种方式:Cookie 和Web Storage 数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡 ...
- 数据存储的两种方式:Cookie 和Web Storage
数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡,这个购物卡里存放了一些你的个人信息,下次你再来这个连锁超市时, ...
- 实现web数据同步的四种方式
http://www.admin10000.com/document/6067.html 实现web数据同步的四种方式 1.nfs实现web数据共享 2.rsync +inotify实现web数据同步 ...
- linux下实现web数据同步的四种方式(性能比较)
实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享2.rsync +inotify实现web数据同步3.rsyn ...
随机推荐
- UIView剖析之Draw、Size、Layout方法
一.基于UIView的Layer的方法 关于UIView的Layer,IOS提供了三个方法: 1.layoutSubviews 在iOS5.1和之前的版本,此方法的缺省实现不会做任何事情(实现为空), ...
- iOS开发ReactiveCocoa学习笔记(五)
ReactiveCocoa常见操作方法介绍: demo地址:https://github.com/SummerHH/ReactiveCocoa.git filter ignore ignoreValu ...
- 封装一个帮助类来写文件到android外置存储器上
项目地址:点击打开 项目简介:写文件到android外置存储器的一个帮助类,和它的demo程序 它是如何工作的呢? 1.创建 AppExternalFileWriter 对象并传递context(上下 ...
- git 如何生成 SSH 公钥
1.打开你的git bash 窗口 2.进入.ssh目录:cd ~/.ssh 3.找到id_rsa.pub文件:ls 4.查看公钥:cat id_rsa.pub 或者vim id_rsa.pub ...
- Django组件:用户认证组件
一丶用户认证 1.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: (1).authent ...
- [Jira]启动报错无法删除缓存文件felix-cache的解决方法
背景: 由于公司机房停电,jira服务器在停电期间需要关机处理,然而待重启启动服务时,jira出现报错,页面报错信息如下: Unable to clean the cache directory: / ...
- python 之Requests库学习笔记
1. Requests库安装 Windows平台安装说明: 直接以管理员身份打开cmd运行界面,使用pip管理工具进行requests库的安装. 具体安装命令如下: >pip instal ...
- TP5.0:同一个控制器访问不同方法
首先,我把TP框架的内容放置在manualtp5文件夹 在manualtp5/application/index/controller/index控制器中定义两个方法: 我们都知道,如果我们网址中不输 ...
- 兼容ie8的圆形进度条
主要是利用html5中的svg 画出圆形进度条 并且兼容ie8 https://github.com/GainLoss/Circular-progress-bar
- 初见微服务之RESTful API
1. REST名称由来 REST全称为Representational State Transfer,即表述性状态转移,最早由Roy Feilding博士在世纪之交(2000年)提出,喜欢追根溯源的朋 ...