美文网首页Java 杂谈程序员码蚁IT
10-码蚁JavaWeb之HttpServlet

10-码蚁JavaWeb之HttpServlet

作者: 码蚁Q | 来源:发表于2018-09-11 08:27 被阅读22次

    HttpServlet简介

    Servlet是由两个Java包组成:
    javax.servlet和javax.servlet.http. 
    在javax.servlet包中定义了
    所有的Servlet类都必须实现
    或扩展的的通用接口和类.
    在javax.servlet.http包中定义了
    采用HTTP通信协议的HttpServlet类.
    Servlet核心就是javax.servlet.Servlet接口,
    所有的Servlet都必须实现这一接口
    

    HttpServlet父子关系

    它是GenericServlet的子类
    
    GenericServlet实现了Servlet接口
    
    HttpServlet是专门负责
    处理http请求与响应的
    
    以后创建Servlet时,直接使用httpServlet
    

    HttpServlet方法

    service()
    每一次发送请求的时候就会调用
    当写了service就会不再调用get或post
    
    doGet()
    当发送get请求时调用
    
    doPost()
    当发送post请求的时候调用
    
    

    HttpServlet容器响应Web客户请求流程

    1.Web客户向Servlet容器发出Http请求;
    
    2.Servlet容器解析Web客户的Http请求;
    
    3.Servlet容器创建一个HttpRequest对象,
      在这个对象中封装Http请求信息;
    
    4.Servlet容器创建一个HttpResponse对象;
    
    5.Servlet容器调用HttpServlet的service方法
      把HttpRequest和HttpResponse对象
      作为service方法的参数传给HttpServlet对象;
    
    6.HttpServlet调用HttpRequest的有关方法
      获取HTTP请求信息;
    
    7.HttpServlet调用HttpResponse的有关方法
      生成响应数据;
    
    8.Servlet容器把HttpServlet的响应结果传给Web客户。
    

    HttpServlet内部方法调用过程

    当接收到一个请求时,
    tomcat就会找对应的service方法
    
    如果当中servlet当中
    没有存在service方法,
    就会到它的父类当中去找
        
    在父类当中找到service是参数为ServletRequest,
    在会内部把参数转为httpServlet
    转换完毕后会
    再继续调用
    参数为httpServletRequest的service方法
        
    在此方法当中
    会获取参数的类型,
    根据不同的参数类型
    再去调用不同的方法
    

    驱动案例:
    需求:用户输入用户和密码到数据库连接到数据库,验证登录是否正确

    步骤
    1.到数据库当中创建一个用户表
        id
        name
        password
        email
    
    2.编写html登录页面
    
    3.创建LoginServlet
        
    4.接收到请求时
        4.1.获取请求参数
        4.2.连接到数据库,验证用户名和密码是否正确
            把jdbcutils和dbutils放到web-info下的lib目录当中
            把db.properties放到自己目录当中
            要修改文件路径,修改成字节码的路径
            Object.class.getClassLoader().getResource("db.properties").getPath();
    
        4.3.根据查询的结果给用户反馈登录成功还是失败
    


    博文全套 视频讲解 点击以下链接查看
    https://study.163.com/course/courseMain.htm?courseId=1005981003&share=2&shareId=1028240359

    相关文章

      网友评论

        本文标题:10-码蚁JavaWeb之HttpServlet

        本文链接:https://www.haomeiwen.com/subject/zgiowftx.html