A. 做网页设计,不用JSP只用HTML可以吗
可以,但是只能做出前端的静态页面,不能实现任何后台的交互功能。
1、HTML是超文本标记语言,其只能实现前台的静态页面,也就是能实现人们看到的部分,所以HTML属于前端语言,只能制作静态太页面。
2、JSP属于后台语言,可以实现网站的许多后天功能,实现前台与后台数据库的交互,属于编程语言而不是标记语言。SP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1] 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
B. 前端用jsp还是html
如果只是针对这2个选择,一般是html。还要看公司需求,公司要求你用jsp,那就jsp,除非你能动之以情,晓之以理,说服公司使用html,同时也要解决不用jsp,使用html所带来的其它问题。而且jsp是前后端不分离的开发模式、html一般是前后端分离的开发模式
如果是放大到前端,现在都不是说什么jsp、html的问题,是讲要使用什么技术开发的问题。像我们使用vue来开发前端的话,都是在.vue文件上写前端代码,.html都是编译过来的,基本是都不用管.html里面的东西
C. html5 能接数据吗,能取代jsp吗
不能。html5是一个页面显示的语言,他是html4标准的延伸,本质上,他就是为了显示页面。html5其实就是增加了许多动态显示的标签,本质上是为了页面显示更美观,可以显示更多的功能。虽然html5增加了本地数据库支持,但是并不能取代服务端数据库,除非这不是一个网络应用。html5或者说html是一个前台展示语言。
jsp是javaWeb的一个规范,他的本质是servlet。jsp其实就是把servlet和html结合在一起了。当jsp被编译的时候,会被编译成一个servlet的class,而里面的显示页面的html语句会被out出来。简单来说jsp是为了接收后端数据,输出到前端的一个技术。除了jsp,java还可以使用velocity、Freemaker模版等技术结合html来显示页面。
就是说jsp技术和html是不可分割的,使用jsp来显示一个页面时,必须使用html技术,当然也可以是html5。只不过html被整合在jsp里面或者说jsp其实就是servlet和html的结合体,并且html和servlet是版本无关的,就是说你只要使用html就可以,至于是哪个版本无所谓。
D. 现在什么技术取代了jsp
Spring Boot一部分取代了jsp:
以前老的方式是:
1.客户端请求
2.服务端的servlet或controller接收请求(路由规则由后端制定,整个项目开发的权重大部分在后端)
3.调用service,代码完成业务逻辑
4.返回jsp
5.jsp展现一些动态的代码
新的方式是:
1.浏览器发送请求
2.直接到达html页面(路由规则由前端制定,整个项目开发的权重前移)
3.html页面负责调用服务端接口产生数据(通过ajax等等)
4.填充html,展现动态效果。
(有兴趣的童鞋可以访问一下阿里巴巴等大型网站,然后按一下F12,监控一下你刷新一次页面,他的http是怎么玩的,大多数都是单独请求后台数据,使用json传输数据,而不是一个大而全的http请求把整个页面包括动+静全部返回过来)
这样做的好处是:
1.可以实现真正的前后端解耦,前端服务器使用nginx。
前端服务器放的是css,js,图片等等一系列静态资源(甚至你还可以css,js,图片等资源放到特定的文件服务器,例如阿里云的oss,并使用cdn加速),前端服务器负责控制页面引用,跳转,调用后端的接口,后端服务器使用tomcat。
(这里需要使用一些前端工程化的框架比如nodejs,react,router,react,rex,webpack)
2.发现bug,可以快速定位是谁的问题,不会出现互相踢皮球的现象。
页面逻辑,跳转错误,浏览器兼容性问题,脚本错误,页面样式等问题,全部由前端工程师来负责。
接口数据出错,数据没有提交成功,应答超时等问题,全部由后端工程师来解决。
双方互不干扰,前端与后端是相亲相爱的一家人。
3.在大并发情况下,我可以同时水平扩展前后端服务器,比如淘宝的一个首页就需要2000台前端服务器做集群来抗住日均多少亿+的日均pv。
(去参加阿里的技术峰会,听他们说他们的web容器都是自己写的,就算他单实例抗10万http并发,2000台是2亿http并发,并且他们还可以根据预知洪峰来无限拓展,很恐怖,就一个首页。。。)
4.减少后端服务器的并发压力,除了接口以外的其他所有http请求全部转移到前端nginx上。
5.即使后端服务暂时超时或者宕机了,前端页面也会正常访问,只不过数据刷不出来而已。
6.也许你也需要有微信相关的轻应用,那样你的接口完全可以共用,如果也有app相关的服务,那么只要通过一些代码重构,也可以大量复用接口,提升效率。
7.页面显示的东西再多也不怕,因为是异步加载。