JSP作为视图技术?

时间:2016-07-22 16:31:03

标签: jsp servlets web-container

我对JSP作为一种视图技术有一些疑问。据我所知,JSP最终会转换为Servlet(如果我已经阅读了正确的文档,则通过Web容器)。

基于此,我有以下问题:

  1. 如果将JSP转换为Servlet,那么它是一种视图技术呢?

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

  3. 任何人都可以帮我理解这个吗?我一直在怀疑并在网上搜索我无法清除它。

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

您可以将所有MVC(模型,视图,控制器)部分编写到JSP中。但它并没有用,而且安全。

如果你想使用JSP我建议你使用 Spring MVC Spring Security JSTL 和CSS Framework( Bootstrap < / strong>等)。

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