【问题标题】:JSP as view technology?JSP作为视图技术?
【发布时间】:2016-11-26 15:33:40
【问题描述】:

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

基于此,我有以下问题:

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

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

谁能帮我理解这个?一直有这个疑问,在网上搜了下也没能解开。

【问题讨论】:

标签: jsp servlets web-container


【解决方案1】:

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

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

这种结构对 JSP 非常有用。你可以使用 servlet、hibernate、更多的 GUI 效果、拦截器和很多 JavaScript 框架。

【讨论】:

    【解决方案2】:

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

    JSP 文件在运行时编译为 Servlet 类,将 JSP 文件的内容返回给HTTPServletResponse 的编写者。这是获得以下结果的便捷方式:

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

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

    如果你工作不够小心,将 Java 代码添加到 HTML 中,这不是超级干净的 MVC 分离。

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

    见:Java Server Pages at Wikipedia

    【讨论】:

    • 感谢您的回复。现在我有一个疑问:什么是模板技术?
    • 这是 zoku 显然试图使用的视图技术的另一个名称,目的是让您更好地理解这一点。
    • 非常感谢 BalusC 和 zoku。非常感谢您分享您的知识。非常感谢!
    猜你喜欢
    • 2014-08-04
    • 2012-10-17
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    相关资源
    最近更新 更多