• Servlet


    一、servlet规范介绍
    1. servlet规范属于javaEE规范中的一种
    2. servlet的作用
          - 指定【动态资源文件】开发步骤
          - 指定http服务器调用动态资源文件规则
          - 指定http服务器管理动态资源文件实例对象规则
    
    二、servlet接口实现类
    1. Servlet接口来自Servlet规范下的一个接口,这个接口存在于http服务器提供的jar包中
    2. Tomcat服务器下lib文件中有一个servlet-api.jar存放Servlet接口(javax.servlet.Servlet接口)
    3. 在Servlet规范中认为,http服务器能调用的【动态资源文件】必须是一个Servlet接口的实现类
    
    三、servlet接口实现类开发步骤

    抽象类的作用:降低接口实现过程的难度,将接口中不需要使用的抽象方法交给抽象类进行完成,这样接口实现类就只需要对接口需要的方法进行重写
    第一步:创建一个Java类继承HttpServlet,使之成为Servlet实现类
    第二步:重写HTTPServlet中doGet和doPost方法
    浏览器使用get方式请求--->oneServlet调用doGet
    浏览器使用post方式请求--->oneServlet调用doPost

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    public class OneServlet extends HttpServlet{
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("doGet方法被调用 ");
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("doPost方法被调用");
        }
    
    }
    
    

    第三步:将Servlet接口实现类信息【注册】到Tomcat服务器

    需要在web.xml中编写

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <!--servlet实现类路径地址告诉Tomcat,servlet-name中是一个变量名可以随意-->
        <servlet>
            <servlet-name>oneServlet</servlet-name>
            <servlet-class>com.xuehaiwuya.controller.OneServlet</servlet-class>
        </servlet>
        <!--为servlet实现类提供一个简单的别名-->
        <servlet-mapping>
            <servlet-name>oneServlet</servlet-name>
            <url-pattern>/one</url-pattern>
        </servlet-mapping>
    </web-app>
    
    四、Servlet对象生命周期
    1. 网站中所有接口实现类的实例对象,只能由http服务器负责创建,开发人员不能手动创建实现类的实例对象
    2. 在默认情况下,http服务器接收到对于当前Servlet接口实现类的第一次请求时会自动创建这个Servlet接口实现类的实例对象
      在手动配置的情况下,可以要求http服务器在启动时自动创建某个Servlet接口实现类的实例对象
    <servlet>
            <servlet-name>oneServlet</servlet-name> <!--声明一个变量用来存储类路径-->
            <servlet-class>com.xuehaiwuya.controller.OneServlet</servlet-class>
            <load-on-startup>9</load-on-startup>  <!--服务器启动时创建,要填写大于0的整数-->
    </servlet>
    
    1. 在http服务器运行期间,一个Servlet接口实现类只能被创建出一个实例对象
    2. 在http服务器关闭时,会自动将所有Servlet对象销毁
    五、HTTPServletResponse接口
    1. 接口介绍
    1) HttpServletResponse接口来自于Servlet规范中,在servlet-api.jar中
    2)HTTPServletResponse接口实现类由http服务器负责提供
    3)HTTPServletResponse接口负责将doGet或者doPost方法执行的结果写入到【响应体】中,交给浏览器
    4)开发人员习惯于将HTTPServletResponse接口修饰的对象成为【响应对象】
    
    1. 主要功能
    1) 将执行结果以二进制形式写到响应体中
    2)设置响应头中【content-type】属性值,从而控制浏览器使用对应的编译器将响应体二进制数据编译为【文字,图片,视频,命令】
    3)设置响应头中【location】属性,将一个请求地址赋值给location,从而控制浏览器向指定服务器发送请求
    
    六、请求对象和响应对象生命周期
    1. 在http服务器接收到浏览器发送的【http请求协议包】之后,自动为当前的【http请求协议包】生成一个【请求对象】和【相应对象】
    2. 在http服务器调用doGet或者doPost方法时,负责将【请求对象】和【响应对象】传递到实参中,确保doGet和doPost正确执行
    3. 在http服务器准备推送http响应协议包之前,负责将本次请求关联的请求对象和响应对象销毁
          -【请求对象】和【响应对象】声明周期贯穿一次请求的处理过程
          -【请求对象】和【响应对象】相当于用户在服务端的代言人
    
    When nothing seems to help, I go look at a stonecutter hammering away at his rock, perhaps a hundred times without as much as a crack showing in it. Yet at the hundred and first blow it will split in two, and I know it was not that blow that did it, but all that had gone before. -- Jacob Riis
  • 相关阅读:
    P1744 采购特价商品
    P1359 租用游艇
    P3092 [USACO13NOV]没有找零No Change
    P1272 重建道路
    P2014 选课
    P1026 统计单词个数
    P1776 宝物筛选_NOI导刊2010提高(02)
    自定义异步非阻塞tornado框架
    tornado进阶篇
    tornado基础篇
  • 原文地址:https://www.cnblogs.com/xhwy-1234/p/13956103.html
Copyright © 2020-2023  润新知