Servlet Inteface and Method

Servlet API 主要由 javax.servlet 和 javax.servlet.http 两个包组成。

在javax.servlet包中定义了Servlet接口及相关的通用和类

在javax.servlet.http包中主要定义了与HTTP协议相关的 HttpServlet类、HttpServletRequest接口和HttpServletResponse接口

Servlet API的核心是java.servlet.Servlet接口,所有的Servlet类都必须 实现 这一接口。
Servlet接口中定义了5个方法,其中有3个方法都由Servlet容器来调用
	这3个方法是:
	init(ServletConfig config):容器创建Servlet对象后会调用init方法初始化Servlet对象
	service(ServletRequest arg1,ServletResponse arg2):当容器收到客户端请求,访问特定的Servlet对象时,调用该Servlet对象的service()方法
	destroy():当Servlet对象结束生命周期时调用destroy()释放Servlet对象占用的资源
	还有两个方法:
	getServletConfig()返回一个ServletConfig对象,包含Servlet初始化信息
	getServletInfo()返回一个字符串,包含了Servlet的创建者、版本和版权的信息

javax.servlet.GenericServlet抽象类 实现 了Servlet接口,还实现了ServletConfig接口和Serializable接口。
javax.servlet.GenericServlet抽象类没有实现Servlet接口的service()方法,service()方法是GenericServlet抽象类中唯一的抽象方法,所以GenericServlet抽象类的子类必须实现service()方法
由于GenericServlet抽象类实现了ServletConfig接口,因此,GenericServlet抽象类的子类可以直接调用在ServletConfig接口中定义的getServletContext()、getInitParameter()、getInitParameterNames()等方法

javax.servlet.http.HttpServlet抽象类是 GenericServlet抽象类的 子类 


所以开发自己的Servlet类时,可以选择扩展GenericServlet类或者HttpServlet类


ServletRequest接口提供了一系列用于读取客户端请求数据的方法:
	getContentLength()返回请求正文的长度。如果请求正文的长度未知,则返回-1
	getContentType()获得请求正文的MIME类型。如果请求正文的类型未知,返回null
	getInputStream()返回用于读取请求正文的输入流
	getLocalAddr()返回服务器端IP
	getLocalName()返回服务器端主机名
	getLocalPort()返回服务器端端口号
	getParameter(String name)返回客户端请求中的匹配的请求参数值
	getProtocol()返回客户端与服务器端通信所用的协议的名称和版本号
	getReader()返回用于读取字符串形式的请求正文的BufferedReader对象
	getRemoteAddr()返回客户端IP
	getRemoteHost()返回客户端主机名
	getRemotePort()返回客户端端口号
	此外,ServletRequest接口还定义了一组用于 在 请求范围内 存取 共享 数据的方法
	*setAttribute(String name,Object object)在请求范围内保存一个属性 name是属性名 object是属性值
	*getAttribute(String name)在请求范围内获取一个属性的匹配属性值
	*removeAttribute(String name)从请求范围内删除一个属性
ServletResponse接口中定义了一系列与生成响应结果相关的方法
	setCharacterEncoding(String charset)设置响应正文的字符编码,默认为ISO-8859-1
	setContentLenght(int Len)设置响应正文的长度
	setContentType(String type)设置响应正文的MIME类型
	getCharacterEncondig()返回响应正文的字符编码
	getContentType()返回响应正文的MIME类型
	setBufferSize(int size)设置用于存放响应正文数据的缓冲区大小
	getBufferSize()返回用于存放响应正文数据的缓冲区大小
	reset()清空缓冲区内的正文数据,并且清空响应状态代码及响应头
	resetBuffer()仅仅清空缓冲区内的正文数据
	flushBuffer()强制性的把缓冲区内的响应正文数据发送到客户端
	isComitted()缓冲区内的数据是否已经提交给客户端,如果是 返回 true
	getOutputStream()返回一个ServletOutputStream对象,Servlet用它来输出二进制的正文数据
	getWriter()返回一个PrintWriter对象,Servlet用它来输出字符串形式的正文数据

HttpServletRequest接口是ServletRequest的子接口(子类),提供了用于读取HTTP请求中的相关信息的方法
	getContextPath()返回客户端请求访问的web应用的URL入口
	getCookies()返回HTTP请求中的所有Cookie
	getHeader(String name)返回HTTP请求的头部的特定项
	getHeaderNames()返回一个Enumeration对象,它包含了HTTP请求头部的所有项目名
	getMethod()返回HTTP请求方式
	getRequestURI()返回HTTP请求的头部的第1行中的URI
	getQueryString()返回HTTP请求中的查询字符串,即URL中的“?”后面的内容
HttpServletResponse接口是ServletResponse接口的子接口(子类),提供了与HTTP协议相关的一些方法,来设置HTTP响应头或向客户端写Cookie
	addHeader(String name,String value)向HTTP响应头中加入一项内容
	sendError(int sc)向客户端发送一个代表特定错误的HTTP响应状态代码
	sendError(int sc,String msg)向客户端发送一个代表特定错误的HTTP应状态代码,并且发送具体的错误消息
	setHeader(String name,String value)设置HTTP响应头中的一项内容。如果响应头中已经存在这项内容,就将其覆盖
	setStatus(int sc)设置HTTP响应的状态代码
	addCookie(Cookie cookie)向HTTP响应中加入一个Cookie
	
ServletConfig接口
	getInitParameter(String name)根据给定的初始化参数名,返回匹配的初始化参数值
	getInitParameterNames()返回一个Enumeration对象,里面包含了所有的初始化参数名
	getServletContext()返回一个ServletContext对象
	getServletName()返回Servlet的名字,即web.xml中<servlet-name>子元素的值

ServletContext接口,是Servlet与Servlet容器之间直接通信的接口。Servlet容器在启动一个Web应用时,会为它创建一个ServletContext对象,每个web应用都有唯一的ServletContext对象。
ServletContext接口提供的方法分为以下几种类型
(1)在web应用范围内存取共享数据的方法
	setAttribute(String name,Object object)把一个对象与一个属性名绑定,并存放到ServletContext中
	getAttribute(String name)根据属性名返回匹配的属性值
	getAttributeNames()返回一个Enumeration对象,该对象包含了所有存放在ServletContext对象中的属性名
	removeAttribute(String name)根据属性名,从ServletContext中删除匹配的属性
(2)访问当前web应用的资源
	getContextPath()返回当前应用的URL入口
	getInitParameter(String name)根据给定的参数名,返回web应用范围内的匹配的初始化参数值
	getInitParameterNames()返回一个Enumeration对象,它包含了web应用范围内的所有初始化参数名
	getServletContextName()返回web应用的名字,即web.xml中<display-name>元素的值 
	getRequestDispatcher(String path)返回一个用于向其它web组件转发请求的RequestDispatcher对象
(3)访问Servlet容器中的其它web应用
	getContext(String uripath)根据参数指定的RUI返回当前Servlet容器中其它web应用的ServletContext对象
(4)访问Servlet容器的相关信息
	getMajorVersion()返回Servlet容器支持的JAVA Sservlet API主版本号
	getMinorVersion()返回Servlet容器支持的JAVA Sservlet API主版次号
	getServerInfo()返回Servlet容器的名字和版本
(5)访问服务器端的文件系统资源
	getRealPath(String path)根据参数指定的虚拟路径,返回文件系统中的一个真实的路径
	getResource(String path)返回一个映射到参数指定路径的RUL
	getResourceAsStream(String path)返回一个用于读取参数指定的文件输入流
	getMimeType(String file)返回参数指定的文件的MIME类型
(6)输出日志
	log(String msg)向Servlet的日志中写日志
	

 

你可能感兴趣的:(java,servlet)