servlet AP定义了若干接口和类,由四个包构成
- javax.servlet
- javax.servlet.http
- javax.servlet.annotation
- javax.servlet.descriptor
Servlet接口是Servlet API中的基本接口,每个Servlet必须直接或间接实现该接口。该接口定义了如下5个方法。
1、void init(ServletConfig config)
在 Servlet 的生命期中,仅执行一次 init() 方法,它是在服务器装入 Servlet 时执行的。
可以配置服务器,以在启动服务器或客户机首次访问 Servlet 时装入 Servlet。
2、void service(ServletRequest request ServletResponse response)
service() 方法是 Servlet 的核心。每当一个客户请求一个HttpServlet 对象,该对象的service() 方法就要被调用,而且传递给这个方法一个"请求"(ServletRequest)对象和一个"响应"(ServletResponse)对象作为参数。 在 HttpServlet 中已存在 service() 方法。缺省的服务功能是调用与 HTTP 请求的方法相应的 do 功能。例如, 如果 HTTP 请求方法为 GET,则缺省情况下就调用 doGet() 。
3、void destroy()
与init方法相类似,destroy() 方法仅执行一次,即在服务器停止且卸装Servlet 时执行该方法
4、ServletConfig getServletConfig()
getServletConfig() 方法返回一个 ServletConfig 对象,该对象用来返回初始化参数和 ServletContext。ServletContext 接口提供有关 servlet 的环境信息
5、String getServletInfo()
GetServletInfo()方法是一个可选的方法,它提供有关servlet 的信息,如作者、版本、版权。
GenericServlet抽象类
GenericServlet实现了Servlet接口和ServletConfig接口。
它提供了Servlet接口中除了service()外的所有方法的实现,同时增加了支持日志的方法。
可以继承GenericServlet类并实现service()方法来创建任何类型的Servlet。
HttpServlet类
1、HttpServlet抽象类继承了GenericServlet类,它用来实现针对HTTP协议的Servlet,在HttpServlet类中增加了一个新的service()方法,格式如下:
protected void service(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
2、在HttpServlet中针对不同的HTTP请求方法定义了不同的处理方法,如处理GET请求的doGet()格式如下: protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
3、还定义了处理其他请求的方法,如处理POST请求的方法是
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
servlet生命周期
简单完整讲述Servlet生命周期_Turniper的博客-CSDN博客
HTTP请求结构
特征
GET方法
POST方法
资源类型
静态的或动态的
动态的
数据类型
文本
文本或二进制数据
数据量
一般不超过255个字符
没有限制
可见性
数据是URL的一部分,在浏览器的地址栏中对用户可见
数据不是URL的一部分而是作为请求的消息体发送,在浏览器的地址栏中对用户不可见
数据缓存
数据可在浏览器的URL历史中缓存
数据不能在浏览器的URL历史中缓存
处理HTTP请求
HTTP方法
HttpServlet方法
HTTP方法
HttpServlet方法
GET
doGet()
DELETE
doDelete()
POST
doPost()
OPTIONS
doOptions()
HEAD
doHead()
TRACE
doTrace()
PUT
doPut()
检索请求参数
通过HttpServletRequest中定义的方法检索参数
String getParameter(String name)
String[] getParameterValues(String name)
返回name指定的请求参数值,如果参数不存在,则返回null值。若指定的参数存在,用户没有提供值,则返回空字符串。
Enumeration getParameterNames()
Map getParameterMap()
向服务器发送GET请求,还可以将请求参数附加在请求URL的后面。例如,可以直接使用下面的URL访问LoginServet,而不需要通过表单提供参数。
http://localhost:8080/chapter02/user- login?username=admin&password=admin
这里,问号后面内容为请求参数名和参数值对,若有多个参数,中间用“&”符号分隔,参数名和参数值之间用等号(=)分隔。问号后面内容称为查询串(query string)
请求转发
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)