Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
servlet、JSP、Java?_Java_Jsp_Servlets - Fatal编程技术网

servlet、JSP、Java?

servlet、JSP、Java?,java,jsp,servlets,Java,Jsp,Servlets,我对一些术语很困惑,我知道Java用于编写一些“常用的可执行”程序。但是我发现你可以用java做servlet,然后听说了JSP 我不确定servlet和JSP的区别。。我不明白这个想法,我认为它像PHP或类似的东西 关于这一点,您是否有过有组织的参考资料(或想法来解释“普通”Java向这种技术的过渡) 谢谢。简单地说,JSP是一种通过在模板中嵌入Java来构建servlet的方法。servlet是Java,嗯,在Web应用程序的特殊环境中运行的程序。正如您所期望的那样,它们接收并处理Web请求

我对一些术语很困惑,我知道Java用于编写一些“常用的可执行”程序。但是我发现你可以用java做servlet,然后听说了JSP

我不确定servlet和JSP的区别。。我不明白这个想法,我认为它像PHP或类似的东西

关于这一点,您是否有过有组织的参考资料(或想法来解释“普通”Java向这种技术的过渡)


谢谢。

简单地说,JSP是一种通过在模板中嵌入Java来构建servlet的方法。

servlet是Java,嗯,在Web应用程序的特殊环境中运行的程序。正如您所期望的那样,它们接收并处理Web请求。非常简单的Java代码加上一些约定。servlet具有挖掘请求参数的方法,并且可以将打印机输出流连接到最终将返回到用户浏览器的输出流

JSP是Java服务器页面。这是HTML页面和一种预处理器。在常见的HTML标记中,预处理器评估一种模板/标记语言。本质上,您可以编写HTML页面,但可以包含Java代码。“预处理器”将JSP转换为servlet;HTML标记及其内容成为servlet代码中的字符串。既然您提到了PHP,是的,JSP看起来大致上就像(一些)混入HTML的PHP代码

JSP是创建具有活动Java内容的网页的一种非常简单的方法,大致相当于Microsoft的ASP。然而,大多数Java社区都同意JSP混合HTML标记和代码的方式是一种令人憎恶的方式,这会导致非常不干净的应用程序,也不允许Web设计师和程序员之间进行专门化。这和“真正的”程序员喜欢抨击PHP的不雅之处是一样的

因此,JSP大多已经失宠,被其他混合Web内容和代码的解决方案所取代。行业中最著名/最成功的是“行业标准”和。然而,很多人觉得这些也非常复杂,因此有太多不同的问题


我提到的任何关键词都会引导你找到其他信息链接。在中可以找到详尽完整的信息,但我不建议将其作为介绍阅读。它是可怕的沉重,详细和深远的。相反,看看一些现代的第三方,首选开源框架,我认为这不会太痛苦。我个人是这样认为的,但这是众多建议中的一个,我对发布有效建议的备选方案知之甚少。

在过去,有小程序,它们是在客户端浏览器中运行的应用程序,而与之相反的是servlet,它们是在基于java的web服务器(容器)中运行的应用程序

servlet可以访问信息,将信息传回浏览器,并从cookie和头等资源获取信息

但是,许多人都熟悉ASP和PHP,编写servlet可能更难,因此为了使框架能够抽象出来并使web开发更容易,我们使用了JSP(Java服务器页面)。这些将编译成servlet,这只是创建web页面的一种更简单的方法

这是一个简化的解释,因此我跳过了一些部分,例如讨论如何使用模板,但是您可以在这里通过查看JSP生命周期了解更多信息:


JSP页面有时会受到一些限制,迫使您使用servlet,例如JSP页面不能返回二进制数据,因此如果您想返回图像或PDF,那么servlet是您唯一的选择。

servlet是在servlet/JSP应用程序引擎(如Tomcat、Jetty等)中运行的HTTP侦听器

JSP是编译成servlet的模板。它们允许您以类似标记的模板表示法编写HTML生成servlet,从而实现动态行为。

servlet API是一组Java接口(“契约”),允许您编写处理来自浏览器的单个web请求并生成响应的小代码片段。这通常是一个网页,但也可能是生成的图像或声音文件

基本上,作为一名servlet程序员,您不需要关心的不仅仅是“我应该生成什么作为对该请求的响应”。周围的环境处理所有其余的事务,比如监听端口上的请求、记录请求信息、保存活动会话以便用户不会注意到服务器已重新启动等等

在这样的servlet中,响应是以代码生成的,并且

out.println("<li>" + name + ": " + address +"</li>");
out.println(“
  • ”+name+”:“+address+”
  • ”);
    很快就会变得乏味。因此JSP被发明出来,允许您说

    <li><%= name %>: <%= address%></li>
    
  • 取而代之的是以HTML为主的页面,但其中包含一些代码


    经验表明,HTML框架和Java数据表示应该分开,因为HTML和Java在同一个文件中的混合使得维护变得困难。

    servlet和JSP与PHP一样,用于创建动态HTML页面,但使用Java语言。在Java世界中,首先我们有servlet。Servlet是实现某些接口的Java类。然后,例如,让我们假设您希望servlet输出如下HTML页面:

    <html>
    <head></head>
    <body>current time</body>
    </html>
    
    正如您所看到的,与PHP相比,这非常冗长且不可维护。这就是JSP诞生的原因。您可以使用以下代码在JSP中实现相同的功能:

    <html>
    <head></head>
    <body><%= new Date() %></body>
    </html>
    
    
    
    这就不那么冗长了,可读性更强了,HTML作者也更熟悉它

    现在,为了服务JSP和Servlet,就像在Apache+Mod PHP中运行PHP一样,您需要一种称为Servlet容器的特殊服务器。一个流行的开源Servlet容器是Tomcat:Tomcat.apache.org


    如果您有任何其他问题,请告诉我。

    这在技术上是正确的,但“最佳实践”并非如此
    <html>
    <head></head>
    <body><%= new Date() %></body>
    </html>