[java]servletConfig,servletContext,servlet,GenericServlet解析

  • 通过学习老杜新版的javaweb得到一些收获,来分享给大家


  • 首先我想说一下servlet的“进化流程”

  1. 最开始的时候是直接实现Servlet接口,但是由于这里面有5个必须要重写的方法,而有的方法又不需要我们来操作,或者说不想我们来操作,比如init(ServletConfig config)方法,当然我们想要定义一些东西可以使用init()无参方法,我就是举个例子哈

  1. 接着就出现了GenericServlet(一个Servlet的实现类),我们可以直接继承这个实现类,这就解决了我们自己创建类直接实现Servlet接口需要从写很多方法的问题

  1. 由于我们在网页上需要遵循HTTP协议,所以出现了HttpServlet,这个要比GenericServlet更适合网页开发,当然这个是继承GenericServlet的

  1. 所以我们自建类直接继承HttpServlet就好啦


  • 接着来说一下ServletConfig接口

这个接口的实现类对象小猫咪会直接给我们造出来的,一个Servlet对应一个ServletConfig,他是为了配置servlet里面的一些信息的。

通过getServletConfig()可以获取ServletConfig对象

在<servlet>中添加下面代码段来配置Servlet

<init-param>
    <param-name>配置名</parame-name>
    <param-value>配置值</parame-value>
<init-param>

配置之后有两个重要的方法

  1. getInitParameterNames()获取所有初始化的name,返回是一个Enumeration<String>

  1. getInitParameter()通过name获取values


  • 接着说一下ServletContext接口

  1. 这个对象怎么创建的?谁创建的?怎么获取?

这个对象是小猫咪创建的,需要通过ServletConfig中的getServletContext()方法来获取

2.他与servlet的对象关系是:一个ServletContext对应多个Servlet

3.通过在xml中配置一下代码可以配置ServletContext

<context-param>
    <param-name>配置名</parame-name>
    <param-value>配置值</parame-value>
</context-param>

这里也有两个重要的方法

  1. getContextPath()获取应用的根路径

  1. getRealPath()获取文件的绝对路径(从本地盘符)


  • 接着说一下GenericServlet适配器

之前说过这个是实现了servlet接口了的,并且从写了其中的大部分方法,留了一个service()给我们从写,这个也是我们使用最频繁的方法。

说一下之前提过的init有参和无参方法吧,通过一个代码写一下大致流程

final void init(ServletConfig congig){
    this();
}

通过上面的演示大家也应该可以看懂了,这个是通过有参的init(ServletConfig congig)来调用无参的init,并且有参的我们是不可以直接操作的,但是我们可以通过从写无参的inti()来间接操作。

最后在夸一下杜老师讲的真的太好了,循序渐进!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jinlin Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值