我读了很多文章来理解java servlet但是我没有成功。
请您简单介绍一下java servlet(简单易懂)。 像什么是servlet?有什么好处?所有这一切。
我无法理解服务器端编程语言(PHP,ASP)和servlet之间的区别。
答案 0 :(得分:282)
servlet只是一个响应特定类型网络请求的类 - 最常见的是HTTP请求。基本上servlet通常用于实现web应用程序 - 但是也有各种框架在servlet(例如Struts)之上运行,以提供比“这是HTTP请求,写入此HTTP响应”级别更高级别的抽象。提供。
Servlet在 servlet容器中运行,该容器处理网络端(例如解析HTTP请求,连接处理等)。最着名的开源servlet容器之一是Tomcat。
答案 1 :(得分:78)
一个servlet的核心是一个java类;它可以处理HTTP请求。 通常,通过线路读取HTTP请求和响应的内部细节由Tomcat等容器处理。这样做是为了作为服务器端开发人员,您可以专注于如何处理HTTP请求和响应,而不是打扰处理处理网络等的代码。容器将处理诸如将整个事物包装在一起的事情。 HTTP响应对象并将其发送到客户端(比如浏览器)。
现在要问的下一个合乎逻辑的问题是谁决定容器应该做什么?答案是;在Java世界中至少它是由规范引导(注意我没有使用受控词)。例如,Servlet规范(参见资源2)规定了servlet必须能够做什么。因此,如果你可以为规范编写一个实现,恭喜你刚刚创建了一个容器(像Tomcat这样的技术容器也实现了其他规范并且做了一些棘手的事情,比如自定义类加载器等,但是你明白了。)
假设您有一个容器,您的servlet现在是java类,其生命周期将由容器维护,但它们对传入HTTP请求的反应将由您决定。你可以通过在预定义的方法(如init(),doGet(),doPost()等中编写你想做的事来做到这一点。查看资源3。
这是一个有趣的练习。在Resource 3中创建一个简单的servlet,并在其构造函数方法中编写一些System.out.println()语句(是的,你可以有一个servlet的构造函数),init(),doGet(),doPost()方法并运行tomcat中的servlet。请参阅控制台日志和tomcat日志。
希望这会有所帮助,快乐学习。
<强>资源强>
了解HTTP servlet的外观here(Tomcat示例)。
Servlet Specification。
简单Servlet example。
开始阅读book在线/ PDF 它还为您提供了整本书的下载。可能这会有所帮助。 如果你刚刚开始使用servlet,那么阅读这些材料和servlet API是一个好主意。这是一个较慢的学习过程,但更有助于明确基础知识。
答案 2 :(得分:26)
除了上述内容外,还要指出流血的明显......
对于很多人来说,这是非常明显的,但是对于曾经编写过只运行然后结束的应用程序的人来说:servlet大部分时间花在无所事事上......等待发送内容,请求,然后回应它。出于这个原因,servlet有一个生命周期:它是初始化的,然后等待,响应抛出的任何东西,然后被销毁。这意味着它必须由其他东西(框架)创建(后来被销毁),它在自己的线程或进程中运行,除非被要求,否则它什么都不做。而且,通过某种方式或其他方式,必须实施一种机制,使“实体”可以“监听”请求。
我建议阅读线程,进程和套接字会对此有所启发:它与基本的“hello world”应用程序的运行方式完全不同。
可以说“服务器”或“servlet”这个词有点过分。更合理,更简单的名称可能是“响应者”。
答案 3 :(得分:5)
以下链接中有一些有价值的要点。
Servlet技术用于创建驻留在服务器端的Web应用程序,并生成动态网页。
可以通过多种方式描述Servlet,具体取决于具体情况。
答案 4 :(得分:4)
Servlet是服务器端技术,用于在Web应用程序中创建动态网页。实际上,servlet是一个api,它由一组类和接口组成,它们具有一些功能。当我们使用Servlet API时,我们可以使用servlet类和接口的预定义功能。
Servlet的生命周期:
Web容器维护servlet实例的生命周期。
1。已加载Servlet类
2。已创建Servlet实例
3。调用init()方法
4。调用了service()方法
5。调用destroy()方法
当客户端(浏览器)提出请求时,web容器检查servlet是否正在运行,如果是,则调用service()方法并将响应提供给浏览器..
当servlet没有运行时,web容器遵循以下步骤..
<强> 1。 classloader加载servlet类
<强> 2。实例化servlet
第3。初始化servlet
4.调用service()方法
在服务请求web容器之后等待特定时间,在这个时间如果请求到来那么它只调用service()方法,否则它调用destroy()方法..
答案 5 :(得分:3)
什么是Servlet?
Servlet在servlet容器中运行,该容器处理网络端(例如解析HTTP请求,连接处理等)。最着名的开源servlet容器之一是Tomcat。
在请求/响应范例中,Web服务器只能为客户端提供静态页面
请求流程
Container如何知道Servlet客户端请求的内容?
您在此文件中有关于servlet的信息 -
Web应用程序中的每个servlet都应该包含此文件的条目
如何安装&#34;小服务程序吗 *嗯,servlet对象是从library-javax.servlet继承的。*。可以使用Tomcat和Spring来利用这些对象来适应用例。
参考 - 请注意1.5x- https://www.youtube.com/watch?v=tkFRGdUgCsE。这有一个很棒的解释。
答案 6 :(得分:3)
Java Servlet是服务器端Java程序模块,用于处理和回答客户需求并实现servlet接口。它有助于提高Web服务器的实用性,同时可以忽略不计的开销,维护和支持。
servlet作为客户和服务器之间的中介。随着servlet模块在服务器上运行,它们可以获得并响应客户的需求。 servlet的需求和反应对象提供了一种有用的方法来处理HTTP请求并将内容信息发送回客户。
由于servlet与Java方言协调,因此它还具有所有Java重点,例如,高可移动性,阶段自治,安全性和Java数据库可用性。
答案 7 :(得分:1)
Servlet是一个响应HTTP请求并产生HTTP响应的java类......当我们使用HTML创建一个页面时,它将是一个静态页面,所以为了使它成为动态我们使用SERVLET {用简单的话就可以理解 JSP使用代码和HTML标记来克服servlet的使用。
答案 8 :(得分:0)
正如this article所述,Servlet是扩展Java服务器并访问其功能的标准化方法。
每个Servlet都可以看作是一个微型服务器(因此得名),它可以访问以Java代码建模的请求和响应以及其他上下文数据,例如Session。
有了这些,servlet的Java代码就可以与呈现响应所需的任何接口进行交互,包括切换到用于生成HTML视图的JSP页面。
答案 9 :(得分:0)
Servlet是Java类,当网站用户向服务器请求URL时,它们运行某些功能。这些功能可以完成诸如将数据保存到数据库,执行逻辑以及返回加载页面所需的信息(如JSON数据)之类的任务。
大多数Java程序使用main()
方法,该方法在程序运行时执行代码。 Java servlet包含doGet()
和doPost()
方法,它们的作用类似于main()
方法。当用户对映射到该servlet的URL发出GET
或POST
请求时,将执行这些功能。因此,用户可以为GET
请求加载页面,或存储来自POST
请求的数据。
当用户发送GET
或POST
请求时,服务器将读取目录中每个Servlet类顶部的@WebServlet
,以确定要调用的servlet类。例如,假设您有一个ChatBox类,并且顶部有一个:
@WebServlet("/chat")
public class ChatBox extends HttpServlet {
当用户请求/chat
URL时,将执行ChatBox
类。
答案 10 :(得分:-1)
我认为servlet基本上是一个java类,它充当HTTP请求和HTTP响应之间的中间路径.Servlet还用于使您的网页动态化。例如,假设您想要重定向到服务器上的另一个网页,那么您必须使用servlet。另一个重要的事情是servlet可以在localhost和web浏览器上运行。
答案 11 :(得分:-2)
你刚才得到了一个正常的servlet的答案。但是,我想与大家分享一些关于Servlet 3.0的信息
找到的Servlet首先是什么?
servlet是一个由容器管理的Web组件 生成动态内容。 Servlet是编译的Java类 可以动态加载到Java中并由Java运行的字节代码 支持技术的Web服务器或Servlet容器。
Servlet 3.0是对现有Servlet 2.5规范的更新。 Servlet 3.0需要Java平台企业版6的API。 Servlet 3.0专注于可扩展性和Web框架 拔插。 Servlet 3.0为您带来了一些扩展,例如Ease of 开发(EoD),可插拔,异步支持和安全性 增强
易于开发
您可以声明Servlet,Filter,Listeners,Init Params等 可以使用注释
配置所有内容<强>可插入强>
您可以使用web-fragment.xml创建子项目或模块。它 意味着它允许实现可插入的功能要求 独立地
异步支持
Servlet 3.0提供了异步处理的能力 示例:等待资源变为可用,生成 异步响应。
安全性增强
支持身份验证,登录和注销servlet安全性 方法