Javaweb的初级(Servlet接口)

本文介绍了Servlet的基础知识,包括Servlet概述、HttpServlet类、Servlet的多重映射以及ServletConfig和ServletContext接口。Servlet是Java编写的服务器端程序,主要处理HTTP请求。HttpServlet是常用的Servlet实现类,通常直接重写doGet和doPost方法。此外,文章还讲解了Servlet的生命周期、Servlet的多种映射方式以及ServletConfig和ServletContext在配置和共享数据中的应用。
摘要由CSDN通过智能技术生成

一、学习目标
1.Servlet概述
2.HttpServlet类
3.实现Servlet的多重映射
4.ServletConfig和ServletContext接口
二、重点知识
1.Servlet概述
Servlet是使用Java语言编写的运行在服务器端的程序。狭义的Servlet 是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者,Servlet 主要田干从理交白湍传来的HTTP 请求,并返回一个响应,它能够处理的请求有doGet()和 doPost()等方法。
Servlet 由 Servlet 容器提供,所谓的 Servlet容器是指提供了 Servlet功能的服务器中(这里指Tomcat ),Servlet容器将 Servlet 动态地加载到服务器上。与HTTP 协议相关的Servlet使用HTTP请求和HTTP响应与客户端进行交互。因此,Servlet容器支持所有HTTP协议的请求和响应。Servlet 应用程序的体系结构如图1-1所示:
图1-1 Servlet应用程序的体系结构
在这里插入图片描述
在图1-1中,Servlet 的请求首先会被 HTTP 服务器(如Apache)接收,HTTP服务器只负责静态HTML 页面的解析,对于 Servlet的请求转交给Servlet容器,Servlet 容器会根据web.xml文件中的映射关系,调用相应的 Servlet, Servlet将处理的结果返回给 Servlet 容器,并通过HTTP服务器将响应传输给客户端。
1.2 Servlet技术具有如下特点:
(1)方便:提供了大量的实用工具例程,如处理很难完成的HTML表单数据、读取和设置HTTP头,以及处理Cookie和跟踪会话等。
(2)跨平台:Servlet用Java类编写,可以在不同操作系统平台和不同应用服务平台下运行。
(3)灵活性和可扩展性:采用Servlet开发的Web应用程序,由于Java类的继承性和构造函数等特点,使得应用灵活,可随意扩展。
除了上述几个点外,Servlet还具有功能强大、能够在各个程序之间共享数据、安全性强等特点。
1.3 Servlet的生命周期
生命周期:自然界人从出生到最终走向西方极乐世界,这个周期过程就是人的生命周期,其实servlet的生命周期和人的一样,从servlet对象被创建,经过使用servlet对象,到最终servlet对象被销毁,整个过程就是servlet的生命周期。

与生命周期相关的三个方法
初始化阶段 init(ServletConfig config),初始化方法:首次访问这个Servlet,servlet对象会被创建,执行初始化方法,执行一次
运行阶段 service(ServletRequest req, ServletResponse res),服务方法:每次访问servlet时,服务方法都会被执行,执行多次
销毁阶段 destroy() ,销毁方法:在服务器正常关闭时,会执行销毁方法,执行一次

2.HttpServlet类
在开发中,通常浏览器访问web服务器端的资源,是带有协议的访问,比如说http协议、https协议等,所以在创建servlet时,需要使用带有协议的servlet,在创建servlet时,通常用继承HttpServlet的方式来实现。
在HttpServlet里面重写service方法时,因为在service方法里面,最终调用doGet或者doPost方法,所以在重写服务方法时,一般情况下不会重写service方法,而是直接重写doGet和doPost方法:
在客户端发送get请求,在服务器端就用doGet方法接收
在客户端发送Post请求,在服务器端就用doPost方法来接收
3.实现Servlet的多重映射
3.1Servlet的多重映射:一个Servlet,可以对应多个访问路径。
比如:一个servlet对应的访问路径:/test02 或者 /test03

</servlet-mapping>
		   <servlet-mapping>
		    <servlet-name>TestServlet01</servlet-name>
		    <url-pattern>/test02</url-pattern>
		  </servlet-mapping>
		   <servlet-mapping>
		    <servlet-name>TestServlet01</servlet-name>
		    <url-pattern>/test03</url-pattern>
		  </servlet-mapping>

3.2 Servlet的映射路径可以使用通配符
servlet的映射路径有三种方式:
(1)完全目录匹配: 比如 /hello
(2) 目录匹配: 比如 /abc/* 或者 /*
(3)扩展名匹配: .do ,.action 注意 /*.do这种写法是错误的。
优先级:完全目录匹配>目录匹配>扩展名匹配
3.3 缺省Servlet
什么是缺省Servlet:
它的映射路径 “/” ,代表这是一个缺省的servlet.
缺省的servelt作用:
处理请求的资源找不到的问题(404 代表请求的资源找不到)
4.ServletConfig接口
针对Servlet技术的开发,SUN公司提供了一系列接口和类,其中最重要的接口是javax.servlet.Servlet。
在Servlet接口中定义了5个抽象方法,具体如图表示:

方法声明 功能描述
void init(ServletConfig config) 容器在创建好 Servlet 对象后,就会调用此方法。该方法接收一个ServletConfia类型的参数,Servlet容器通过这个参数向Servlet传递初始化配置信息
ServletConfig getServletConfig() 用于获取 Servlet对象的配置信息,返回Servlet的 ServletConfig对象
String getServletInfo() 返回一个字符串,其中包含关于 Servlet的信息,例如,作者、版本和版权等信息
void service(ServletRequest request,ServletResponse response) 负责响应用户的请求,当容器接收到客户端访问Servlet对象的请求时,就会调用此方法。容器会构造一个表示客户端请求信息的 ServletReauest对象和一个用于响应客户端的 ServletResponse 对象作为参数传递给service()方法。在service()方法中,可以通过ServletReauest对象得到客户端的相关信息和请求信息,在对请求进行处理后,调用ServletResponse对象的方法设置响应信息
viod destroy() 负责释放Servlet 对象占用的资源。当服务器关闭或者 Servlet 对象被移除时,Servlet对象会被销毁,容器会调用此方法

在表中列举了Servlet 接口中的5个方法,其中init()、service()和 destroy()这3个方法可以表现 Servlet 的生命周期,它们会在某个特定的时刻被调用。另外,getServletlnfo()方法用于返回 Servlet的相关信息。getServletConfig()方法用于返回ServletConfig对象,该对象包含Servlet 的初始化信息。需要注意的是,表中提及的 Servlet容器指的是 Web 服务器。
针对 Servlet的接口,SUN公司提供了两个默认的接口实现类:GenericServlet 和HttpServlet。GenericServlet是一个抽象类,该类为Servlet 接口提供了部分实现,它并没有实现HTTP 请求处理。HttpServlet是 GenericServlet 的子类,它继承了GenericServlet 的所有方法,并且为HTTP请求中的POST、GET 等类型提供了具体的操作方法。
通常情况下,编写的 Servlet 类都继承自HttpServlet,在开发中使用的具体的 Servlet 对象就是 HttpServlet 对象。 HttpServlet 的常用方法及其说明如下表所示:

方法声明 功能描述
protected void doGet(HttpServletRequest req,HttpServletResponse resp) 用于处理 GET类型的HTTP请求的方法
protected void doPost(HttpServletRequestreq, HttpServletResponse resp) 用于处理 POST 类型的HTTP请求的方法
protected void doPut(HttpServletRequest req,HttpServletResponse resp) 用于处理PUT类型的HTTP 请求的方法

4.ServletConfig和ServletContext接口
4.1 什么是ServletConfig?
它是servlet的配置对象,作用就是获取与servlet的初始化参数。
4.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值