码迷,mamicode.com
首页 > 其他好文 > 详细

Servlet基础之一:Servlet基本接口与类

时间:2014-05-07 03:45:45      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   class   code   java   

 bubuko.com,布布扣bubuko.com,布布扣

 

1、概述

Servlet API中共有5个包,约113个接口和类:

javax.servlet
javax.servlet.http
javax.servlet.jsp
javax.servlet.annotation
javax.servlet.descriptor

2、Servlet接口

(1)所有Servlet/JSP应用必须直接或者间接实现Servlet接口, Servlet/JSP容器会将实现了Servlet接口的类加载至容器,以供访问。

(2)Servlet中共定义了5个方法:

void init(ServletConfig config)
void service(ServletRequest req,ServletResponse res)
void destroy()
String getServletInfo()
ServletConfig getServletConfig()

其中前三个为生命周期方法。

(3)一般而言,在init()中会将ServletConfig赋值给一个类级变量,以便Servlet类中的其它方法可以访问。但在httpServlet中,已经完成了此项工作,可以直接调用getServletConfig()获取即可。

(4)一个应用程序中的所有用户将共用一个Servlet实例,因此不建议使用类级变量,除非它们是只读的,或者是java.util.concurrent.atomic包中的成员。

 

3、ServletRequest接口与HttpServletRequest接口

(1)ServletRequest接口主要用于获取请求中的参数、内容等,如

String getContentType()
String getParameter(Stringname)

2HttpServletRequest接口在ServletRequest接口的基础上增加了以下方法:

String getContextPath()    //返回表示请求Context的请求URI部分
Cookie[] getCookies()    //返回一个Cookies对象数据。
String getHeader(String name)
String getMethod()
String getQueryString    //返回请求URL中的查询字符串
HttpSession getSession()
HttpSession getSession(Boolean create)

4、ServletResponse接口与HttpServletResponse接口

(1)在调用一个Servlet的service()方法之前,Servlet会先创建一个ServletRequest与ServletResponse,并将它们作为参数传给service方法,它们隐藏了将请求发给servlet以及响应发给浏览器的复杂性。

(2)常用方法:获取输出流、设置响应格式等。

ServletOutputStream getOutputStream() //一般用于文件的上传下载,传输二进制数据
PrintWritergetWriter()    //用于文字的传送,如传输HTML等
void setLocale(Locale loc)

(3)HttpServletResponse增加了以下方法:

 voidaddCookie(Cookie cookie)
void addHeader(String name, String value)
void sendRedirect(String location)

5、GernericSerlvet类

主要完成了以下工作

将init方法中的ServletConfig赋值给一个类级变量,使它可以通过调用getServletConfig来获取。

为Servlet接口中的所有方法提供默认实现。

提供方法来包装ServletConfig中的方法。

但由于一般而言,servlet均为HttpServlet,因此GenericServlet并不常用,主要使用HttpServlet。

Servlet基础之一:Servlet基本接口与类,布布扣,bubuko.com

Servlet基础之一:Servlet基本接口与类

标签:des   style   blog   class   code   java   

原文地址:http://blog.csdn.net/jediael_lu/article/details/25036019

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!