大家好,关于springboot和tomcat的区别很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于Springboot为什么不建议jsp的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
本文目录
Spring MVC过时了吗
SpringMVC当然没有过时,目前很多企业的项目还都是基于SpringMVC构建的。
题主可能并没有真正理解SpringMVC的精髓。最早的时候,我们使用SpringMVC的时候可能是前后端耦合在一起的。通过Controller的ModelAndView返回一个jsp的页面。但是现在这种方式基本已经被淘汰。现在的SpringMVC框架都是以Rest风格编写Controller层,也就是我们Controller层不再是返回Jsp的页面,而是返回Json格式的数据。而前端可以选择任何目前市面上流行的框架,例如:React、vue、小程序、H5等。所以,SpringMVC跟前后端分离没有关系。如果说你还按照早期的ModeAndView开发,那你真的落伍了。
但是,随着微服务框架SpringBoot的出现以及大规模流行,SpringMVC的使用程度在降低,这主要是SpringMVC的配置太复杂。SpringMVC中有大量的xml文件需要编写,而且编写起来很复杂。当然这些xml文件编写是基本一次性的,只要第一次编写完成,后续的业务开发基本不用再改变。而SpringBoot基本完全抛弃了xml文件的配置,所有的配置都是框架本身集成好的,只需要按照特定的约定去做就好。当然在集成有些中间件的时候,我们只需要编写相应的Java代码即可,所以,SpringBoot的使用越来越广泛,企业的很多新项目都是基于SpringBoot去开发。
不管是SpringMVC还是SpringBoot,只要精通一种框架,剩下的框架自然而然的就懂了。框架本身就是为了减少程序员的工作而设计的,无需过多的纠结过不过时的问题,拿来即用是我们最终的目标。springboot和tomcat的区别
springboot释义:
春天的引导
例句:
Spaceboottechnologyinathleticshoesismeanttoputmorespringinyourstep.
将太空靴的技术运用于运动鞋,等于在你的脚底上增加了弹簧。
tomcat释义:
n.公猫;到处找女人鬼混的男子
例句:
Tomcatconnectorconfiguration
Tomcat连接器配置
为什么现在大多数网站是html结尾,很少见以jsp结尾
这个问题其实很好,其实,如果你弄明白了为啥,能帮助你更好的理解web。
谈为什么之前,我们先简单说一http工作的原理。当你在浏览器中输入网址的时候,实际上相当于输入了一条命令,格式如下。
协议://主机名[:端口]+参数
这个命令的意思是。用标注的协议所指定的方法,去链接主机的相应端口,参数是参数。
比如,当你输入http://www.google.com/的时候,实际是告诉浏览器用http的get方法,去访问www.google.com主机的80端口,参数是"/",也就是get/
这个时候,在googl的服务器上,必须有一个程序来随时监听客户端发来的消息,然后给出相应的返回值。比如,当接受到get/时,应该返回什么。
所以,在以前还没有动态网站的时候,web服务程序(比如IIS)会把参数和指定目录(网站根目录)下的文件一一对应起来。比如get/会直接返回根目录下的index.php
同理,当你访问/hello.html的时候,实际上是把字符串"/hello.html"传送到了服务器web程序,web程序会根据提前设定的网站根目录去寻找hello.html文件,并把这个文件返回给客户端。
这样通过文件夹组织结构,就形成了静态网站。但是后来我们需要用程序语言来处理复杂的逻辑怎么办。最初的解决办法就是在html文件中插入特殊的标签,并且保存成相应的扩展名。
比如我在html中插入java语句,并保存成hello.jsp,放在网站根目录下。
这个时候,当你get/hello.jsp的时候,tomcat程序会自动调用java来处理<%%>中间的语句,并且把整个.jsp转换成html,再返回到客户端。
这就是.jsp.php.asp这类网站的工作原理。
但是,你一定要明白一个事实,web服务程序返回相应的.jsp.html.php文件,一定要这样做吗。
当然不是,我前面说了,返回文件实际上是人为定义去做的。作为一个程序,你可以return任何东西。
我可以任意设计程序,让程序返回任何我想要的东西。
比如,我可以让get"/hello.html"返回字符串"helloworld",而这个时候我的服务器上根本不存在hello.html这个文件。
基于这样的原因,我们实际上可以用程序任意设计url,这个就叫做路由。而告诉程序某一个路由返回什么的过程,就叫路由绑定。
现代的web程序构架,你是根本无法直接访问html文件的,而是必须把路由绑定到某一个视图上去。因为这样可以把原来嵌入到html的java代码分离出来,写到特定的类中去,而不用混写。这样逻辑更清醒,维护更方便。这样的就叫做mvc.
以著名的springMVC举例,我们看一个小程序。
@RequestMapping("/hello"),就是路由绑定,他代表当你访问/hello时,会执行hello方法,而hello方法的返回值是字符串"hello",所以客户端会收到hello这个字符串。
不过,当你正确配置springMVC的时候,程序会自动在/WEB-INF/jsp/中寻找hello.jsp,然后返回。(注意,这得JSP和前面例子中的jsp有很大不同,详细请学习springMVC)。
这时你应该明白,如何返回完全是我自定义的。我完全可以修改程序@RequestMapping("/hello.jsp"),这样就像传统一样,通过/hello.jsp来返回hello.jsp,我也可以@RequestMapping("/a.jsp"),当你方向/a.jsp时,返回hello.jsp,我甚至可以令/hello.html返回hello.jsp.
所以,你现在应该明白为啥现在基本上看不到.jsp了吧。
第一现代符合MVC构架的网站,网址中的/x/xxx.xxx已经不代表真实目录和真实文件了。所以逻辑上没有必要出现.jsp。
第二现代MVC构架的网站,网址都是自己设计的,使用/hello.jsp和使用/hello是没有区别的,那为什么不用更短的。hello.jsp没有必要出现。
第三/hello.jsp仅仅是传递的一个字符串参数,实际上我可以用任何程序来处理。比如我可以很容易用python写出结尾是.jsp的网站。/hello.jsp可以完全是一个python网站。所以网址中的扩展名是没有必要存在的。你看到网站不是.jsp,但是他的后台可能仍然是java。
现代大多数网站,不管用什么语言,大多遵循了MVC的结构。所以,你基本上越来越看不到以n.jsp是啊
springboot中查询的数据怎么在jsp显示
可以使用ajax直接访问后台的restcontroller,或者使用普通的controller去跳转到jsp里面。
关于springboot和tomcat的区别,Springboot为什么不建议jsp的介绍到此结束,希望对大家有所帮助。