Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果我使用spring,JSP会转换为servlet代码吗?_Java_Spring Mvc - Fatal编程技术网

Java 如果我使用spring,JSP会转换为servlet代码吗?

Java 如果我使用spring,JSP会转换为servlet代码吗?,java,spring-mvc,Java,Spring Mvc,我在SpringMVC中使用JSP作为视图解析器。这些页面会在tomcat中转换为servlet吗 如果是,是否同样适用于其他视图,如Velocity、Thymeleaf等。?请解释它是如何工作的。是的,JSP总是转换为servlet,这就是JSP文件的工作方式 在其他视图/模板引擎中,情况并不总是如此。例如,Velocity是一个基于Java的模板引擎,Velocity模板是经过解析的,但它并不依赖于拥有一个servlet引擎 关于Spring,它有许多不同技术的视图解析器,因此您有一个抽象层

我在SpringMVC中使用JSP作为视图解析器。这些页面会在tomcat中转换为servlet吗


如果是,是否同样适用于其他视图,如Velocity、Thymeleaf等。?请解释它是如何工作的。

是的,JSP总是转换为servlet,这就是JSP文件的工作方式

在其他视图/模板引擎中,情况并不总是如此。例如,Velocity是一个基于Java的模板引擎,Velocity模板是经过解析的,但它并不依赖于拥有一个servlet引擎


关于Spring,它有许多不同技术的视图解析器,因此您有一个抽象层,不必担心视图如何在内部转换以呈现您的模型。

是的,JSP总是转换为servlet,这就是JSP文件的工作方式

在其他视图/模板引擎中,情况并不总是如此。例如,Velocity是一个基于Java的模板引擎,Velocity模板是经过解析的,但它并不依赖于拥有一个servlet引擎

关于Spring,它有许多不同技术的视图解析器,因此您有一个抽象层,不必担心视图如何在内部转换以呈现您的模型

如果我使用spring,JSP会转换为servlet代码吗

对。如果您使用JSP anywhere*,它将转换为Servlet

* - For Java EE Applications which uses Servlet containers.
我不关心
速度、胸腺叶等

如果我使用spring,JSP会转换为servlet代码吗

对。如果您使用JSP anywhere*,它将转换为Servlet

* - For Java EE Applications which uses Servlet containers.

我不关心Velocity、ThymalLeaf等。
JSP、Velocity、Freemarker等与Spring MVC有关的都是模板库。例如,用户向指定的URL发出HTTP请求。此URL映射到Spring控制器。控制器将构建模型的实例,并返回视图和模型。然后Spring将使用视图(即jsp文件)并使用模型将其转换为HTML。用户获得结果HTML

这里有更多关于SpringMVC和模板的信息
关于Spring MVC的JSP、Velocity、Freemarker等都是模板库。例如,用户向指定的URL发出HTTP请求。此URL映射到Spring控制器。控制器将构建模型的实例,并返回视图和模型。然后Spring将使用视图(即jsp文件)并使用模型将其转换为HTML。用户获得结果HTML

这里有更多关于SpringMVC和模板的信息

jsp始终转换为servlet,不确定restjsp始终转换为servlet,不确定REST如果其他模板未转换为servlet,则最好使用velocity和team viewer之类的始终模板引擎,对吗?我没有遵循“转换为servlet”的说法?它们只是HTML的模板。Spring将模板转换为HTML。您的用户不应该导航到jsp文件本身。事实上,将模板文件(jsp文件)放在WEB-INF目录下是一种很好的做法,这样它们就不能被导航到并强制用户通过您的控制器。说“Spring将模板转换为HTML”是不正确的。相反,Spring调用模板引擎,以便所选模板引擎能够完成它的工作。对于JSP,此委托将涉及调用
RequestDispatcher.forward()
RequestDispatcher.include()
(取决于配置),这将调用servlet引擎通过编译JSP生成的servlet。性能可能会更好,但取决于您正在执行的操作,性能可能可以忽略不计。在开发方面,我们的团队更喜欢像Freemarker这样的模板框架。首先,它迫使我们将业务逻辑排除在外。使用JSP时,业务逻辑往往会逐渐变得难以解耦。@VijayM编译到servlet类是一次性的成本。模板引擎通常也需要将模板加载并解析为某种内存中的数据结构。如果其他模板未转换为servlet,则最好始终使用velocity和team viewer之类的模板引擎,对吗?我没有遵循“转换为servlet”?它们只是HTML的模板。Spring将模板转换为HTML。您的用户不应该导航到jsp文件本身。事实上,将模板文件(jsp文件)放在WEB-INF目录下是一种很好的做法,这样它们就不能被导航到并强制用户通过您的控制器。说“Spring将模板转换为HTML”是不正确的。相反,Spring调用模板引擎,以便所选模板引擎能够完成它的工作。对于JSP,此委托将涉及调用
RequestDispatcher.forward()
RequestDispatcher.include()
(取决于配置),这将调用servlet引擎通过编译JSP生成的servlet。性能可能会更好,但取决于您正在执行的操作,性能可能可以忽略不计。在开发方面,我们的团队更喜欢像Freemarker这样的模板框架。首先,它迫使我们将业务逻辑排除在外。使用JSP时,业务逻辑往往会逐渐变得难以解耦。@VijayM编译到servlet类是一次性的成本。模板引擎通常也需要将模板加载并解析为某种内存中的数据结构。