后端Java怎么和前端HTML交互
极客宇文氏在这里不用过于专业化的语言去描述这个问题。
Java是后端开发服务器的语言工具,要注意只是服务器,那么就需要一个客户端或者是浏览器。
那么前端就来了,HTML属于前端页面的架构语言,你在PC端看见的今日头条和淘宝之类的都是HTML带来的网页样式。搞HTML一般会结合样式css和脚本语言JavaScript。
其中css是调节HTML那些大大小小的框的样貌,而JavaScript则是可以实现交互的特效以及传递数据。
服务器通过Java程序员传递数据给前端的JavaScript,然后再展现在以HTML为载体的平台上。就完成了简单的数据交互呈现的界面。
理解了的话给“极客宇文氏”点点关注,感谢阅读
后端提供数据,前台接收到之后显示数据,jsp中可以用jstl表达式直接显示,html的话一般用js去渲染,一般使用前端框架,常用的有vuejs,angularjs,reactJS……还有一些layui或者easyui都可以
刚毕业的时候公司使用的是SSH+JSP,后来升级为SpringMVC+velocity,但是前后端的代码还是在一个项目中,现在使用的springCloud+node.js实现前后端分离,可以说前后端的数据交互一直在改变!
HTML:超文本标记语言,定义了文本,图形,动画等在浏览器上的图形化界面,可以说HTML就是我们看得着,听得到的东西!
但是HTML的标签都是“死的”,只是页面渲染,我们需要使用浏览器解释语言(javascript等)来与后端交互,实现数据的传输,前端的请求方式包括:
①,form表单提交请求:通过在form标签中使用action配置链接,使用method配置请求方法(get,post等),提交请求到后端,同时获得数据填充表单!
②,使用超链接进行跳转:使用a标签,配置href跳转地址可以跳转到另外的页面!
③,使用ajax异步调用:使用ajax模拟http请求,将获得的数据局部刷新至页面!
④,直接http请求:现在前后端分离的项目,多半使用http直接访问后端接口,并且因为是不同的项目,还会存在跨域问题,需要使用nginx等配置转发来解决!
前端传入的参数可以是作为get方法直接拼接在请求链接后面,也可以使用json格式的数据,放入请求体中,当然后端返回的有可能是数据,也有可能是其他的页面链接,需要在前端进行处理,进行跳转!
上面是我对于前后端交互的拙见,有错误请务必指正,谢谢!
谢谢邀请~
这个问题,看似简单,但是感觉题主又不是那个简单的意思(可能我想多了)。如果问【前端怎么和后端交互】,我觉得大部分程序员都能回答上来,但如果是【后端怎么(主动)和前端交互】,估计会难倒很多程序员了。
先看一个场景
我之前做过一个小项目,只有一个页面,展示的是各个分公司当天的业绩,就是挣了多少钱。后台服务是Java,数据库是Mysql,有一张汇总表,内容大概是北京-100万,上海-80万这样的。
流程很简单,HTML页面发起请求到Java,Java访问数据库查询数据,再返回给HTML展示。但是Mysql中的汇总表的数据,是不定期更新的,可能10分钟,可能20分钟。
最简单的做法是什么?
HTML中用JS设置一个定时轮询(Polling),每隔几秒去发起一次请求,获取最新的数据,如果数据没有变化,页面也保持变化。
缺点很明显,前端发起的很多请求都是无效的(因为数据没有变化),那有没有办法当后台数据发生变化时,Java可以主动通知浏览器呢?
WebSocket
向大家介绍一下WebSocket。
WebSocket是一个基于TCP的协议,它可以使前端和服务器的数据交互变得更简单,前端和服务器只需要完成一次握手,就可以创建持久性的连接,并可以完成双向的数据传输,注意这里的双向,也就是服务端可以主动通知前端;WebSocket的数据格式轻量,所以性能很高;与http协议也有着良好的兼容性。
回到上面的场景,可以这么改造:
HTML页面与Java服务端建立WebSocket连接,然后就不再主动发起请求,Java服务端定时查询数据库,当数据有变化时,通知前端。
可能有人会问,这不就是把HTML页面的轮询,移到Java端了么?
但是想象一下,如果有100个客户端打开了这个HTML页面呢?那就意味着100个前端的定时轮询,变成了1个Java服务端的定时轮询。
希望我的回答,能够帮助到你!我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
后台java和前端HTML的交互实质就是后台java服务和浏览器中网页的通信,其通信协议主要是http和https协议。
Servlet规范详细描述了后台服务外界通信的标准,实现servlet接口便可以实现服务与外界通信。基于Java语言的web server实现了标准的servlet API。现在的Spring MVC等框架就是基于Servlet规范实现的。
Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。现代浏览器均支持ajax技术。
Java后台服务与浏览器通信简要流程如下:
1、浏览器向Java web服务器发起HTTP请求;
2、web服务器收到请求后将它交给servlet容器;
3:Servlet容器根据配置决定调用哪一个servlet,并且将请求相关信息封装为request和response对象,并传入servlet实现类的请求处理方法中;
4:Servlet通过request对象来获取浏览器传来的请求数据,并根据请求数据执行相关操作,处理结果通过response对象发送给浏览器;
5:浏览器收到数据后,将数据传入请求成功回调函数,浏览器便可以根据响应数据对页面进行相关操作,实现页面局部刷新。