Web第三次作业——servlet1

一、Servlet基础

Servlet全称Sever Applet,是一种使用Java语言来开发动态网站的技术。

Servlet是使用Java Servlet接口(API)运行在Web服务器上的Java程序。与普通Java程序不同的是,它是位于Web服务器内部的服务器端的Java应用程序,可以对Web浏览器或其他HTTP客户端程序发送的请求进行处理。

由于它是基于Java的,几乎可以使用所有的Java API,因此很多Java能做的事,Servlet也能做。其功能很强大。

一个Servlet程序其实就是一个按照Servlet规范编写的Java类。在执行Servlet程序时,也是需要先被编译成字节码文件,然后再被部署到服务器运行的。

二、Servlet容器

在提到Servlet容器时,我们不得不提到的就是Web容器和Web服务器。

Web服务器:通常我们所说的web服务器,其功能其实非常的单一,只能提供http(s)功能,让用户访问静态资源,它们没有办法执行Java代码,没有办法访问数据库。

如果我们想要开发一个动态网站,仅仅只有一个web服务器是没有用的,必须要有编程语言的运行环境和数据库管理系统做支撑。

Web容器:通常情况下,Servlet容器也就是指Web容器,如tomcat。Servlet容器就是Servlet代码的运行环境,它除了实现Servlet规范定义的各种类和接口,为Servlet的运行提供底层支持,还需要管理用户编写的Servlet类。

为什么我们自己编写的Servlet类也需要Servlet容器来管理?

因为我们自己编写的Servlet类没有main()函数,不能独立运行,只能作为一个模块被载入到Servlet容器中,然后由Servlet来实例化并调用其中的方法。

有时候,web容器往往也会自带web服务器模块,提供基本的HTTP服务,因此,我们只需要安装一款web容器就能部署Servlet网站了。因此,有时候web容器也被称作web服务器。

三、Servlet的生命周期

1)加载Servlet。在Web容器启动或客户机第一次请求服务时,容器将加载Servlet类并将其放入到Servlet实例池。

2)初始化Servlet。当Servlet实例化后,容器将调用Servlet对象的init()方法完成Servlet的初始化操作,主要是为了让Servlet在处理请求之前做一些初始化操作。

3)处理请求。容器通过Servlet的service()方法处理客户端请求。在service()方法中,Servlet实例根据不同的HTTP请求类型做出不同的处理,并在处理之后做出相应的响应。

4)处理完成。在web容器关闭时,容器调用Servlet对象的destory()方法对资源进行释放。

因此,访问一个动态网页的过程,就是将对应的Servlet类加载、实例化并调用相关方法的过程。

四、Servlet、GenericServlet 、HttpServlet

Servlet规范的最顶层是一个Servlet接口,所有的Servlet类都直接或间接地实现该接口。

创建Servlet的三种方式:

  1. 实现Servlet接口,重写其全部的方法。

  1. 继承GenericServlet抽象类,重写其service()方法。

  1. 继承HttpServlet抽象类,重写doGet()或doPost()方法。

由于第一种创建的方式非常复杂,因此Servlet内置了两个Servlet的实现类(抽象类)。更准确的来理解就是,GenericServlet是实现了Servlet接口的抽象类,HttpServlet是GenericServlet类的子类。

一般情况下,我们最常用的是通过第三种方式来创建Servlet类。因为,HttpServlet类在GenericServlet类的基础上专门针对HTTP协议进行了处理。省去了我们对HTTP协议分析和处理的过程。

在一个Servlet对象中,最常用的方法是doGet()与doPost()方法,这两个方法分别用于处理HTTP的Get和Post请求。

五、创建Servlet

Servlet的创建方式有两种。

  1. 第一种是创建一个普通的Java类,使这个类继承HttpServlet类,再通过手动配置web.xml文件注册Servlet对象。(特别繁琐)

  1. 此处我们以IDE集成开发工具为例创建Servlet。

a. New -> Dynamic Web project

b.记得给Project name起一个名字,如果下列框框中还有未选择的话,请依次选择。

c.记得要打上勾

d.创建项目成功之后,右键单击项目名。选择New -> Servlet。

e. 为防止出错,下面的包名可以先空着。但是需要给一个类名。然后Next。

f.跳转到一个新窗口之后,点击next。

g.在这里选择需要的方法。

最后,我们就可以成功的创建出一个Servlet类了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值