Servlet学习笔记(一)——Servlet讲解及开发操作

一、Servlet是什么

    Servlet是Java Web三大组件之一(三大组件:Servlet、Filter、Listenter),它属于动态资源。Servlet的作用是处理请求,服务器会把连接收到的请求交给Servlet来处理,Servlet的工作任务是:

  • 接受数据信息
  • 处理请求
  • 完成响应

例如客户端(如浏览器)发出登录请求,或者输入注册请求,这些请求都应该由Servlet来完成处理。Servlet类需要我们自己来编写,每个Servlet类都必须实现javax.servlet.Servlet接口。

servlet结构体系如下:

Servlet对象、ServletConfig对象与Serializable对象是接口对象。Servlet对象和ServletConfig对象定义了Servlet的基本方法和封装了Servlet的相关配置信息。 Serializable对象是java.io中的序列化接口。GenericServlet对象是一个抽象类,它分别实现了上述的3个接口,该对象为Servlet接口和ServletConfig接口提供了部分实现,但它没有对HTTP请求的处理进行实现。而GnericServlet的子类HttpServlet对HTTP请求的处理进行了实现。这个对象为HTTP提供了POST、GET等类型提供了具体的操作方法,所以通常情况下,我们所编写的Servlet对象都是继承于HttpServlet。实际开发中,一般用我们自己定义的xxxServlet类去继承HttpServlet类。原因是HttpServlet是Servlet的实现类,并提供了HTTP请求的处理方法。


二、Servlet的运行过程

    Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:
  ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。
  ②装载并创建该Servlet的一个实例对象。
  ③调用Servlet实例对象的init()方法。
  ④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。

  ⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。


三、Servlet调用图



四、在Eclipse中开发Servlet

    1.打开Eclipse

    2.点击File-->New-->Dynamic Web Project 建立web project工程

    3.导入servlet-api.jar包。(这个包在你的Tomcat文件目录下的lib文件里)

    4.在Java Resources下的src文件下建立一个包,建立一个servlet文件。建立servlet文件的过程如下:

右键点击刚刚建立的包,选择建立Servlet (我这里建立的包是WebStudy包)

  • 然后输入servlet的名字


  • 勾选要重写的方法。一般我们重写doPost 和doGet方法 。点击完成


建立完成之后我们会发现eclipse已经自动为我们生成了以下代码


我们在doGet和doPost方法中写我们的事务。除了doGet和doPost这两个方法 ,这里还要注意@WebServlet这个注解。@WebServlet注解是Servlet 3.0的新特征 ,可以用这个注解,代替用xml配置Servlet。

五、@WebServlet注解 详解

作用:用于将一个类声明为 Servlet
描述:该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet。
属性详解:该注解具有下表给出的一些常用属性(以下所有属性均为可选属性,但是 vlaue 或者 urlPatterns 通常是必需的,且二者不能共存,如果同时指定,通常是忽略 value 的取值)

属性:


使用方法:

方法一:

/注解配置
@WebServlet(
displayName = "MyServlet" , //描述
name = "MyServlet", //servlet名称
urlPatterns = { "/user" }, //url
loadOnStartup = 1, //启动项
initParams = { @WebInitParam(name = "", value = "") }
)//初始化参数

方法二:

@WebServlet({"/MyServlet","/S"})

这么使用浏览器以下连接结果都是一样的:

http://localhost:8080/webStudy/MyServlet 

http://localhost:8080/webStudy/S 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值