Java Web -> Servlet

目录

 Servlet

1. API核心包

2. Servlet实现

3. Servlet接口中3个重要的方法

4. ServletConfig

5. ServletContext

6. 功能特性


 Servlet

  • 1. API核心包

    • javax.servlet:其中包含定义Servlet和Servlet容器之间的锲约类和接口
    • javax.servlet.http:其中包含定义HTTP Servlet和Servlet容器之间的契约类和接口
    • javax.servlet.annotation:其中包含标注Servlet,Filter,Listener的标注,它还为被标注元件定义元数据
    • javax.servlet.descriptor:其中包含提供程序化登录Web应用程序的配置信息的类型
  • 2. Servlet实现

    • 2.1 核心
      • Servlet接口,所有Servlet类必须直接或间接实现。
    • 2.2 其他类
      • GenericServlet对Servlet进行了简单的包装,为HttpServlet提供了更好的支持。
        • 注:GenericServlet中的service(ServletRequest req, ServletResponse res)是抽象方法,要继承该类,必须实现service()
      • HttpServlet可以针对协议的请求方式,来获取相应的方法来实现业务。
        • 注意:HttpServlet中的service(ServletRequest req, ServletResponse res)
          • 将ServletRequest的req、res强转为HttpServletResponse
          • 之后调用自身的service() -> service(HttpServletRequest req, HttpServletResponse resp)
        • service(HttpServletRequest req, HttpServletResponse resp)
          • 拿到请求后,获取请求方式。根据请求方式,来决定使用doXXX()
  • 3. Servlet接口中3个重要的方法

    • init()
      • 只有第一次请求时,Servlet容器才会调用该方法。
    • service()
      • 每次请求,每次调用该方法。
    • destory()
      • 销毁Servlet(程序关闭/卸载)时,Servlet容器才会调用该方法。
    • 注意
      • Servlet实例只会有一个,在一个应用程序中,被所有用户共享。因此,不建议使用类变量,尽量保证线程安全。
      • 其他方法还有doGet()、doPost()
        • doGet()主要用于查询数据
        • doPost()主要用于提交数据
  • 4. ServletConfig

    • 将一些信息(初始化参数:由key和value组成)封装到ServletConfig中,在初始化/实例化的时候将这些信息从类中获取到。
    • 可以通过init(ServletConfig config)来初始化参数,内部进行赋值,并调用无参的init()
    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        chanceNumber= Integer.parseInt(config.getInitParameter("chanceNumber"));
    }
    <servlet>
        <!--Servlet的内部名称,主要给自己看-->
        <servlet-name>ConfigServlet</servlet-name>
        <!--Servlet的实现类-->
        <servlet-class>com.qqy.servlet.ConfigServlet</servlet-class>
        <!--初始化参数-->
        <init-param>
            <param-name>chanceNumber</param-name>
            <param-value>10</param-value>
        </init-param>
    </servlet>
  • 5. ServletContext

    • 每个Web应用程序只有一个上下文,在将一个应用程序同时部署到多个容器的分布式环境中,每台Java虚拟机上的Web应用都会有一个ServletContext对象。
    • 通过 config.getServletContext() 可以获得ServletContext
    • 可以共享从应用程序中的所有资料处访问到的信息,并且可以动态注册Web对象。
  • 6. 功能特性

    • 表单提交
    • 数据查询
    • 文件上传
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值