JSP作为 View 技术?

标签 jsp servlets web-container

我对 JSP 作为一种 View 技术有些怀疑。据我了解,JSP 最终会转换为 Servlet(如果我阅读了正确的文档,则通过 Web 容器)。

基于此我有以下问题:

  1. 如果JSP转换成Servlet,那它怎么会是 View 技术呢?

  2. 是否可以使用普通 Servlet 编写 GUI 元素(如按钮等)?就我个人而言,我还没有看到任何具有 GUI 元素的 Servlet 代码,那么 JSP(具有 GUI 元素)如何转换为 Servlet(这些 GUI 元素被转换到哪里?)。

谁能帮我理解这个?我一直保留着这个疑问,在网上搜索也未能解开。

最佳答案

JSP 是一种模板(或 View )技术。

JSP 文件在运行时编译为 Servlet 类,该类将 JSP 文件的内容返回到 HTTPServletResponse的作家。这是获得以下结果的便捷方法:

response.getWriter().println("<html>"); response.getWriter().println("<head>"); response.getWriter().println("<title>foobar</title>");

等等。除了嵌入 JSP 文件内的可选 Java 代码之外。所以如果你愿意的话,它有点像 Java 的 PHP 风格。

如果您工作时不小心将 Java 代码添加到 HTML 中,那么这并不是 super 干净的 MVC 分离。

您可以像我上面写的那样在纯 Servlet 中输出 GUI 元素(或者使用更优雅的代码)。不过,JSP 渲染器是一种更简洁的 MVC 方法。

参见:Java Server Pages at Wikipedia

关于JSP作为 View 技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38531375/

相关文章:

java - 从我的服务器调用另一台服务器的JSP

java - 为什么一个web容器可以管理一个servlet?

java - Web 容器如何处理传入请求并映射到已部署的 Web 应用程序 war

java - 在 JSP 中,path 和 value 属性在 input 标记中有什么作用,表单前缀如何影响它们?

java - 如何使 Tomcat 7 类的实例保持 Activity 状态

java - JSP/Servlet 属性验证

APACHE-TOMCAT 谁能详细说明哪一个是网络服务器和网络容器?

java - 使用 JSP 和 JDBC 在网站上注册后将新用户添加到数据库

Spring MVC - REST 我应该选择什么前端技术?

java - 如何获取Struts 2标签中复选框的选中值<s :checkbox> into action class