J2EE知识点-Servlet基础

Servlet基础

Servlet简介

Sun公司在其API(应用程序接口)中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下两个步骤:

1.编写好一个Java类,实现servlet接口。

2,把开发好的Java类部署到web服务器中。

Servlet的API

Servlet的框架是由两个Java包组成的:javax.servlet和javax.servlet.http。在javax.servlet包中定义了所有的Servlet类的都必须实现和扩展的通用接口和类。在javax.servlet.http包中定义了采用HTTP协议通信的HttpServlet类。

Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口。在Servlet接口中定义了5个方法,其中3个方法代表了Servlet的生命周期:
1)init方法,负责初始化Servlet对象

2)service方法,负责响应客户的请求

 3)destroy方法,但Servlet对象退出生命周期,负责释放占用的资源

Servlet的运行过程(生命周期) 

1.浏览器根据用户的请求生成http请求消息,并将其发送给web容器。

2.web容器检查内存中是否存在负责处理当前请求的Servlet程序的实例对象,若不存在,则加载和创建该Servlet对象。 

3.Web容器创建针对该次访问的请求对象(request)和响应对象(response)。请求对象中包含了HTTP的请求信息,从它里面可以获得HTTP请求信息的内容。响应对象用于封装将要回送给浏览器的HTTP响应消息,响应对象中的初始内容为空,但是以后可以调用它的各种方法来生产HTTP响应消息的各个部分。

4.Web容器调用Servlet的service(ServletRequest,request,ServletResponse,response)方法,并将请求对象和响应对象传递给该方法。

5.Servlet对象的service方法从请求对象中读取请求消息,并向响应对象中写入响应头和响应体信息。

6.Service方法执行完毕后返回 。

 

7.web容器从响应对象中读取响应信息。

8.web容器将响应信息发送给浏览器处理显示,一次请求响应过程完全结束,request和response变成垃圾,等待垃圾收集器将其彻底从内存中清除。

Servlet引擎调用Servlet程序 

1.接收到访问某个Servlet的HTTP请求后,Servlet引擎首先检查是否已经装载并创建了该Servlet的实例对象。如果已经装载并创建了给Servlet的实例对象,Servlet引擎则直接执行第4步,否则执行第2步。

2,装载并创建Servlet的一个实例对象。

3.调用Servlet实例对象的init()方法,以便执行Servlet的一些初始化工作。

4.创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法,并将请求和响应对象作为参数传递出去。

5.在一个web应用程序被停止或重新启动之前,Servlet引擎将卸载其中运行的Servlet。在卸载Servlet之前,Servlet引擎将调用Servlet的destrory()方法,以便在这个方法中执行Servlet的一些清尾工作,例如释放一些被该Servlet占用的资源。

Servlet的特别说明

1.在servlet的整个生命周期内,Servlet只被初始化一次,而对一个Servlet的每次访问请求都将导致servlet引擎调用一次servlet的service()方法,而init()方法只被调用一次,service()方法可能被调用多次。

2.Servlet是一个供其他Java程序(Servlet引擎)调用的Java类,它不能独立运行。

3.Servlet引擎是一种容器程序,它负责管理和维护所有Servlet对象的生命周期,因此也被称为Servlet容器或web容器

4.Servlet的运行完全由Servlet引擎来控制和调度。

HttpServlet类中的doXXX方法

1.doGet:用于处理GET请求

2.doPost:用于处理POST请求

3.doHead:用于处理Head请求

4.doPut:用于处理PUT请求

5.doDelete:用于处理DELETE请求

6.doOptions:用于处理OPTIONS请求

7.doTrace:用于处理TRACE请求

注意:HttpServlet中的doXXX方法分别用于对客户端的相应请求方式进行处理,对某种多几种请求方式处理,只须覆盖相应的doXXX方法,而不需要覆盖service方法,在一般情况下Servlet只须处理GET和POST请求方式

eclipse中配置虚拟目录映射
  <!-- 配置servlet -->
    
  <servlet>
  	<servlet-name>RequestDemo4</servlet-name>
  	<servlet-class>wyr.Demo4</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>RequestDemo4</servlet-name>
  	<url-pattern>/requestDemo4</url-pattern>
  </servlet-mapping>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值