Servlet是什么?是做什么的?
😮 首先,对我们编程者来说,Servlet就是我们写出来的Java类,只是我们需要按照Servlet规定的规范写。
😁 其次,Servlet也是运行在Web服务器端的Java应用程序。
我们可以简化一下运行在Web服务器端的Java应用程序的理解:
我们平常写的Java类,都是需要关键字new来实例化的。
而正是由于Servlet是运行在服务器端,并不需要我们new,不需要导入jar包,只需要在WEB-INF目录里面的web.xml文件里面配置一下就可以运行起来了。
😄 Servlet是用来处理客户端发来的请求的。
Servlet是一种Java编程语言的特殊类,用于处理Web应用程序中的HTTP请求和响应。它是Java Servlet技术的一部分,这是Java EE(Java Platform, Enterprise Edition)规范的一部分,用于构建强大的、可扩展的Web应用程序。Servlet的名字可能会让人觉得有点陌生,但它在Web开发中起着至关重要的作用,为开发者提供了一种有效、灵活和可靠的方式来处理网络请求和生成动态内容。
Web应用程序的基础是HTTP协议,它用于在Web浏览器和Web服务器之间传输数据。当您在浏览器中输入一个URL并按下回车键时,浏览器会向Web服务器发送一个HTTP请求,请求特定的资源,如网页、图像或其他文件。这个请求包含了一些信息,例如请求的URL、HTTP方法(通常是GET或POST)以及一些HTTP头部信息。服务器需要根据这些信息来确定如何响应请求,这就是Servlet发挥作用的地方。
Servlet是一个Java类,它可以接收这个HTTP请求,处理它,并生成一个HTTP响应返回给浏览器。Servlet通常运行在支持Servlet规范的Web服务器上,例如Apache Tomcat或Jetty。当Web服务器接收到HTTP请求时,它会根据请求的URL将请求路由到适当的Servlet。
此外,Servlet还具有可扩展性和平台无关性的优势。因为它们是基于Java编写的,所以可以在不同的操作系统和Web服务器上运行,而无需修改源代码。这为跨平台开发提供了便利,使得开发者能够构建一次,并在不同环境中部署和运行。
Servlet通常与JavaServer Pages(JSP)一起使用,以便将动态生成的内容嵌入到HTML页面中。这种组合使得开发者可以更轻松地创建可维护的Web应用程序,将业务逻辑和用户界面分离开来,提高了代码的可读性和可维护性。
Servlet的运行示例
😁 主要有2步:(代码就不粘了,网上特别多)
- 先写个servlet类
- 然后在web.xml文件里面配置一下
😮 主要介绍一下web.xml文件里面的配置代码:
<servlet> <servlet-name>起个名称</servlet-name> <servlet-class>xxx.xxx.xxx.xxx(这是你的Servlet文件路径)</servlet-class> </servlet> <servlet-mapping> <servlet-name>起个名称</servlet-name> <url-pattern>/xxx/xxx(这是你回头在浏览器里面访问Servlet文件的路径)</url-pattern> </servlet-mapping>
:这是Servlet配置的开始标签。
:这是Servlet的名称,您可以为Servlet指定一个唯一的名称,以便在其他地方引用它。
:这是指定Servlet类的完全限定类名(包括包路径)。它告诉Web容器在需要时实例化哪个Java类来处理HTTP请求。
:这是Servlet映射配置的开始标签。
:与上面的
匹配,这告诉Web容器将哪个Servlet与URL模式关联起来。
:这是URL模式,它指定了客户端浏览器将如何访问Servlet。在浏览器中输入这个URL模式将触发与之关联的Servlet的处理。
Servlet的的生命周期
🙋问题:如何让servlet在服务器加载时就执行?
– 在WEB-INF里,添加标签:(里面数字越低,优先级越高)
<load-on-startUp>2</load-on-startUp>
Servlet 的三种创建方式
- 实现javax.servlet.Servlet接口
- 继承javax.servlet.GenericServlet(适配器模式)
– 需要重写service()函数
- ⭐继承HttpServlet(模板方法设计模式)
– 一般只需要重写doGet()、doPost()函数
👨🎓解释:第三种方法继承了很多类,使用起来非常方便,是平常使用最多的方法
Servlet 进阶知识
Servlet线程安全:不写全局变量,写局部变量
ServletContext对象,类似于application的概念:
1、域对象,整个应用只有一个ServletContext对象,可以使多个servlet共享数据(数据存储为map集合)
2、获取全局配置信息
3、获取资源路径(根据资源的名称获取其路径)
Servlet请求的转发。可以实现把servlet请求转发给另外一个servlet线程。