servlet 和 socket区别

通常我们会说"socket连接",也就是说socket是指明两个地址的连接通讯方式.和socket关联的东西大多是服务器,客户端,TCP,UDP,字节流之类的. socket 需要自己建立连接,分析构造输入输出电文。

而servlet我们会说使用"servlet技术"或"servlet方式",也就是服务器响应客户端的方式,与servlet关联的东西大多是web服务器,浏览器,jsp,asp,asp.net等.  到servlet时,已经转换成对象了。属于应用层的东西。

Socket是j2se在网络编程这块最基本的东西。把一系列网络io复杂性封装。但是光有io,光能传输数据,不足以完成标准化的网络通信。所以在这个基础上,加入了协议支持。比如web容器(tomcat等)加入了http协议的解析(所谓的协议,就是一系列带有标准格式的字符串)。而把里面可以独立给程序员的模型接口抽取出来,就是Servlet。所以,Servlet可以看做是web容器运行的一部分逻辑(请求和响应,即request和response其实可以看成是dto,最后执行完servlet.service方法后,由容器传递给socket类的outputstream,完成相关操作)。而Socket则是web容器的核心(负责交换协议)。

1、servlet的生命周期是什么?

服务器启动时(web.xml中配置load-on-startup=1,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf)

该servlet对象去处理所有客户端请求,在service(ServletRequest req,ServletResponse res)方法中执行

最后服务器关闭时,才会销毁这个servlet对象,执行destroy()方法。

2手动创建servlet:

1、创建一个MyServlet继承HttpServlet,重写doGet和doPost方法,也就是看请求的方式是get还是post,然后用不同的处理方式来处理请求,

2、在web.xml中配置MyServlet,为什么需要配置?让浏览器发出的请求知道到达哪个servlet,也就是让tomcat将封装好的request找到对应的servlet让其使用。

配置四个东西。

首先浏览器通过http://localhost:8080/test01/MyServlet来找到web.xml中的url-pattern,这就是第一步,匹配到了url-pattern后,就会找到第二步servlet的名字MyServlet,知道了名字,就可以通过servlet-name找到第三步,到了第三步,也就能够知道servlet的位置了。然后到其中找到对应的处理方式进行处理。

几个重点的对象:

ServletConfig(获取xml文件中配置的servlet的init-param)、

ServletContext(获取xml文件中配置的整个web项目的context-param里面的初始化参数和项目资源)、

request(获得请求文本中的所有内容,请求头、请求体、请求行 )、

response(设置响应数据格式,重定向等):response.sendRedirect("http://www.baidu.com");

转载自:https://www.cnblogs.com/whgk/p/6399262.html

猜你喜欢

转载自blog.csdn.net/yuqilin520/article/details/82915682