近期用到了Servlet,发现这一块的知识记得不清楚了,在此总结下,以便以后查看
Servlet是JavaWeb应用中的最核心的组件。Servlet运行在servlet容器中,能够为各种各样的用户请求提供相应的服务。Servlet可以轻而易举地完成以下任务
1、 动态生成HTML文档
2、 把请求转发给同一个Web应用中的其他Servlet组件
3、 把请求转发给其他Web应用中的Servlet组件
4、 读取客户端的Cookie,以及向客户端写入Cookie
5、 访问其他服务器资源(如数据库或基于Java的应用程序)
Java是面向对象的编程语言。面向对象最基本的思想:1、万物皆对象;2、在一个软件系统中,每个对象都不是孤立的,对象与对象之间的相互协作才能完成特定任务。
Servlet最常用的方法:
1、 请求对象(ServletRequest和HttpServletRequest): Servlet从该对象中获取来自客户端的信息
2、 响应对象(ServletResponse和HttpServletResponse): Servlet通过该对象来生成响应结果
3、 Servlet配置对象(ServletConfig): 当容器初始化一个Servlet对象时,会向Servlet提供一个ServletConfig对象。Servlet通过该对象获取初始化参数信息及ServletContext对象。
4、 Servlet上下文对象(ServletContext):Servlet通过该对象访问容器为当前web应用提供的各种资源
Servlet API主要有两个java包组成:javax.servlet(定义了Servlet接口及相关的通用接口和类) 和javax.servlet.http(定义了与HTTP协议相关的)
Servlet API主要由两个Java包组成:javax.servlet和javax.servlet.http。在javax.servlet包中定义了Servlet接口及相关的通用接口和类;在javax.servlet.http包中主要定义了与HTTP协议相关的HttpServlet类、HttpServletRequest接口和HttpServletResponse接口。
Servlet接口
Servlet API的核心是javax.servlet.Servlet接口,所有的Servlet类都必须实现这一接口。在Servlet接口中定义了5个方法,其中三个方法有Servlet容器来调用,容器会在Servlet的生命周期的不同阶段调用特定的方法。
Servlet的生命周期:
1、 init(ServletConfigconfig):初始化Servlet对象。容器在创建好Servlet对象后,调用该方法
2、 service(ServletRequestreq,ServletResponse res):响应客户的请求,为客户提供相应的服务,当容器接收到客户端要求访问的特定的Servlet对象的请求时,就会调用该Servlet对象的方法
3、 destroy():释放Servlet对象占用的资源,当Servlet对象结束生命周期时,容器会调用该方法
Servlet接口还定义了以下两个返回Servlet的相关信息方法。JavaWeb应用中的程序代码可以访问Servlet的这两个方法,从而获得Servlet的配置信息及其他相关信息。
1、 getServletConfig():返回一个ServletConfig对象,在该对象中包含了Servlet的初始化参数信息
2、 getServletInfo():返回一个字符串,在该字符串中包含了Servlet的创建者、版本和版权等信息
在Servlet API中,javax.servlet.GenericServlet抽象类实现了Servlet接口,而javax.servlet.HttpServlet抽象类是GenericServlet类的子类。当用户开发自己的Servlet类时,可以选择扩展GenericServlet类或者HttpServlet类。
GenericServlet抽象类
GenericServlet抽象类为Servlet接口提供了通用实现,它与任何网络应用层协议无关。GenericServlet类除了实现Servlet接口,还实现了ServletConfig接口和Serializable接口。