当前位置: 首页 > 后端技术 > Java

超详细的Servlet实战教程,10分钟带你了解什么是servlet

时间:2023-04-01 14:50:13 Java

Servlet?Servlet是ServerApplet的缩写,翻译过来就是服务程序。嗯,可能你还不明白这么多,简单来说,这个servlet就是运行在服务器上,处理服务器请求的一个小程序。再者,我们知道一般的网页程序都是通过我们的浏览器访问来实现的。在这个过程中,我们的浏览器发出访问请求,服务器端接收到请求,对浏览器的请求进行相应的处理。这就是我们熟悉的B/S模型(浏览器-服务器模型)。servlet是处理请求的组件,运行在支持Java的应用服务器中。JavaServlet可以使用所有的JavaAPI,Java能做的,Servlet也能做。动力节点的Servlet教程讲解了Servlet技术的整体框架,并附有实例演示。需要Java基础。servlet学习资料点击以下链接:Servlet实战视频教程https://www.bilibili.com/video..servlet资料下载http://www.bjpowernode.com/?s...Servlet只是一个替代古老的CGI技术。直接使用Servlet开发还是很麻烦的,所以后来Java升级了Servlet,推出了JSP技术。JSP只是给Servlet加了一层壳,JSP编译后仍然是Servlet。Servlet的开发过程从狭义上讲,servlet是Java语言实现的一个类,所以我们需要根据这个类进行扩展和开发。开发过程如下:写一个java类,继承HttpServlet类,重写HttpServlet类的doGet方法和doPost方法配置web.xml文件,或者使用注解配置servlet。#Configuretheservlet你一定在想,如果我写了几个servlet,但是当前端发送一个请求时,请求会发送给哪个servlet呢?当我输入某个地址时,哪个servlet实际响应?这时候servlet的配置就显得尤为重要了。servlet的配置指定使用哪个servlet来处理前端请求。配置servlet有两种方式,一种是使用web.xml文件配置,另一种是使用注解配置。下面详细解释一下这两种配置方式。使用web.xml文件配置注意servlet的配置内容要写在webapp里面MyServletcn.roobtyan.servlet.FirstServletMyServlet/first当你访问/first时,服务器自然会将请求交给MyServlet处理。使用@注解进行配置新版servlet支持使用注解进行配置,大大简化了开发。注解配置如下:@WebServlet(name="LoginServlet",urlPatterns={"/login"})publicclassLoginServletextendsHttpServlet{}然后,当你访问/login时,服务端也会将处理交给LoginServlet向上。这不是很酷吗?(-)其实注解的作用和web.xml是一样的,一般推荐使用注解进行开发,非常简单,可读性也更高。你一定很好奇,如下:/firstand@WebServlet(name="LoginServlet",urlPatterns={"/login"})这里面的url能不能配置的这么精确,用的是模糊匹配的方式,就是我访问某个规则的路径的时候,统一调用一个servlet,当然是可以的。这就涉及到映射路径的问题。Servlet命名Servlet命名可以看出sun命名的特点,比如Applet表示小应用程序;Scriptlet=Script+Applet表示小脚本程序;同理Servlet=Service+Applet表示小服务程序生命周期编辑客户端请求Servlet;将Servlet类加载到内存中;实例化并调用init()方法初始化Servlet;service()(根据请求方法调用doGet()或doPost(),以及doHead()、doPut()、doTrace()、doDelete()、doOptions());破坏()。加载并实例化一个servlet。此操作通常是动态执行的。但是,Server通常会提供一个管理选项,在Server启动时强制加载和初始化特定的Servlet。比较与Applet的相似之处:?它们不是独立的应用程序,也没有main()方法。?它们不是由用户或程序员调用的,而是由另一个应用程序(容器)调用的。?它们都有一个生命周期,包括init()和destroy()方法。差异:?Applet具有良好的图形界面(AWT),与浏览器一起在客户端运行。?Servlet没有图形界面,运行在服务器端。与CGI相比JavaServlet与传统的CGI和其他许多类CGI技术相比,效率更高、使用更方便、功能更强大、可移植性更好、投资更省。在未来的技术发展过程中,Servlet可能会完全取代CGI。在传统的CGI中,每个请求都会启动一个新进程。如果CGI程序本身的执行时间很短,启动进程所需的开销很可能会超过实际执行时间。在Servlet中,每个请求都由轻量级Java线程(而不是重量级操作系统进程)处理。在传统的CGI中,如果对同一个CGI程序有N个并发请求,则CGI程序的代码会被重复加载N次内存;对于Servlet,使用N个线程来处理请求,只需要一份Servlet。班级代码。在性能优化方面,Servlet也比CGI有更多的选择。?便捷的Servlet提供了大量实用例程,例如自动解析和解码HTML表单数据、读取和设置HTTP标头、处理cookie、跟踪会话状态等。?强大的功能在Servlet中,许多任务很难用Servlet完成传统的CGI程序可以轻松完成。例如,Servlets可以直接与Web服务器进行交互,而普通的CGI程序则不能。Servlet还可以在程序之间共享数据,使数据库连接池之类的东西易于实现。?良好的可移植性Servlet是用Java编写的,ServletAPI有完整的标准。因此,为IPlanetEnterpriseServer编写的Servlet无需任何实质性更改即可移植到Apache、MicrosoftIIS或WebStar。几乎所有主要服务器都直接或通过插件支持Servlet。?节省投资个人或小型网站不仅有很多便宜甚至免费的网络服务器可用,而且对于现有的服务器,如果不支持Servlet,往往可以免费增加这部分功能(或者只需要最少的投资)。与JSP相比,很多人不知道JSP和Servlet的区别是如何体现在应用中的。简单的说,SUN最早开发的Servlet,功能比较强大,系统设计先进,但是仍然采用老式的CGI方式输出HTML语句,逐句输出,编写和修改HTML非常不方便.JavaServerPages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术。JSP本质上没有增加Servlet无法实现的功能。但是在JSP中写静态HTML更方便,不再需要使用println语句输出每一行HTML代码。更重要的是,随着内容和外观的分离,页面制作中不同性质的任务可以很容易地分离出来:例如页面设计人员进行HTML设计,同时为servlet程序员插入动态内容留出空间。后来SUN推出了类似于ASP的马赛克JSP,将JSPTAG嵌入到HTML语句中,大大简化和方便了网页的设计和修改。ASP、PHP、JSP等新的网络语言都是嵌入式语言。这就是JSP和Servlet区别的运行原理层面。从网络的三层结构来看JSP和Servlet的区别,一个网络项目至少分为三层:数据层(datalayer)、业务层(businesslayer)、表现层(presentation)层)。当然它可以更复杂。Servlet写业务层很强大,但是写表示层很不方便。JSP主要是为了方便编写表现层而设计的。当然你也可以写业务层。看惯了ASP、PHP、CGI的朋友,往往会不自觉地把表现层和业务层搞混。按照SUN自己的建议,JSP中只应该存放与表现层相关的东西,也就是只存放输出HTML网页的部分。而所有的数据计算、数据分析、数据库连接处理都属于业务层,应该放在JavaBEANS中。通过JSP调用JavaBEANS,实现两层融合。微软不久前推出的DNA技术就是ASP+COM/DCOM技术。完全类似于JSP+BEANS,所有表现层由ASP完成,所有业务层由COM/DCOM完成。集成是通过调用实现的。使用这些组件技术的原因很简单,因为ASP/JSP语言的执行效率非常低。如果有大量的用户点击,纯SCRIPT语言很快就会达到其功能上限,而组件技术可以大大提高功能上限并加快执行速度。速度。另一方面,纯SCRIPT语言将表现层和业务层混在一起,修改起来不方便,代码也不能复用。如果要修改一个地方,往往会涉及十几页代码。如果使用组件技术,只需要修改组件即可。综上所述,Servlet是一个早期不完善的产物。写业务层很好,写表现层就很臭了,两层混在一起。于是推出了JSP+BEAN,表现层用JSP写,业务层用BEAN写。SUN自己的意思是以后用JSP代替Servlet。这就是JSP和Servlet在技术更新上的区别。但是,这并不意味着学习Servlet就没有用。其实应该从Servlet开始,然后是JSP,然后是JSP+BEAN。强调一下,如果你学过JSP,你不会使用JavaBEAN并集成它,就是没学过。大家多花精力在JSP+BEAN上。我们可以看到,ASP+COM和JSP+BEAN在采用组件技术时,都是先编译所有的组件,驻留在内存中,然后快速执行。因此,Servlet/JSP在内存中编译然后执行的速度优势就没有了。相反,ASP+COM+IIS+NT的紧密结合应该有更大的速度优势。而且,ASP+COM+IIS+NT的开发效率很高,虽然BUG很多。那么,为什么要使用JSP+BEAN呢?因为Java真的很有前途。随着操作系统的兴起,应用软件的开发者必须找到通用的开发语言进行开发,Java一统天下的时代即将到来。浅析JSP和Servlet的区别以及JavaWeb开发的发展。随着机器变得越来越快,Java的速度劣势很快就会被克服。