zoukankan      html  css  js  c++  java
  • Servlet基础之一:Servlet基本接口与类

     

    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。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    redis requires Ruby version >= 2.2.2.
    redis-持久化、主从复制、集群
    lucene索引文件大小优化小结
    spring+websocket的整合实例--可使用
    使用nexus3.10搭建maven私有仓库
    oracle 查看所有表的数据量并排序
    Spring框架-经典的案例和demo,一些可以直接用于生产,使用atomikos来处理多数据源的一致性事务等
    ORACLE WITH AS 用法
    判断对象部分属性是否为空
    代码行数统计
  • 原文地址:https://www.cnblogs.com/lujinhong2/p/4637344.html
Copyright © 2011-2022 走看看