Java Web前后端交互方式
Java 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中。
(1)后端代码
request.getSession().setAttribute("name", name);
request.getSession().setMaxInactiveInterval(2);
response.sendRedirect("welcome.jsp");
(2)前端代码(jsp页面)
Object user=request.getSession().getAttribute("name");
3. 利用request请求转发,设置setAttribute
(1)后端代码
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方式获取.
Java Web前后端交互方式相关推荐
- Java Web前后端分离的思考与实践
第一节 Java Web开发方式的变化 Web开发虽然是我们常说的B/S模式,其实本质上也是一种特殊的C/S模式,只不过C和S的选择余地相对要窄了不少,而且更标准化.不论是采用什么浏览器和后端框架,W ...
- Java Web前后端分离项目—后端servlet实例
关与作者更多博客请访问云里云外开源社区 文章目录 一.闲谈 二.json字符串的接受和发送 json的发送 json的接收 三.内网穿透或服务上云服务器 四.跨域 背景(为什么) 如何跨域 五.对接出 ...
- java Web 前后端交互
web后端和前端交互 网站数据处理主要分为三层. 第一层,表示层,这部分可以用HTML代码,CSS/Javascript代码来实现等.通过前端代码可以实现网页的布局和设计.这层又可以称为显示层.也就是 ...
- 视频教程-Vue、Spring Boot开发小而完整的Web前后端分离项目实战-Java
Vue.Spring Boot开发小而完整的Web前后端分离项目实战 3年多.net开发经验:5年的java后端开发经验,熟悉行.net,java流行技术,拥有多个.net,java web企业级应; ...
- 淘宝玉伯引发Web前后端研发模式讨论
淘宝玉伯是是前端基础类库 Arale 的创始人,Arale 基于 SeaJS 和 jQuery.不久前,淘宝玉伯在 Github 的 Arale 讨论页面上抛出了自己对于Web 前后端研发模式的思考. ...
- (转载)淘宝玉伯引发Web前后端研发模式讨论
个人认为:他们根据自己的经验,以谈话的模式来讨论web的前后端协作,还是很有趣的,也很有借鉴意义. 淘宝玉伯是是前端基础类库 Arale 的创始人,Arale 基于 SeaJS 和 jQuery.不久 ...
- web前后端分离开发部署模式
web前后端分离开发部署模式 在开始讨论这个话题之前我们先来认识一下传统的开发模式. 一.传统开发模式 相信很多做过Web开发童鞋应该都会经历这样一种开发模式,利用后端语言提供的模版引擎编写HTML/ ...
- WEB前后端交互原型通用元件库、常用组件、信息输出、信息输入、信息反馈、综合系列、页面交互、首页、分类页、内容详情、用户中心、注册登录、找回密码、元件库、web元件库、rplib、axure
WEB前后端交互原型通用元件库.常用组件.信息输出.信息输入.信息反馈.综合系列.页面交互.首页.分类页.内容详情.用户中心.注册登录.找回密码.元件库.web元件库.rplib.axure原型 we ...
- Python Web前后端分离框架Django+Vue搭建
Python Web前后端分离框架Django+Vue搭建 对前面所学知识的归纳整理,感兴趣的可以看看,欢迎指正. 一.前后端分离框架介绍 本项目基于 Python 的 Web 框架开发,采用前后端分 ...
最新文章
- 假如我是超级卷王。。。
- WebAPI返回数据类型解惑 以及怎样解决Extjs无法解析返回的xml
- php如何实现用户报警,php封装实现钉钉机器人报警接口的示例代码
- 在显著性区域外画矩形框matlab,Matlab实验报告样板
- ibmm,让思维导图回归本质
- 我的工作日志 2020年12月1日 星期一
- 计算机系统的备份与还原实验报告,数据库《数据备份与还原》实验报告.doc
- leetcode 476. 数字的补数(Number Complement)
- 【转】Struts2中json插件的使用
- 损坏的主文件表_启动失败时如何手动修复Windows 10的MBR(主引导记录)
- 数据分析中数据概览神器pandas_profiling介绍
- 关于URL路径的基本使用
- 发电机机房设计规范_柴油发电机房设计规范.docx
- 类似组卷网实现快速组卷功能,实现试题,试卷,课件快速录入、搜索、分类查询,支持mathtype和latex2word。
- oracle min(date),Oracle / PLSQL MIN函数
- css实现简单的电影院选座功能
- pdf如何转换成excel?教你几个方法
- deepin连接投影仪显示不完全
- 8255A的工作方式
- react事件 组件设计传参使用