JAVA WEB-Servlet 体系

1.静态网页和动态网页

        动态网页:指和静态网页相对的一种网页编程技术。

        静态网页:随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了。除非你修改html页面代码。

        二者区别:动态网页页面代码虽然没有变,但是显示的内容确实可以随着时间,环境或者数据库操作的结果而发生改变。强调:不要将动态网页和页面内容是否可以动感混为一谈。

2.java的servlet小服务应用程序

        表单:手机用户信息,并且将信息发送到指定的服务器程序处理。

3.什么是servlet

        JAVA WEB 三大核心/组件:Servlet        Filter        Listener

        Servlet::是java servlet的简称,称为小服务程序或服务   连接器,用java编写的服务器程序,主要功能在于交互地浏览和修改数据,生成动态Web内容.

        狭义上:Servlet是指java语言实现的一个接口

        广义上:Servlet是指任何事先这个Servlet接口的类

        一般情况下,人们将Servlet理解为后者。Servlet运行于支持java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但是绝大多数的情况下Servlet只用来扩展基于HTTP协议的Web服务器。

Servlet就是小服务程序,可以做动态网页。在java中对Servlet有两种解读:

        1.servlet接口

        2.所有实现这个接口的类

4.Servlet继承体系

        1.servlet体系结构

GenericServlet这个类实现了三个接口(ServletConfig,Serializable,Servlet)

HttpServlet继承了GenericServlet类。

2.Servlet 接口

        Servlet的框架有由javax.servlet与javax.servlet.http两个jar包组成。

        javax.servlet包中定义了所有的Servlet类都必须实现或者扩展的通用接口和类。在javax.servlet.http包中定义了采用Http协议通信的HttpServlet类。     

        该框架的核心是: javax.servlet.Servlet接口 ,所有的Servlet都必须实现这个接口

 5.GenericServlet

        编写Servlet需要通过实现Servlet接口来编写Servlet,但是我们每次都必须为Servlet中的所有方法都提供实现,还需要将ServletConfig对象保存到一个类级别的变量中,GenericServlet抽象类就是为了为我们省略一些模板代码,实现了Servlet和ServletConfig。

        继承体系讲解:

                1.service()函数的调用

               问:这是一个重写的函数,我们并没有调用,但是service被调用了,谁调用的?

                答:tomcat帮我们调用的。先去缓存池中找servlet对象,如果找到了,直接使用这个对象调用service()方法,如果没有找到,通过java反射 Class.forName().Instance(); 创建一个servlet对象放入缓存池中,在调service()

                2.servlet接口

                问1:万一这个类没有实现servlet接口还能调用码?

                答1:会直接报错

         tomcat要求程序员配置的servlet类 ,必须实现一个接口 叫做Servlet,如果不实现 则报错。

                问2: 为什么我们自己写的servlet不去直接实现Servlet接口,此时tomcat为了定制规则,让程序员自己的类必须实现Servlet接口,但是有一个新问题出现了。这个Servlet接口定制了5个函数,其中只有service函数比较有用,剩下的四个基本上用不到。怎么解决?

                答2:官方创建了一个新的类叫做 GenericServlet 实现servlet接口,我们自己写的servlet类只需要继承GenericServlet类就可以了。

                问3:自己写的类为什么不继承GenericServlet而是要继承 HttpServlet 类呢?(重点)

                答3:

              (1)因为我们的请求和响应都是基于HTTP的,而GenericServlet中的参数是ServletRequest和ServletResponse,此时有一些专属于HttpServlet的方法没办法调用 ,所以我们需要将ServletRequest转化成HttpServletRequest,将ServletResponse转换成HttpServletResponse,所以需要继承HttpServlet。

                (2)我们的请求方式一般常用两种,get/post,但是现在用的是service,在service中会根据你请求的方式进行请求的分发,选择合适的方法。

        总结:  什么时候用service(),什么时候用doGet()/doPost(),

                    如果涉及到get 和post那么你就用 doGet()/doPost()

                    如果涉及不到get和post()就用service();

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值