浅谈Servlet1

Serlvet的概念和作用

Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API 动态的向客户端输出内容。

Servlet的访问流程

在这里插入图片描述大体知道了Servlet的访问流程,接下来就是具体分析每个过程。http请求的结构和解析已经写过了,所以我从解析完请求后开始写

1.根据url找到Servlet

根据url找Servlet肯定要和一个文件或对象的值进行匹配,所以在讲url之前我们先要知道它是和什么匹配,那么我们就要先学会配置Servlet。
在这里插入图片描述Servlet的基本配置
一.类的配置
1.servlet-name:这里写的是servlet的名称,可以随便起
2.servlet-class:**这里写的是servlet的全名称,注意,一定要是全名,就是要包括包的!!!
二.虚拟路径的配置
1.servlet-name:这里一定要和上面的servlet-name名字一样!!
2.url-pattern:这里写的是该servlet的路径,访问的时候就是用的这里的路径,一定要以“/”开头!
在这里插入图片描述

================================================================================
好了,我们已经会基本的servlet配置了,接下来我们开始一步一步走流程
第一步:匹配url和url-pattern
这里就有比较多的知识点了,我们分几种情况来分析
1.顺利找到匹配的url-pattern
在这里插入图片描述
2.找不到匹配的url-pattern
这里又可以分为两种情况,
①:有缺省的Servlet
缺省Servlet:
可以将url-pattern配置一个/,代表该servlet是缺省的servlet
什么是缺省的servlet?
当你访问资源地址所有的servlet都不匹配时 , 缺省的servlet负责处理
其实,web应用中所有的资源的响应都是servlet负责,包括静态资源
如果你定义过一个缺省的Servlet,当服务器找不到匹配的路径的时候,就执行缺省的Servlet类,一般这种Servlet都是提示找不到路径的网页
②:没有缺省的Servlet
这时连缺省的Servlet都没有了,那么是不是就不个客户端响应了呢?不是!因为服务器软件自带缺省的Servlet!例如TOMCAT,如果你用TOMCAT,并且输入了一个不存在的网址那么它会弹出404的网页
在这里插入图片描述下面是在TOMCAT的web.xml文件中的源码
在这里插入图片描述
在这里插入图片描述
可以看到这里已经定义了一个缺省的servlet——default,来提示没有找到网址

================================================================================
这里有一个小细节
如果我访问的是一个静态的html网页
在这里插入图片描述
为什么执行html文件会去执行缺省的servlet呢?这就涉及了服务器的机制,其实服务器解析请求的时候,把所有的请求的路径都当做servlet的url去和你所有的servlet的xml文件中的url-pattern去匹配,即所有的请求路径都被当成servlet路径,去找对应的servlet类了,所以上面的1.html也作为一个servlet类的路径去匹配,但是没有servlet路径与之对应,所以就自动去找了缺省的servlet执行。
我们访问静态资源就是先与所有的servlet路径匹配,找不到后去找TOMCAT或其他服务器软件中的缺省的servlet,再将静态资源一步一步输出给客户端。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值