什么是前端?什么是后端?

题主基础知识较差,希望大家见谅。
昨天提了一个问题:JSP是否过时
http://segmentfault.com/q/1010000004068820
然后暴露了我对jsp的有限的理解水平,可能还暴露了我对前端后端等概念的错误理解,到今天我还是不太明白,所以来请教一下:
1、什么是前端?

我理解的前端就是数据的呈现展示,html、css、客户端JavaScript这些都是前端技术

2、什么是后端?

我理解的后端就是业务逻辑层,数据层

所以根据我上面的理解,我就把jsp归到前端了,因为它提供了很多便于获取和展示数据的标签,并且和业务逻辑的实现一点关系没有。
不知道我的理解具体有什么错误,拜托大家帮忙指点一二,谢谢啦

阅读 19.2k
10 个回答

楼主的分类没什么错误,但是像 PHP jsp asp 这些东西算不算前端,就不好说了。
如果说前端负责展现的话,那么 PHP等是生成的 HTML 的话那么,那么 PHP 的代码中还是有很大一部分属于前端的代码的。但是也有很大一部分负责业务逻辑。
说PHP等是后端的,主要是他们分前端后台的方式是代码运行的位置。一般说运行在浏览器里的是前端,服务器上的代码是后台。
其实我更倾向于楼主的分法。因为前后端只是一个分工,运行在哪里无所谓。这种分工的发展历程参考: http://blog.jobbole.com/65509/ 。所以还是不要纠结于什么是前端后端了。

不过对于大部分人来说,前端就是写 HTML CSS JS 的,其他的都不是前端代码,可是运行在nodejs的expressjs服务器算是前端么? jade ejs模板引擎算是后台吗?

jsp和php是服务器端执行的程序,它们都能够生成浏览器可以执行的html,是后端

html,css,javascript是在浏览器中运行的程序,是前端

首先,如果你知道 JSP 的话,应该知道 Servlet ,应该知道 Servlet 其实就是一个 Class 文件,运行在服务端。其实 JSP 也属于 Servlet ,所以如果要说,JSP 其实也属于后端。
JSP 其实是可以添加 Java 代码的,我们可以把所有的业务逻辑都写到 JSP 页面中,然后直接通过 JSP 完成所有的数据库操作。JSP 这个技术其实有点类似于 PHP。
类比 PHP,PHP 是运行在服务端,将 HTML 代码输出到浏览器,得到我们看得到的网页。
JSP 也是这样,严格来说属于服务端,将 HTML 输出到浏览器得到我们所见的网页。
但是由于技术的发展,现在我们通常情况下,不把所有的业务逻辑、数据库连接等的操作都放在 JSP 里面。
我们把 HTML 放到 JSP 里面,把业务逻辑数据库连接等代码放到 Servlet 里面。
这样代码更加的清晰。
JSP 其实是更偏向于 View(视图)的 Servlet。
提问中的链接问题问:是否可以只用 Servlet 不用 JSP, 答案是可以的。Servlet 和 JSP 本质其实是同一个东西,只是我们把侧重点在 View 一方的称为 JSP,把侧重点在业务逻辑这一方的称为 Servlet。
所以 JSP 所能做的, Servlet 全部都能够完成。
我们在 JSP 中写 <input type="text" value="文本框"/>
和我们在 Servlet 中写
out.println("<input type='text' value='文本框'");
这两者等价。
熟悉 PHP 的应该能够很快的反应过来。

一般如果以Java MVC结构划分的话V层就是前端,但是里面又会涉及Java模板或者一些Java标签,所以从前的前后端划分是非常模糊的,现在很多项目也还依旧是这样的,Node,多客户端做法掀起的一些风气是把项目服务化,也就是把MVC拆开M层归后端Java,PHP等一些偏后端语言的去做提供数据接口、业务逻辑判断等,而页面则由模板渲染形式改为接口数据读取(这时候算是比较明显的前后端分离MC后端,V前端),再到近期React掀起的同构热潮,基于Node做C层,做指派路由、模板同构渲染,数据接口合并处理等。但是如果楼主想要具体到前端是哪一部分,那只能说V层是前端所属,或者C层某些公司也会将其归为前端管理,只能说如果不需要非常绚丽、对页面没什么要求、或者只是简单展示的话几乎前后端的划分就更加不必要了,或者说一句不好听的就是不需要前端了(我自己是主做前端的)

新手上路,请多包涵

JSP就是servelet的另一种形式,是先转换成java文件再编译成class文件运行在服务端的。完全可以写纯java代码(<%java代码%>)写的所有html代码在JSP转成java时都变成out.print("HTML代码")

简而言之:前端交互,后端服务。

新手上路,请多包涵

同求涨知识了

谁处理数据和业务谁就是后端,对应的谁处理展示的view谁就是前端,之前有接触过个项目,后端java操作数据库处理业务,前端php生成html处理交互逻辑。

推荐问题
logo
101 新手上路
子站问答
访问
宣传栏