为啥不直接使用js与后台交互,而使用jsp等技术?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥不直接使用js与后台交互,而使用jsp等技术?相关的知识,希望对你有一定的参考价值。

现在假如想做个网站,我们可能会使用asp,jsp与php,现在就说jsp,在html页面中加入java代码,从而实现与用户的动态交互功能.我想问的是,为什么不直接使用javascript与后台进行交互呢?而是只将js用于网页前端开发中.如果说JavaScript也可以和jsp一样,直接与后台交流,那不是省很多的事情吗?(听说后来有了个nodejs,是不是可以解决这个问题?)

前端与后台是两个不同的运行环境,所要面对和处理的问题是完全不同的,比如前端脚本主要是用来处理页面与浏览者之间的交互的,而后台脚本则是根据前端的要求读取数据库并返回数据给前端,如果一种程序语言既要兼顾前端又要兼顾后台,那么它必然会很臃肿,会影响运行效率。nodejs虽然使用的语法是JavaScript,但它本质上与前端的JavaScript还是不同的,它其实跟asp、jsp、php一样是运行在服务器的(浏览器查看源代码是看不到nodejs代码的),只不过语法是js而已。
退一万步讲,即使JavaScript能实现前后端统一,在实际应用中它仍然要分为泾渭分明的前端和后台两部分,服务器会首先执行后台部分的代码,然后把前端代码(包含html+css+前端js)发送给客户端浏览器,浏览器在渲染页面效果的同时解析执行前端js。这样的话,前后端都用js与前后端用不同的语言或系统又有什么本质区别呢?更何况实际开发中前端和后台是由不同的人(或团队)来进行的,这种情况下又怎么能强求两者的一致呢?
再一个就是安全问题,如果前端js可以直接操作后台,那么很多后台的秘密(不单单是密码)就会直接暴露在全世界所有人的眼皮下,这是一件很恐怖的事,堪比世界末日!追问

那为什么浏览器端语言要设置成能看见的呢

参考技术A 后台就是操作数据库,js也可以连接并操作数据库,但是因为密码是可以看见的,所以不能这么做,当然如果都是内部员工之类很信任的人使用,可以这么做,因为你是用js直接连数据库,所以真的使用的时候,你只要给用的人发一个html文件就可以了

以上是关于为啥不直接使用js与后台交互,而使用jsp等技术?的主要内容,如果未能解决你的问题,请参考以下文章

使用JSP/Servlet技术开发新闻发布系统——第二章 JSP数据交互

javaweb 与jsp页面的交互流程 (初次接触写)

JS总结

前后端交互

java后台的json值怎么传给jsp页面,并进行遍历

纯HTML页面为了避免频繁前后台Ajax交互方案