JSP视科技?

JSP as view technology?

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

基于此我有以下问题:

  1. 如果JSP转成Servlet,怎么会是视图技术?

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

谁能帮我理解一下?这个疑惑我一直存着,网上搜也解决不了。

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

JSP-files are compile to Servlet 类 at runtime, which return JSP-files to the HTTPServletResponse's作家。这是获取以下结果的便捷方式:

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

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

如果您工作不够小心并在 HTML.

中添加 Java 代码,则这不是超级干净的 MVC 分离

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

参见:Java Server Pages at Wikipedia

您可以将所有 MVC(模型、视图、控制器)部分写入 JSP。但它没有用处和安全。

如果你想使用 JSP 我建议你使用 Spring MVC, Spring SecurityJSTL 和 CSS 框架(Bootstrap 等)。

该结构对 JSP 非常有用。您可以使用 servlet、hibernate、更多 GUI 效果、拦截器和许多 JavaScript 框架。