先感谢博友们
Socket与Servlet的简单理解:https://blog.csdn.net/sdjkjsdh/article/details/51569481
servlet详解:https://www.cnblogs.com/whgk/p/6399262.html
tomcat:https://blog.csdn.net/yilaguandemei/article/details/78994650
下文如有错误望评论学习
BS:基于浏览器和服务端
CS:基于客户端和服务端
1. servlet技术
这是服务器响应客户端(Web端)的方式,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了Servlet接口的类。
Servlet是为了实现动态页面
优点:高效率,易使用,功能强大,好的可移植性,节省投资。
不需要建立连接。仅仅是处理http请求的内容。 所有的输入输入输出电文都由applicationserver 进行处理,到servlet时,已经转换成对象了。属于应用层的东西。
组成
1.init() 2.service() 3.destory() 4.getServletInfo()//获取信息(版本、作者) 5.getServletConfig()//获取配置
执行原理
1.服务器接收到客户端浏览器的请求后,解析请求url,获取访问servlet的资源路径 2.在xml寻找相同url 3.如果找到就寻找对应得servlet全类名 4.tomcat将字节码文件加载进内存,并创建其对象 5.调用其方法
生命周期
1.被创建:第一次被访问的时候执行init方法,只执行一次,用于申请资源 //也可以指定创建时间,web.xml中<load-on-startup> 设置一个>=0的数,服务器启动创建。 设置一个<0的数,第一次访问启动创建。 【只存在一个对象,是单例的。可能存在线程安全问题,所以尽量不要在servlet中定义成员变量,即使定义了也不要对其修改】 2.服务:执行service方法,执行多次(每次访问都会执行一次) 3.被销毁:执行destory方法,被销毁之前执行一次 只有服务器正常关闭时才会执行,用于销毁资源。
2. Tomcat(web容器)
Servlet是没有main()方法,它受控于另外一个Java应用,这个Java应用是帮助创建servlet的东西,所以也称web容器,没有它没法运行web项目。
功能:简单的说它是一个Web网站的运行容器,把你写好的网站放进去就可以运行。
作用:
1.支持通信:利用容器提供的方法,能够轻松让Servlet与Web服务器对话,无需自己建立ServerSocket,监听端口,创建流等操作。
2.生命周期管理:负责加载类,实例化和初始化Servlet,调用Servlet的方法,并使Servlet实例能够被垃圾回收。
3.多线程支持:自动的为他接收到的每个Servlet请求创建一个新的Java线程。
4.使用XML部署描述文件来配置安全性。
5.JSP支持:可以将JSP代码翻译为java代码。
3. socket(套接字)
是指明两个地址的连接通讯(服务端和客户端)方式.在源和目的两端都建立socket进行连接通信。
和socket关联的东西大多是服务器,客户端,TCP,UDP,字节流之类的.
需要自己建立连接,自己分析输入电文构造输出电文。
servlet是Socket的一种应用,完全可以通过socket实现一套自己的Servlet