Java Web基础知识(二)——Servlet学习

一、Java Web要学习哪些内容?

我们要学习Java Web基础内容包括上图中的六个部分。

二、Servlet基础学习

(一)、Servlet的来源

要知道Servlet是怎么来的,首先是要清楚B/S架构的角色和协议。

角色:

(1)浏览器软件开发团队(例如:谷歌浏览器、火狐浏览器、IE浏览器等)

(2)WEB Server开发团队(例如:Tomcat、Jetty、JBOSS等)

(3)DB Server开发团队(例如:MySQL、Redis、Oracle等)

(4)webapp的开发团队(就是JavaWEB程序员)

协议:

(1)webapp开发团队和WEB Server开发团队之间有一套规范:JavaEE十三种规范之一Servlet规范。

Servlet的作用:

实现webapp与WEB Server之间解耦合

(2)浏览器和WEB Server之间有一套传输协议:HTTP协议

(3)WEB Server与DB Server之间有一套协议:JDBC规范

我们可以看到B/S架构包括四个角色和三个协议,其中,在webapp与Web服务器之间就需要一套Servlet协议,来实现webapp与Web服务器之间的解耦合,使得我们编写的web程序可以部署到不同的服务器中。此外,Servlet规范也是JavaEE十三种技术规范之一。

(二)、Servlet的本质是什么?

Servlet是服务器端的小程序,接收来自网络的请求,并且对不同的请求作出不同的响应。Servlet是运行在WEB容器中的,这里WEB容器就是WEB服务器,例如Tomcat服务器、Jetty服务器等。其实,作为程序员的我们编写的Java程序底层就是实现了Servlet接口。但是严格意义上来说Servlet其实并不只是一个简单的接口。

它还规定了:

1、一个合格的webapp应该是一个怎样的目录结构;

我们可以看到Tomcat服务器的根路径下的webapps 目录(这是我们存放编写的Java程序的地方),在此目录下包括WEB-INF目录(注意:这个目录名称必须这样写,不可以更改,这是Servlet规定的),在WEB-INF目录下又包括三个文件夹,分别是classes文件夹(注意:这个名字也是固定的,这里存放的是java程序编译之后的class文件(也就是字节码文件));lib文件夹(注意这个lib文件不是必须的,但是如果需要第三方的jar包,则需要将jar包放入lib目录下,这是Servlet规定的,且名字是必须这样写的);web.xml文件(注意这个文件是必须的,且名字必须这样写,必须放在这里,这个文件是一个配置文件,其中描述了请求路径和Servlet之间的对照关系)

2、一个合格的webapp应该是一个怎样的配置文件;

3、一个合格的webapp配置文件路径放在哪里;

4、一个合格的webapp中java程序放在哪里。

......

遵循这些规范才能实现webapp与WEB Server的解耦合

(三)、Servlet的生命周期

(1)谁来管理Servlet对象

Servlet对象的创建,对象上方法的调用,对象最终的销毁,javaweb程序员是无权干预的。而Servlet对象的生命周期是由Tomcat服务器全权负责的。

注意我们自己new的Servlet对象是不受Tomcat服务器管理的。这是因为Tomcat服务器创建的Servlet对象会被放到一个集合当中,只有在这个集合中的对象才能够被Tomcat服务器管理。而我们自己创建的不会放到集合中。

另外,要知道Tomcat服务器又称为web容器。

(2)Servlet对象什么时候被创建

用户第一次访问的时候被创建,通过反射机制调用无参构造方法创建servlet对象,再执行init方法进行初始化(只有第一次访问的时候被调用,这也可以证明了单例模式),然后对象被创建出来,这样设计节省了空间。

(3)Servlet对象什么时候被销毁的?

结束访问时会调用destroy方法,方法结束后会对象会被销毁。

(四)、浏览器发送请求,到最终tomcat服务器调用Servlet中的方法,是怎样的一个过程?

上面我们提到Servlet是部署到WEB服务器中去运行的(这里我们以Tomcat服务器为例),那浏览器发送请求之后,Tomcat服务器又是怎样工作的呢?

(1)用户输入URL,或者点击超链接

(2)Tomcat服务器收到请求,截取路径:例如/crm/fdsa/fa/saf/sa

(3)Tomcat服务器找到crm项目

(4)Tomcat服务器在web.xml文件中查找/fdsa/fa/saf/sa对应得Servlet

(5)Tomcat服务器通过反射机制,创建对应得Servlet的对象

(6)Tomcat服务器调用该对象的service方法

如有不准确的地方,还望各位大佬及时批评指正,在此表示感谢。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值